Resume Audit
Recruiters and ATS software filter on mechanical signals before a human reads a word. This scores those signals before you hit submit.
Commands
python3 scripts/resume_audit.py resume.md
python3 scripts/resume_audit.py resume.md --jd job-posting.txt --json
python3 scripts/resume_audit.py resume.md --min-bullet-ratio 0.5
Checks
| Check | Pass condition |
|---|---|
contact_info |
email, phone, or profile URL present |
sections |
experience + skills sections detected |
quantified_bullets |
ratio >= --min-bullet-ratio (default 0.4) |
action_verbs |
>=50% of bullets open with led/built/shipped/grew/... |
weak_phrases |
zero "responsible for" / "worked on" / "helped with" |
With --jd, reports ATS coverage: which JD keywords appear in the resume,
which tech keywords are missing, and a strong/partial/weak verdict.
Workflow
- Convert the resume:
doc-reader resume.pdf > resume.md - Audit:
resume_audit.py resume.md --jd target-role.txt - Fix the failing checks — add numbers to bullets, replace weak phrases, weave missing tech keywords into real accomplishments (never keyword-stuff).
Pairs with
doc-reader (format conversion), nbj-write-clearly (making the prose land
after the structure passes).