This is a submission for the MLH x DEV Writing Challenge
What I Built
In April 2024, a Citigroup employee entered a payment of $81 trillion instead of $280, according to the Financial Times. The amount field was pre-filled with 15 zeros that nobody adjusted. Two people missed it and a third caught it 90 minutes later. It was reversed and no funds left the bank, but only because of a last check.
During Hacktoberfest '26, I built TrueNorth to catch that kind of mistake before a form is submitted. It is an open-source verification engine that checks whether a value makes sense in context and matches its supporting document, which standard client-side validation cannot do.
It works in two ways:
- Next.js 15 web workspace: upload a document, inspect each finding next to its evidence, resolve it, and release the reviewed batch.
- Manifest V3 Chromium extension: reads a live form and holds back a suspicious value, with the reason shown, before submission.
Both use the same checks, so a number is judged the same way whether it comes from a file or is typed into a form.
The evidence, finding, human resolution and release pattern was inspired by an existing quality-gate tool called Pokayoke. The document reading, the Gemma 4 layer, the extension and the code are my own.
Demo
- GitHub repository: TrueNorth on GitHub
- Results: 1st place, Best Open-Source AI Project, and Best Use of Gemma 4 (special award), Hacktoberfest '26 at NIC Faisalabad
Partner Technologies
- Gemma 4 (26B), through the Gemini API: extracts structured fields from documents, checks whether a value makes sense in context, and quotes the source line as evidence for each flag.
Verification runs in four layers:
- Deterministic rules: totals add up, formats are valid.
- Statistical benchmarks: flags outliers against baseline data.
- Gemma 4 reasoning: checks cross-field validity and context.
- Form bridge: the extension maps verified values back into the browser form.
Code and the person reviewing hold the gate. Gemma supplies context and evidence, which keeps the result predictable and easy to audit.
Hackathon Experience
I built TrueNorth in one day at Hacktoberfest '26 at NIC Faisalabad and tested the extension against live web forms.
What I learned:
- Reading is not judging. The system worked best when plain code made the pass or fail call and Gemma only read the document and explained the context.
- Say "could not read" instead of guessing. Messy input is where a model goes wrong, so an honest gap beats a confident error.
- Catch it where it happens. The extension showed me that a warning at the moment someone types a number is what would have stopped the Citi error.
With more time, I would measure how often each field is read correctly across many more real documents.
Thanks to MLH and DEV for the challenge.
Top comments (0)