Inspiration
Voice phishing and social engineering scams have become increasingly sophisticated, leaving vulnerable individuals with little defense against manipulative callers posing as authorities or service providers. Seeing how traditional spam filters fail against real-time conversational threats inspired the creation of ScamShield—an automated, AI-driven defense system designed to intercept, analyze, and evaluate phone fraud in real time using CALL-E.
How I Built It
ScamShield was built using a modern full-stack web architecture focused on real-time feedback and clear visual guardrails:
- Frontend & UI: Built with Next.js and Tailwind CSS to render a live security operations dashboard featuring scenario selection, structured call logs, and dynamic risk indicators.
- Backend API & Integration: Developed custom Next.js API routes (
/app/api/trigger-call/route.ts) to communicate with CALL-E voice agents. - Input Sanitization: Implemented E.164 phone number formatting to dynamically clean international inputs (such as Saudi
+966numbers) before triggering workflow pipelines. - Dual Execution Modes: Engineered a toggleable architecture supporting both live API execution and a standalone "Mock Execution Mode" (
USE_MOCK_CALLE=true) for sandbox evaluation and regional compatibility.
Challenges I Faced
The primary technical hurdle involved regional API constraints during live integration, as CALL-E's production calling endpoints encountered HTTP 422 validation errors when attempting direct calls to certain international regions (including +966 numbers).
To overcome this without stalling development, I decoupled the presentation layer from the strict telephony backend by designing an internal Mock Execution Engine. This allowed me to simulate full end-to-end transcript generation, dynamic speech-to-text parsing, and real-time risk scoring while keeping key logic intact.
Another key challenge was formulating an accurate, deterministic scoring algorithm to evaluate threat levels without introducing false positives.
Mathematical Formulation & What I Learned
Building ScamShield provided deep insights into designing resilient voice-agent guardrails and managing asynchronous state between conversational AI frameworks and web UIs.
To quantify risk objectively during a call, I modeled the overall Fraud Score (S) using a weighted linear combination of dynamic threat markers:
$$S = \min\left(100, \sum_{i=1}^{n} w_i \cdot c_i + \gamma \cdot U\right)$$
Where:
c_i ∈ {0, 1} represents the presence of specific risk triggers (e.g., requests for OTPs, bank details, or urgent fund transfers).
w_i represents the assigned weight for trigger i.
U represents the detected speech urgency/pressure metric (0 ≤ U ≤ 1).
γ (gamma) is the urgency scaling coefficient.
If the calculated score exceeds a critical threshold $S \ge 75$, the dashboard automatically flags the conversation as a high-risk security incident and initiates automated defense protocols.
Built With
- ai
- api
- call-e-api
- cybersecurity
- e.164-sanitization
- fraud-detection
- javascript
- mock
- next.js
- node.js
- react
- rest-api
- security-operational-dashboard
- tailwind-css
- typescript
- voice-ai
Log in or sign up for Devpost to join the conversation.