AI-Powered Protection

Every inbound message.
Scored before you see it.

FreeLine's AI Spam Shield analyzes every incoming SMS in real time, flagging phishing, scams, and impersonation before they reach your inbox.

13
Scam patterns detected
<1ms
Analysis latency
3
Layers protected
AI Spam Shield flagging a lottery scam in the FreeLine inbox
Spam flagged in the inbox
FreeLine messages inbox with clean conversations
Clean conversations untouched

How it works

Every inbound SMS passes through the spam analysis pipeline before it reaches the user's device.

SMS arrives
Inbound message hits the backend via Bandwidth/Twilio webhook
Spam analysis
SpamAnalysisService scores the message against 13 pattern categories
Score + reason
Confidence (0.0 to 0.99) and a one-line reason are attached to the message
Client renders
iOS and Android show the spam badge inline with no extra API call

What it catches

The classifier runs 13 weighted pattern categories plus behavioral signals.

Account phishing
Fake account suspension notices that pressure you to "verify" credentials immediately.
"Your Apple ID has been suspended. Verify your account at http://rb.gy/x9k2m"
Prize and lottery scams
Fake prize notifications with links to collect "winnings" that don't exist.
"Congratulations! You've won a $500 gift card. Click here to claim now!"
Government impersonation
Messages claiming to be from the IRS, FBI, or DEA threatening legal action.
"IRS notice: A warrant has been issued for unpaid taxes. Call immediately."
Financial scams
Crypto solicitation, wire transfer requests, gift card schemes, and unsolicited loan offers.
"Send $200 in bitcoin to unlock your prize. Act now, limited time!"
Suspicious links
Shortened URLs from unknown senders get an automatic confidence boost.
"Check this out: bit.ly/free-money-now"
Urgency pressure
Multiple urgency markers ("act now", "immediately", "last chance") compound the score.
"URGENT: Act now or lose access. This is your last chance. Respond immediately."

What the user sees

Spam messages are flagged inline. No separate screen. No friction.

AI Spam Shield · Account suspension phishing
URGENT: Your Apple ID has been suspended. Verify your account immediately at http://rb.gy/x9k2m
Spam confidence 95%
Can you send me the apartment code before I land?
Sending it now. The keypad is 4820.
AI Spam Shield · Prize/lottery scam
Congratulations! You've won a $500 gift card. Click here to claim: bit.ly/free-prize
Spam confidence 92%

Built across all three layers

Not a mockup. The classifier, enrichment, and UI are wired end to end.

Backend
SpamAnalysisService runs at message ingestion time. 13 weighted regex patterns, urgency detection, impersonation markers, URL analysis. Enriches the message payload with spamConfidence and spamReason fields.
TypeScript / Fastify / Node.js
iOS
Coral shield badge in conversation rows and message bubbles. Confidence score and reason displayed inline. Spam message text tinted to visually separate from real conversations.
SwiftUI / Liquid Glass
Android
Same spam badge rendering in Jetpack Compose. Shield pill with reason text. Model fields parsed from JSON with null-safe handling for backward compatibility.
Kotlin / Jetpack Compose

Why spam defense over flashier AI features

I picked spam defense over chatbots, message summaries, or smart reply suggestions because it's the feature that actually matters for the business.

A free phone number that gets flooded with spam is worthless. Users churn. Carriers flag your number pool. Telecom costs spike from bot traffic. TextNow deals with this at scale, and I wanted to show that I understand the problem well enough to build a working solution.

The classifier runs server-side at message ingestion time, so there's no model download on mobile and no latency in the inbox. It enriches the existing message payload, so both iOS and Android display warnings without any separate API call. And it feeds directly into the existing abuse service, so patterns flagged by the classifier can inform trust scores across the whole community.