BUILD — APPLICATION ENGINE
An AI writer that is not allowed to make anything up about me
The failure mode of AI-written applications is well known: plausible, fluent, and quietly inflated. This one is built the other way round. A structured fact base is the only thing the generator is allowed to draw on, every figure in the output has to trace back to it, and the checks run at generation time rather than as a proofread afterwards.
Personal build. Local dashboard, nothing hosted publicly.
- 3
- live listing sources swept
- 1
- fact base every claim must trace to
- 0
- documents ever sent automatically
- Re-checkable
- after a hand edit, by command
Why I built it
Two problems, one system. Finding relevant roles is a repetitive sweep across boards that all present the same jobs differently. And tailoring an application well is genuinely slow — while tailoring one badly, with a generic model and no guardrails, produces exactly the confident, unverifiable prose that makes hiring managers distrust the whole format. I wanted the speed without the inflation, so I made verification a build step instead of a habit.
How the grounding works
One file holds the verified facts — roles, dates, metrics, and where each metric came from. The generator composes only from it. At generation time the document is checked: every number traces to the fact base, no authoring notes or banned phrasing survived, contact details are intact, the document is ATS-parseable (no tables, no headers, no images — the three things that most reliably break a parser), and it fits the page cap. The subtle part is what happens after. The generated file is an ordinary Word document, so a hand edit walks straight past every one of those guarantees. That's what the re-check command is for: it re-extracts the text from the edited file and re-runs every check it can, exiting non-zero if the edit broke one. If I want a change to survive the next run, I edit the fact base — not the output.
The send gate
Generating an application writes files to a folder and stops. The mail path creates an unsent draft in the Drafts folder with the documents attached, and that's where it stays until I open it and press send myself. This is enforced in the code twice, not just documented as a convention — because 'the tool never sends automatically' is only true if nothing in the tool can send.
What it proves
It's the same discipline as the rest of these builds, pointed at the highest-stakes possible target: my own claims about myself. Everything on this site — every percentage, every revenue figure — comes from the same fact base this generator reads, and can be traced back to its source. If you want to test that, ask me about any number on this page and where it came from.
Stack