Inspiration
Scammers don't need to steal your card anymore. They text you: "Grandma, it's me. I'm in trouble. Please buy this and send it to my friend." It's her card and her purchase, so the bank's fraud rules see nothing wrong. A text from the bank won't help either, because the scammer is already in her texts. We wanted a fraud desk that knows what normal looks like for one person, and picks up the phone when something's off.
What it does
Ellio is an AI fraud agent for banks. It scores every card purchase against the customer's normal life, and when something looks like a scam, it calls them.
The scam: Dolores, 78, gets a text: "Grandma it's me. I got arrested. Please buy $1,500 in gift cards and send me the codes. Don't tell mom." She buys them with her own card.
Why normal alerts miss it: her card wasn't stolen. A "Did you make this purchase?" alert gets a yes.
The call: Ellio flags the purchase as far outside her normal spending and calls her. It recognizes the grandparent scam, gently explains it, and stops the purchase. The bank sees the score, the transcript, and the outcome live.
How we built it
- Convex runs the whole backend: HTTP actions for checkout and the agent's tools, scheduled functions for the call, and live queries that update the bank desk instantly.
- Capital One Nessie holds cardholder accounts and purchase history. Ellio computes each person's baseline from it.
- CRS FraudFinder scores the buyer's contact details at checkout.
- Cartesia handles the voice pipeline for the phone call, and Claude Haiku makes the decisions. It reports back to Convex through tools: approve, escalate, red flag, transcript.
- The store and bank desk are plain HTML, CSS and JavaScript.
Challenges we ran into
- The CRS sandbox only returns a full score when a request includes every field of a test persona, including the IP address.
- Nessie only answers over HTTPS, which showed up as a vague connection error.
- Making the voice agent sound calm for an older listener: short sentences, no rushing, no false reassurance.
What we learned
- Explainable beats clever: a list of plain reasons with points is easier to trust than a single score.
What's next
- Real account history from a bank's own systems.
- A trusted family contact who gets looped in on escalation.
- Authentication on the agent's tool routes.
Built With
- anthropic
- capital-one
- capital-one-nessie
- cartesia
- claude
- convex
- crs-credit-api
- css
- html
- javascript
- python
- typescript
Log in or sign up for Devpost to join the conversation.