Inspiration

Scams reach every community, and the people hit hardest are often elderly or less tech-savvy users. When a suspicious "your account is blocked" message arrives, they usually have no quick, judgment-free way to check it.

What it does

Scam Spotter lets anyone paste a suspicious message or upload a screenshot (SMS, WhatsApp, email) and instantly get:

  • a clear verdict: Scam / Risky / Safe
  • a confidence score
  • up to three red flags
  • a plain-language explanation
  • simple next steps (e.g. don't click the link, contact your bank directly)

It doesn't panic about everything: in testing, a fake Wells Fargo alert came back as Scam, an unofficial login page screenshot as Risky, and a normal family dinner message as Safe.

How we built it

  • Python + Streamlit for the web app and UI
  • Google Gemini API (via the google-genai SDK) for analysis, with a system prompt that makes the model act as a fraud-detection expert
  • Structured JSON output validated with Pydantic, so the UI always gets a consistent verdict, score, flags, explanation and actions
  • Image input: screenshots are sent directly to Gemini, which reads the text and visual cues
  • Deployed on Streamlit Community Cloud, with API keys kept in secrets and never committed to GitHub
  • Built with the help of an AI coding agent (Google Antigravity) for code generation, with testing and iteration done by hand

Challenges we ran into

  • Calibrating verdicts: getting the app to separate "Risky" from "Scam" and not flag normal messages took prompt tuning and testing with different message types.
  • Keeping secrets safe: I had to keep the API key out of the repo (.gitignore, .env.example) and configure it separately on the cloud deployment.
  • Deployment hiccups: my first deploy ran without the API key and failed, so I learned how Streamlit secrets work and fixed it.
  • First time with Git and agents: setting up Git, pushing to GitHub and working with an AI coding agent were new to me.

Accomplishments that we're proud of

A working, publicly deployed app that handles both text and screenshots, and gives explanations that a non-technical person can actually understand.

What we learned

How to build and deploy an LLM-powered app end to end, how to get reliable structured output from a model, and why security basics (secrets, .gitignore) matter from day one.

What's next for Scam Spotter

  • Link reputation checks against known-bad URL databases
  • Multi-language support so more communities can use it
  • Voice input for people who find typing difficult
  • A WhatsApp bot, so people can forward a suspicious message and get an answer in the same chat

Disclaimer: Scam Spotter is informational only. AI can make mistakes, so always verify with your bank or an official source.

Built With

Share this project:

Updates

Submission history