Inspiration
Imposter scams are the most reported fraud in the US. In 2025, the FTC received over a million imposter scam reports, with more than $3.5 billion lost (FTC). Reported fraud losses among adults 60 and over roughly quadrupled between 2020 and 2024 (FTC).
Awareness campaigns tell people what scams look like. But reading a flyer is very different from saying no to a confident, urgent voice on the phone. Companies already run phishing simulations for email. We wanted the same thing for phone calls, where the pressure is live and the stakes are highest.
What it does
PhonyBusiness puts you on a realistic practice call with an AI scammer.
- Pick a scam. Choose one of 14 common phone scams, like a fake benefits officer, a tech support "technician," a panicked grandson, or a sweepstakes host, and a difficulty from easy to hard.
- Answer the call. Your screen rings like a real phone, with a fake caller ID.
- Talk your way through it. The scammer adapts to everything you say. Hesitate, and it reassures you. Push back, and it offers a fake badge number. Refuse, and it pushes once or twice before giving up.
- Get your result. Refuse, hang up, or say you'll call the official number, and you pass. Start to agree, and the call stops instantly, before anything sensitive is shared.
- Get coached. A coach walks you through the red flags from your specific call and what to do next time.
A dashboard shows which scams fool people most, where they slip, and how results change over time, without ever storing a conversation.
How we built it
| Layer | What we used |
|---|---|
| Voice agent | ElevenLabs Agents, with Gemini as the LLM |
| Voices | ElevenLabs Voice Design, one designed voice per persona |
| Backend | FastAPI (Python) in Docker on DigitalOcean App Platform |
| Database | MongoDB Atlas |
| Frontend | Plain HTML, CSS, and JavaScript with the ElevenLabs JS client, on GitHub Pages |
One agent, 14 scammers. A single ElevenLabs agent plays every scenario. Each call injects dynamic variables: the persona, the scammer's goal, the red flags to show, the difficulty, an opening line, and a safe word.
A voice for every persona. We generated 14 voices with Voice Design from text descriptions, then apply the right one per call with a voice override. No real person's voice is cloned.
Deciding pass or fail live. A server tool, record_outcome, lets the agent report pass, fail, caution, or stopped mid-call. The backend responds with tips for the exact red flags that came up, and the coach builds the debrief from them.
Analytics without transcripts. Signed post-call webhooks deliver timing, outcome, sentiment, latency, and cost to the backend, which stores results only.
Safety layers. ElevenLabs guardrails sit on top of the system prompt, and the backend creates signed session URLs, so the API key never reaches the browser.
Challenges we ran into
- You can't interrupt someone mid-number. A voice agent only responds when the user pauses, so someone reading a number in one breath gets heard in full. We redesigned the scam itself: the scammer asks whether you're willing to verify, never for the actual digits, and agreeing is the fail.
- Hesitation is not agreement. "I don't know how to do that" was first scored as a fail. We taught the agent to tell inability from willingness, so hesitation gets reassurance and another ask, while "Sure, how do I do that?" still fails.
- Robotic designed voices. Our first generated voices sounded synthetic. A newer design model, lower guidance, and preview text written like real phone speech made a big difference.
- Keeping LLM output machine-readable. The agent paraphrased red flag names, which broke our tip matching. We made it copy flags exactly and added fallback matching so the debrief always has tips.
- Webhook security. Signed post-call webhooks and unsigned tool calls need different verification, which we learned from a wall of 401s.
Accomplishments that we're proud of
- A scam simulator that can't be turned into a scam tool. Fictional organizations only, it never asks for real numbers, a safe word ends any call instantly, and it admits it's an AI if you ask.
- 14 scenarios, each with its own voice, covering the FTC's top phone fraud categories.
- Privacy by design. We store results, not conversations: no transcripts, names, or call summaries.
- No accent stereotypes. Every scammer voice uses a neutral American accent, so people don't learn the false cue that scammers "sound foreign." Real scammers sound like anyone.
What we learned
Realism and safety pull in opposite directions, and most of our design work lived in that tension. We also learned how much of a voice agent's behavior comes down to precise prompt wording, and how important it is to test against real transcripts instead of assumptions.
What's next for PhonyBusiness
- Real phone calls to a resident's actual phone, with verified opt-in
- A dedicated coach voice for every debrief, using multi-voice support
- Spanish scenarios with automatic language detection
- Pilots with senior centers, libraries, and local consumer protection offices
Built With
- css
- digitalocean
- docker
- elevenlabs
- fastapi
- gemini
- github
- godaddy
- html
- javascript
- mongodb-atlas
- python

Log in or sign up for Devpost to join the conversation.