Inspiration
We're sisters from Brownsville, Texas. This is my sister's very first hackathon and my first project I've actually finished. We picked a problem from our own home.
Spanish is the language of our community. About 83% of Brownsville residents age 5 and over speak Spanish at home, according to U.S. Census American Community Survey estimates (Data USA). Yet most security tools and scam warnings are written in technical English.
Not everyone has easy access to technology. In Cameron County, about 1 in 5 households (roughly 20%) has no broadband internet subscription, and about 1 in 10 has no computer at all (U.S. Census Bureau QuickFacts, 2019–2023). Many of our relatives do everything on a phone, with no one nearby to ask "is this real?"
Older adults are losing real money. Adults 60 and over reported $2.4 billion in fraud losses to the FTC in 2024, about four times the 2020 figure, and the FTC says many scams go unreported (FTC, AARP summary).
The scams look like our community. An AARP survey of Latino adults found they are most often targeted by government-impostor, utility and "grandparent" scams (AARP). Here in the Valley, that looks like a fake CBP message about a package stuck at the Brownsville bridge, a fake Brownsville PUB shutoff notice demanding a Zelle payment, or a WhatsApp message that says "Hola tía, se me cayó el celular al agua, ¿me prestas $350?"
These scams arrive in Spanish, use local names, and reach the people least likely to have a tech-savvy relative close by: our parents, tías and abuelos. We wanted a tool that speaks their language and that they can actually read.
What it does
Escudo RGV is a bilingual (English/Spanish) scam checker.
- Paste a message, get an answer. It returns a 0–100 risk score, the manipulation tactics used (urgency, fear, authority), and a plain-language explanation in both languages.
- It doesn't cry wolf. The AI is explicitly told that most messages are safe. Normal texts get a low score, and a wrong number gets a polite suggested reply instead of a scare.
- Live evidence. It searches Google for reports of the number or link, and checks Google Maps to see whether the business a message claims to be from really exists in Brownsville.
- Modo Abuelos ("Texto Grande"). A large-type mode with a giant ✅ SEGURO or ❌ ¡FALSO! and a clear "do nothing" instruction. An optional "¿Quieres saber por qué?" button reveals the full technical breakdown for anyone who wants it.
- Family alert. For high-risk messages it writes a warm, ready-to-send warning for the family group chat, so one person's close call protects everyone else.
- Teaching while you wait. While a check runs, the app rotates tips like "If it was sent to many numbers, it's most likely fake."
- Works like a phone app. The site installs to the home screen, appears in Android's Share menu, and has a one-tap "paste copied message & check" button for iPhone.
- WhatsApp/SMS bot. Forward a suspicious message to a Twilio number and get the verdict back by text, with no app and no install. This is built for relatives who never open a browser.
How we built it
- Next.js (App Router), React and Tailwind CSS for the app and API routes.
- SerpApi (Google Search and Google Maps) gathers live evidence, so the AI is grounded in real, current data instead of guessing about brand-new numbers and links.
- Google Gemini API reads the message plus that evidence and returns structured JSON: risk score, bilingual verdicts and explanations, a suggested reply or a family warning.
- Twilio powers the SMS/WhatsApp bot, with request-signature checks and rate limits.
- Progressive Web App setup (manifest, share target, service worker) makes the site installable.
- We split the work: one of us built the API chain, the other designed the interface, the Spanish copy and the pitch. We used Git and GitHub to work together, and Figma and v0 AI to plan the layouts.
Challenges we ran into
- Slow answers. A search felt painfully slow, so we timed each step. The model we had chosen was overloaded and hanging for 40+ seconds. Switching to a faster model with a fallback and a timeout brought a full check to about 1.6 seconds. We also run the Google and Maps lookups at the same time.
- A model disappeared mid-hackathon.
gemini-2.5-flashwas retired for new keys and our app started returning 404s. We had to debug the API route and migrate. - The AI saw scams everywhere. At first even real texts scored 78/100. We rewrote the prompt to be neutral and to expect safe messages and wrong numbers.
- Prompt injection. A scammer writes the message we analyze, so it could try to talk the AI into saying "this is safe." We now pass messages as clearly marked untrusted data.
- Designing for older eyes. Making a mode that is simple without feeling like a different app took several rounds.
- First-timers. For my sister's first hackathon and my first finished project, scoping what to build and learning Git together was a real learning curve.
Accomplishments that we're proud of
- Finishing our first hackathon project together, as sisters.
- A real pipeline where live web evidence and AI work together, not hard-coded demo answers.
- An app our own family can actually read and use.
- A full check in about 1.6 seconds.
What we learned
- How to chain real-time APIs and keep the UI useful during the wait.
- How to prompt an LLM for consistent JSON and strip away its bias toward "scam."
- To measure before fixing: we assumed our code was slow when one overloaded model was the cause.
- That accessibility changes the design, not just the font size.
What's next for Escudo RGV
- Voice-note and screenshot checking.
- A community database of reported local numbers and links, so repeat scams are caught faster.
- A one-tap share button for the family alert, and more Valley cities.
Built With
- figma
- gemni-api
- github
- google-maps
- javascript
- next.js
- pwa
- react
- serpapi
- tailwindcss
- twilio
- typescript
Log in or sign up for Devpost to join the conversation.