DEV Community

Trent Wade
Trent Wade

Posted on

I built a job-application autopilot that refuses to lie

Auto-apply tools had a good premise and became spam cannons. Identical applications, invented qualifications, blasted at everything. It burns the candidate and poisons the channel for everyone — including people applying honestly.

I spent the last year running a production job-application pipeline, and the thing I kept coming back to was: the lying is the product defect. Not the automation. The automation is fine. The lying is the defect.

So I built Keel around a truthfulness contract, enforced in code rather than promised in marketing:

  1. Truthfulness gates. Anything your profile can't support is reported as a gap, never bridged with fiction. No invented experience, degrees, or answers.
  2. Explicit confirmation. Nothing counts as submitted unless the page itself confirms it. Not the browser accepting the task — the page confirming.
  3. Fail closed. Unverifiable postings, unmappable questions, missing attestations: park, never proceed.
  4. No fingerprinting surface. Nothing in the public repo helps ATS vendors identify or block automated applications.

The public half is Apache-2.0: discovery and fit scoring, truthful resume tailoring, a canonical answer bank, prescreen gates, an ATS capability radar (read-only probes), the launch-packet builder, append-only telemetry, and a dashboard. The execution layer — how applications are actually submitted — stays private deliberately. It holds submission-behavior techniques vendors could fingerprint, and publishing them would degrade the pipeline for everyone running it, including everyone who clones the repo. The boundary rule is public in SPLIT.md.

The traction figure: the private production pipeline running this discipline holds 209 verified submissions, recounted today from its ledger (202 with quoted confirmation evidence, 3 with pointer evidence, 1 URL-only, 3 unevidenced — counted, never estimated). I'll state the limit plainly: you can't independently re-run that pipeline. What's verifiable is the discipline — the gates, the telemetry, the fail-closed reporting rules are all public code.

If you're a builder, the quickstart is ~5 minutes, stdlib only, with a terminal demo in the README. If you're a contributor, I want help most on ATS behavior coverage, answer-bank ergonomics, and outcome analytics.

The repo: https://github.com/KeelDev-tech/keel

Top comments (0)