All work

FraudLens

1st place · Finnovate 2026

Checks a suspicious message, link or document before you pay, in English, French and Kreol Morisien.

An example MCB scam message in Kreol with three highlighted phrases, each linked to a warning: urgency, code request and look-alike link. Verdict: Scam.
An example MCB scam in Kreol. Every warning points at the words that caused it.

What I did

  • Ran the QA rounds, built local test pages for the Chrome extension, and wrote a script that confirms each reported bug is fixed before it goes back to QA.
  • Fixed some of the bugs QA found, mostly in the backend. Two examples: the endpoint analysts use to record outcomes was open to anyone and now needs a token, and old organisation data is purged.
  • Built the PDF and Word document forensics.
  • Reviewed the Kreol scam dataset, and tested how often the model’s answer to the same Kreol message changes between runs. The model is only shown the 61 dataset rows a person reviewed.
Role
QA and testing, backend fixes, document forensics
Team
Dhruv & Friends, four developers
When
September 2026
Built for
Finnovate Web and AI Hackathon 2026

The problem

Scams in Mauritius arrive in mixed Kreol and French: an SMS saying your MCB account is blocked, a WhatsApp "bank" asking for the one-time code it just sent, a fake MRA refund page. Generic filters don’t read Kreol, don’t know that mcb.mu is real and mcb.nu isn’t, and hand back a score nobody can explain.

How it works

  1. 01

    Every warning quotes the message

    A language model reads the message and may only return tactic codes from a fixed list, each with a quote copied from the message. Plain code then checks every quote against the original and drops anything it can’t find there.

  2. 02

    The rules engine sets the verdict

    A versioned rules engine turns those findings into the score, the verdict and the advice, and lists every point it added.

    Explainer page reading "The AI reads the language. The rules engine decides." with three steps: Read, Verify, Decide.
    How it decides. The model reads, fixed checks verify, the rules engine sets the verdict.
  3. 03

    Links are checked against the real domains

    A registry of official domains for seven Mauritian banks, telecoms and government bodies catches look-alike links, including Cyrillic letter swaps.

    Site security report for web.whatsapp.com: no sign of fraud, build quality grade C.
    A site security report, with the checks behind the grade.
  4. 04

    One backend, three front ends

    The web app, a Chrome extension and an Outlook add-in all call the same backend. None of them has its own copy of the detection logic.

    Chrome extension popup titled Link Guard showing web.whatsapp.com marked Safe, with actions to scan the page or report the site.
    Link Guard, the Chrome extension, checking the current site.
  5. 05

    Documents are checked for how they were made

    A forensics service looks inside PDF and Word files for signs such as a signature pasted onto a scan or edits made after signing. It reports them as warning signs, never as “forged”.

    Three tool cards: Before paying, Check a document, Whole conversation.
    Tools for specific situations: before paying, checking a document, reading a whole chat.

Design decisions

Results

Figures from the project README
Rules only, model off46 of 63 scam messages caught, 0 of 21 legitimate messages flagged
Backend tests631 passing
Web app tests99 passing
Outlook add-in tests77 passing
Chrome extension tests46 passing
Document forensics tests48 passing, 2 skipped

More screenshots

Built with