Truthers — forensic financial intelligence from the public record
Truthers reads the public record and reports what is in it. Government spending leaves a paper trail of contract awards, budget lines, procurement filings and court dockets, almost all of it already public and almost none of it readable at any useful scale.
Scattered across hundreds of portals in formats that resist reading, that trail is technically available and practically invisible. The gap Truthers works in is not access. It is attention.
The product rule sits above every other design decision: if a claim cannot be traced to a primary record, it does not post. An award ID, a dataset row, a filing number, a docket. Provenance is not a footnote on the output, it is the gate the output has to pass. The house style follows from the same rule — a dollar amount before any inference, a contract number before any name. The figure carries the weight; the words stay quiet.
Underneath sits a pipeline of layers, each one narrow enough to be checked on its own:
- Ingestion — open-data portals, scrapers, and records requests, landed as immutable objects with a log of what arrived when.
- Extraction — filings are largely PDFs, so the text has to be recovered before anything can be parsed out of it.
- Entity resolution — the same vendor appears under a dozen spellings across agencies. Fuzzy matching plus classifiers collapse them into one entity, which is the step that makes the rest possible.
- The graph — resolved entities, awards, and agencies in Neo4j, where graph algorithms surface the structures a spreadsheet hides: a vendor that only ever wins from one department, a cluster of addresses that resolve to one office.
- Analysis — structured DSPy pipelines score a candidate finding against the record rather than against a vibe.
- Case management — a finding is not the end state. It gets assembled into a packet complete enough for someone to act on.
- Publishing — what survives all of that reaches truthers.io.
One constraint is worth naming because it shapes what the agent can say: it takes no position on party. Corruption is corruption, and a ledger has no politics. That is a narrower promise than most coverage of the same material makes, and the narrowness is the point — a finding that only lands for one half of an audience is a finding nobody can check.
The project was built in April 2026, paused, and pulled back out of storage in July, when the two front ends were merged into one application and the site was repositioned around a single claim. The publishing surface is live at truthers.io. The pipeline behind it is where the work is.
