Inspiration
Scam calls rely on manipulation tactics victims often can't name in the moment -- urgency, authority impersonation, fear. We wanted to build a tool that makes those tactics visible and explainable, after the fact, so people can recognize them next time.
What it does
Vexa is a scam-call forensics console. Paste a suspicious call transcript, or upload a recording, and Vexa identifies the manipulation tactic used in each segment, gives an overall risk score, and suggests a practical counter-response.
How we built it
Built with Next.js (App Router) and TypeScript, styled with Tailwind CSS and Framer Motion. AI analysis runs through a server-only Gemini route with Zod validation, timeout/retry handling, and a local rule-based fallback for reliability. Client-side audio cadence extraction uses Meyda, so raw audio never leaves the browser. Charts via Recharts, icons via lucide-react.
Challenges we ran into
Getting reliable, structured output from the AI model (rather than free text) required careful prompt design and schema validation with Zod, plus a fallback path for when the API times out or is unavailable — important for a live demo.
Accomplishments
A working end-to-end pipeline: audio or transcript in, tactic detection + risk scoring + evidence timeline out, with dark/light theme support and keyboard-accessible controls.
What we learned
How to design AI-assisted tools that stay transparent about their limits -- Vexa organizes evidence and suggests context, but it doesn't make legal or financial decisions for the user.
What's next
Expanding the tactic library, adding real-time transcription support, and testing with real call center training data.
AI usage disclosure
Claude and Gemini were used during development to help write and debug code. Gemini (via @google/genai) is the core analysis engine at runtime, with a local fallback for reliability. AI output organizes evidence — it does not make legal or financial decisions; findings should be reviewed before acting.
Built With
- css
- framer
- gemini
- lucide-react
- meyda
- motion
- next.js
- recharts
- tailwind
- typescript