Inspiration
What it does
Inspiration
Scam texts and calls hit hardest among people Big Tech's scam filters were never built for: elderly parents, people who read slowly even in their own language, and anyone outside English and a handful of major languages. Google's own Pixel Scam Detection needs Tensor hardware and barely covers regional languages. We built ScamSavior for the person left out: an elderly relative on a mid-range Android phone, reading Tamil or Hausa, targeted by a "your pension is frozen" text they can't easily verify alone.
What it does
ScamSavior scans SMS, RCS, WhatsApp, WhatsApp Business, Telegram, Signal, Instagram, Facebook, Messenger, Samsung Messages, and incoming calls — flagging bank/KYC, lottery, loan/job, OTP-phishing, courier, and digital-arrest scams. Everything runs fully on-device: no server, no account, works offline.
- 50+ languages, spanning India, the rest of Asia, Europe, and Africa — and the warning itself renders in the reader's own language, not just detection.
- Spoken voice alerts via text-to-speech, in-language, deliberately slowed down — built for users who read slowly or not at all, the same people scammers target most.
- Built for senior citizens: large touch targets throughout, a call screener that catches scam calls without ever needing risky audio access (which Android blocks anyway), and a keyword library that explicitly recognizes pension/benefits scams aimed at older users.
- Analytics dashboard: filterable by date range, channel, country, and scam type — entirely computed from on-device data, nothing new collected.
How we built it
Kotlin native Android app. Chat-app scanning uses Android's Notification Listener — the only technically possible route into encrypted apps like WhatsApp and Telegram — restricted to a strict, auditable allow-list of exact package names so nothing outside those apps is ever read. Detection is rule-based, built from shared scam concepts so the same scam scores identically regardless of language, verified by an automated cross-language parity test. Call risk is scored from number patterns and prior flagged messages, never audio, which Android prohibits third-party apps from accessing entirely.
Challenges we ran into
- A JVM 64KB method-size limit silently broke the build at 59 languages — fixed by lazy-initializing each language list separately.
- Chat apps re-post the same notification repeatedly; naive scanning would triple-alert on one message — fixed with a fingerprint + short dedup window.
- Voice alerts talking over each other, or firing during a call or Do Not Disturb, would erode trust fast — built a strict suppression system (never during calls/music/silent mode/DND, rate-limited to 6/hour).
- Some languages inherited a parent language's keyword list and double-counted matches — fixed with concept-deduplication.
- A real bank OTP was flagged as suspicious for containing the word "OTP" — fixed with legitimacy signals that recognize genuine bank language.
Accomplishments that we're proud of
Real multi-channel, multi-language protection that still fits entirely on-device — verified score parity across 41+ languages with zero spread, and zero missed scams across our test corpus.
What we learned
Meeting non-English, less-literate, and elderly users where they actually are — voice, large text, their own language — turned out to matter as much as detection accuracy itself.
What's next for ScamSavior
Ring-time call safety overlay, native-speaker review of lower-confidence languages, and deeper in-app education on scam patterns.
Log in or sign up for Devpost to join the conversation.