CandorJob Applier + Resume Rebuilder
What it does for you
Merges every resume you have into one sourced vault, tailors each application without inventing anything, and fills company-site forms but stops before Submit.

Screenshots



In more detail
Candor merges every resume you have, plus a LinkedIn export and notes, into one vault where each fact keeps the file and line it came from. For a pasted job post it scores the match, lists honest gaps, and builds a tailored resume, cover letter and draft screening answers. It keeps references and documents ready, tracks applications, and ships a Claude skill that fills the company's form and stops before Submit.
Honest limits
It has never been run on a real job site. Claude mode and the live API call are untested live: the request code is tested with a fake fetch, and the skill's field mapping is tested against fixture forms. File upload, print, backup import and the clipboard were checked in code, not by hand. And the skill stops before Submit by design, every time. You review the form and click it yourself.
How I built it
Plain HTML, CSS and ES modules, no npm, IndexedDB for storage. Claude Code wrote the pure core first in small modules with 13 test parts, then the UI. I set the rules: no invented facts, stop before Submit, no bot evasion, references never sent to the API.
The heart of it is the guard. Every output line carries a source fact id, and the guard checks it against that one fact: numbers, employers, titles, dates, tools, credentials, inflating words like "led", and any job-post word the fact does not have. Borrowed wording only passes as a true alias, like Postgres for PostgreSQL. Claude's optional rewrites go through the same guard.
Mid-build I changed the spec: apply on company sites, not through aggregators. Candor takes an Indeed, LinkedIn or ZipRecruiter listing, points you to the company's own page, and detects the hiring system (Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Workday, iCIMS) to show its field map. No bot-detection evasion: no headless browser, no CAPTCHA solving, no account creation.
What I learned
- Two bullets that look the same but say 18% and 22% are not duplicates. They are a conflict, and neither shows up anywhere until I pick one.
- "Built" vs "building" and "Co." vs "Co" caused false rejections until the guard learned irregular verbs and punctuation.
- Honest tailoring is mostly selection and ordering. The guard, not the rewriter, is the product.
- The skill's playbook is generated from the tested core, and a test fails if the two drift apart.
What carried forward
Candor imports tested code instead of rewriting it: the job-post analyzer, term vocabulary and fabrication check (guardText) from #76 Seam, and the bullet scorer and filler stripping from #16 Sharpen. Both come in through one lib/reuse.js, and neither folder was edited. That added two direct import links to the reuse graph.
If I took it further
I would make vault facts editable in place, so fixing a bullet does not mean re-uploading a notes file, and I would run the skill against a few real application pages with me watching.
Why this row exists
Row #86 used to be the Deploy Agent, which builds a landing page and deploys it. That needed a Vercel connector, and I chose not to wire one up, so I skipped it on September 24. The same day I replaced it with Candor.
I picked it because most AI resume tools make you look better by making things up: a tool you never used, a bigger number, a title you never held. That gets people caught in interviews. The honest version is harder, and it is the one worth building.
#086 Built with Claude Code September 24, 2026 653 automated checks