-
-
Scammers work around the clock. So does our AI.
-
A carrier-level gateway between the network and every subscriber
-
Before: detect risk before the call connects
-
During: warn the subscriber in real time
-
After: lock down accounts automatically
-
hen an action fails, Nemotron reads the error and replans
-
Names, numbers and codes become one-way tokens in the browser
-
Command Center: live protection status, threats and open incidents
-
Before: every carrier event gets a risk score and a clear next step
-
During: an unverified "IT Service Desk" call is flagged before it's answered
-
After: an NVIDIA Nemotron agent locks down the accounts live
-
As risk climbs, the caller is muted and the customer is warned privately
-
The AI never sees real personal data
-
A draft incident and FTC report, with personal data shown only as tokens
🌐 Live demo: blockaroundtheclock.fishing · Code: GitHub
Inspiration
Most phone scams follow the same script. Someone calls pretending to be your bank or your company's IT desk and talks you into reading out a one-time code. Within minutes they've moved your phone number to their own SIM card (a SIM swap). Every login code now goes to them, and they start opening credit cards and draining accounts in your name.
Phone carriers see this attack first: the suspicious call, the SIM-swap request, the strange network activity. Yet the usual response is still the victim calling a hotline hours later, then phoning their bank, three credit bureaus and their employer one by one.
We asked: what if the carrier could warn you during the call, and clean up automatically if the scam got through?
What it does
Block Around the Clock protects a phone customer at every stage of an attack.
🛡️ Before: A live feed of carrier events (SIM swaps, number transfers, spoofed caller IDs, smishing links, forced downgrades to insecure 2G) gets a risk score from 0 to 100. Each score shows why it's risky and what to do next. Risky events become an incident in one click.
📞 During: A scam call plays out line by line. As the risk climbs, the protection steps up:
- At risk 45, the call volume is lowered.
- At risk 65, a private voice whispers a warning only the customer hears.
- At risk 85, a full-screen alert appears.
🚨 After: In the War Room, an NVIDIA Nemotron AI agent takes over the lockdown. It decides what to secure (the SIM card, number transfers, logins, credit files, the bank), runs each action, checks whether it worked, and changes its plan when something fails. Every decision appears on screen as it happens.
It also includes:
- 🔒 Privacy Sieve: Names, phone numbers and card numbers are replaced with tokens like
[PHONE_3F9A21]in the browser, before anything reaches our server or the AI. - 📋 Reports: A draft incident report and FTC identity-theft report, exportable as a PDF.
- 🧾 Tamper-evident audit log: Every action is chained to the one before it, so editing any past entry breaks the chain:
$$h_i = \text{SHA-256}\left(h_{i-1} \,|\, \text{event}_i\right)$$
- 🧪 Agent Evaluation: The AI agent is tested on four scenarios and graded on what it actually did, step by step.
What's simulated: This is a hackathon demo. The carrier network, call audio and lockdown actions are simulated and clearly labelled in the app. Nothing contacts a real bank or credit bureau. The AI is real: the agent runs on the live NVIDIA Nemotron API, with no fake fallback.
How we used each track
| Track | How we followed it |
|---|---|
| NVIDIA: Nemotron Beyond a Chatbot | Nemotron runs a multi-step tool-calling loop: assess → pick a tool → our server runs it → the real result goes back → replan → repeat. When a tool fails it retries, uses a fallback, or asks a human. It passed 23/23 checks on our last live evaluation. |
| T-Mobile: Scam and fraud protection | Detection is only step one. We protect customers before, during and after a scam, show the reasons behind every risk score with a clear next step, and tokenize personal data on the device. |
| Winstead PC: Incident Response Dashboard | The War Room is the command center. It has incident records with live status, a timeline, and a scope section showing which data was involved and what happened to each account. It's built assuming the network is compromised: a tamper-evident audit log, an allowlist for every action, no raw personal data stored, and secrets only on the server. Every screen has one obvious next step. Not built yet: admin-managed user accounts and in-dashboard team chat (on our roadmap). |
| MongoDB Atlas | Atlas stores everything: incidents, sanitized events, lockdown actions, full AI agent traces, evaluation results and the audit chain. A unique index keeps the chain in order. |
| GoDaddy Registry | blockaroundtheclock.fishing: we stop phishing around the clock. |
How we built it
- Frontend: React, TypeScript, Vite, Tailwind CSS, Motion and Lenis for the scroll animations, Recharts for charts.
- Backend: Python and Flask, with pydantic validating every request and ReportLab generating the PDF reports.
- AI: NVIDIA Nemotron through the NVIDIA API catalog, using tool calling. Nemotron 3.5 Lightning 30B is the fast default; Nemotron 3 Ultra 550B is available for harder cases.
- Database: MongoDB Atlas.
- Hosting: Vercel (website) and Render (API), on our GoDaddy Registry
.fishingdomain.
The agent has 11 tools, such as lock_sim, freeze_credit(bureau), revoke_sessions(scope) and request_human_intervention. Each tool runs through a simulated adapter with its own state. A credit bureau can be down once or for good, and a number transfer can already be in progress. The agent isn't told about these conditions. It has to discover them from the results, just like in real life.
Safety rails keep the agent in check:
- Every tool call is validated against an allowlist before it runs.
- It can't repeat the same failed action more than twice.
- It has a 16-turn limit.
- The server refuses to mark an incident "contained" while any failure is still unresolved.
Challenges we ran into
- The AI skipped steps. Early on, Nemotron sometimes didn't freeze credit at all, so our "credit bureau is down" test never triggered. A clear written policy in the prompt fixed it: freeze all three bureaus, and use a fraud alert only as a backup.
- The AI declared victory too early. We added a server-side check: if the agent says "done" while a failure is unresolved, the incident is flagged needs attention instead.
- Grading fairly. Our first grader failed any run that had a failed action, even when the agent correctly worked around it. We rewrote it to track only the failures that were still unresolved.
- Our privacy filter worked too well. Incident IDs like
INC-261108-4421looked like phone numbers and were being hidden. We changed the ID format. - Deployment surprises. MongoDB Atlas rejected connections over missing security certificates, and free hosting puts our API to sleep. We bundled the certificates and made the site wait for the API to wake up instead of erroring.
- Saying no to fakes. It would have been easy to return a canned answer whenever the AI call failed. We chose not to: if Nemotron is unavailable, the app says so plainly.
Accomplishments that we're proud of
- A real AI agent loop on the live Nemotron API, not a scripted demo. 23/23 checks passed across four evaluation scenarios.
- The agent recovers from failures on its own and explains why it changed plans. When a credit bureau goes down, it places a fraud alert instead of pretending the freeze worked.
- It knows when to do less: a harmless robocall doesn't trigger a full account lockdown.
- Personal data never reaches the server or the AI. A test scans every database collection to prove it.
- A tamper-evident audit trail: change one past entry and verification fails.
- A full before → during → after story, live on our own domain.
What we learned
- How to build a tool-calling agent: designing tools, validating every call, setting limits, and feeding real results back to the model.
- Clear written rules in a prompt change an agent's behaviour more than clever wording does.
- Evaluate the actions, not the words. Grading what an agent did tells you far more than reading its final message.
- Privacy works best as early as possible, which for us meant in the browser.
- How phone scams really work: SIM swaps, number transfers, caller-ID spoofing and 2G downgrade attacks.
What's next for Block Around the Clock
- Real integrations: connect to carrier, bank and credit-bureau partner APIs in place of the simulated adapters.
- Real call analysis: work on actual call audio, not scripted transcripts.
- Team access and secure chat: admin-managed accounts and roles, plus encrypted chat inside the War Room, so responders don't rely on email or Slack that an attacker might be reading.
- Isolated deployment: a self-contained build that runs on separate hardware, away from a compromised network.
- Tougher testing: more scenarios, such as several attacks at once, partial outages and attempts to trick the agent.
Built With
- agentic-ai
- flask
- godaddy-registry
- lenis
- lucide
- mongodb
- mongodb-atlas
- motion
- nvidia-nemotron
- nvidia-nim
- pydantic
- pymongo
- pytest
- python
- react
- recharts
- render
- reportlab
- rest-api
- tailwindcss
- tool-calling
- typescript
- vercel
- vite