Inspiration
Phone scams cost victims the most per report. In the FTC Consumer Sentinel 2025 contact-method data, fraud that began with a phone call had a median reported loss of $1,835, the highest of any contact method. Older adults are hit hardest: 41% of 2024 reports from adults 60+ who lost $10,000 or more to business or government imposters started with a call. Existing call screening from Apple, Google and Truecaller checks names, stated reasons and spam lists, and a practiced script can pass those checks. We wanted to check what a caller claims against evidence, so we can substantially reduce the amount of online financial scams.
What it does
InterHoot is a proactive call-screening line. Unfamiliar callers reach InterHoot before the phone rings. An AI voice agent greets the caller in their language, asks who they are and why they are calling, and asks up to three follow-up questions. It turns those claims into checkable facts, compares them with the protected user's credit file in the CRS sandbox, runs a reverse phone lookup and fraud score on the caller's number, and combines everything into a weighted score.
Green calls are forwarded to the user. Yellow calls take a message and send a push notification. Red calls end, trigger an alert and block the number. Hidden numbers and numbers already flagged red are rejected before the phone rings. The iPhone app shows a feed of screened calls and syncs the block list to the Call Directory.
How we built it
- Telephony: Twilio Media Streams carries the call audio at 8 kHz mu-law. A telephony server routes calls and talks to a separate brain service that makes the screening decisions.
- Voice: Cartesia Ink 2 handles real-time speech-to-text with built-in turn detection for English, French, Hindi, Japanese and Spanish. Ink Whisper covers other languages and takes over if Ink 2 fails mid-call. Sonic 3 speaks each line in raw 8 kHz mu-law, the same format as the phone line, so audio plays into the call without resampling.
- Reasoning: Gemini 3.5 Flash-Lite extracts the claims from the conversation and writes the follow-up questions.
- Evidence: CRS sandbox data. The protected user's TransUnion prequal FICO 9 tradelines are loaded at startup, and the caller's sandbox persona gets a reverse phone lookup and a Fraud Finder score. A claimed creditor and amount are compared with the tradelines within the larger of $50 or 15%.
- Scoring: a weighted flag (Gemini 50%, CRS 25%, fraud 10%, lookup 5%, scam pattern 10%). Red is 0.70 or above and yellow is 0.35 to 0.70. The weights are hand-tuned, not calibrated probabilities.
- Data: SpacetimeDB holds the protected user, call log, flagged numbers, scam patterns and demo caller tables. The call server, the brain and the iPhone app read and write the same tables, so a number flagged red on one call is rejected on the next one.
Challenges we ran into
Speed: a phone conversation needs a fast reply. Our target is a 1.0 second median reply, while human turn gaps average about 0.2 seconds. Audio format: telephony audio is 8 kHz mu-law, so we chose a voice output that plays into the call without conversion. Limits of evidence: a match with the credit file does not authenticate a caller, and a missing debt is not proof of fraud. That is why InterHoot produces a flag with a recommended action, not a verdict. Privacy: the demo uses only sandbox personas and sandbox phone numbers, so no real person's data is sent anywhere.
Accomplishments that we're proud of
We built an integrated pipeline that takes a call from the first ring to a decision, with seven scripted test scenarios. In the demo, a fake Chase collector demands $2,340 in gift cards and threatens arrest. The claimed amount does not match the file, and the payment pressure is an automatic red flag, so the call ends, the phone gets an alert and the number is blocked.
What we learned
A caller's claim is weak evidence on its own, but it becomes useful when it can be checked against data. We also learned that consent and permissible-purpose rules shape the design from the start: the hackathon build uses sandbox data only, and any real deployment needs that review first. Finally, a fast voice agent depends on audio formats and turn detection as much as on the model.
What's next for InterHoot
We hope we can bring awareness to the industry on the options that are available to prevent issues like this from occurring in the future.
Built With
- apns-push
- call-directory-extension
- cartesia-ink-2
- cartesia-ink-whisper
- cartesia-sonic-3
- cloudflare-tunnel
- crs-credit-api
- express.js
- fraud-finder
- google-gemini
- ios
- mulaw-audio
- node.js
- playwright
- reverse-phone-lookup
- spacetimedb
- swift
- swiftui
- time-sensitive-notifications
- transunion-tradelines
- twilio
- twilio-media-streams
- typescript
- vitest
- websockets
Log in or sign up for Devpost to join the conversation.