Most AI résumé tools have the same flaw: they hallucinate. Ask them to tailor your résumé for a job requiring "Rust experience" and they'll happily invent a Rust project you never worked on. It reads great — until the technical interview.
I wanted the opposite. So I built Citevault: a local-first résumé tailoring tool where every claim is either grounded in your own evidence, or refused and flagged as a gap.
No fabrication. No API keys. Runs entirely on your laptop. (Model weights are pulled from Hugging Face once on first boot; after that, no outbound connections.)
The core idea: claim-level grounding
Every bullet in your résumé starts as a claim. Citevault processes each one through a pipeline:
Retrieve — hybrid BM25 + dense embedding search over your indexed evidence (master résumé, project READMEs, blog posts, anything you upload)
Re-rank — BGE cross-encoder scores the top candidates for relevance
Verify — Gemma 4 reads the claim alongside the retrieved span and gives a verdict:SUPPORTS,PARTIAL,UNCLEAR, orCONTRADICTS
Rewrite or refuse —SUPPORTS→ the claim is verified and cited;PARTIAL→ rewritten to match only what the evidence actually says;UNCLEAR→ a rewrite is attempted, and if it still can't be grounded, refused and gap-reported;CONTRADICTS→ refused immediately and gap-reported
in the repo.
The code is on GitHub: github.com/jaberoma/citevault — MIT licensed, no account required, runs on any laptop with Docker.
Citevault's contract is simple: every claim in your résumé either links to a source span in your own evidence, or it does not appear. No exceptions.
SOCIAL SHARE CARD GENERATOR