The challenge
What the system needed to solve
Run a full job search with AI assistance without letting a model send anything unreviewed, invent a qualification, or see credentials.
The build
Engineering decisions
Built durable, schema-bound LLM jobs for inbox classification, whole-thread reply planning, posting extraction, fit scoring, and document generation, routed per task to a cluster GPU model or to Claude through a subscription relay with no API key in the cluster.
Mirrored this site into a profile corpus (résumé, case studies, posts) and a private facts bank, then budgeted prompts per backend so an 8K-context local model still sees the parts that matter.
Required every generated cover letter, answer, or message to cite the profile facts it used and to list any claim it could not source, surfaced as warnings before anything is sent.
Kept every outbound email approval-first: explicit confirmation, a server kill switch, verified résumé attachments, and a re-engage mailer that replies in the original thread or starts a new one.
Architecture
How the pieces connect
- 1Gmail and IMAP sync
- 2Untrusted-content boundary
- 3Per-task model routing
- 4Profile corpus and facts bank
- 5Truthfulness guard
- 6Human-reviewed send
Results
What changed
- Hundreds of recruiter conversations triaged and answered with one active reviewed draft per thread.
- Job postings go from paste to fit report and tailored materials in under a minute on a frontier model, with every claim traceable.
- Model assistance is replaceable; the deterministic workflow data, audit trail, and safety boundaries stay.
