Local, private resume scoring + optimization lab. Wraps interviewstreet/hiring-agent (HackerRank's resume-to-score pipeline) and runs it fully offline on local Ollama — plus a Claude Code skill + agent that turn raw scores into honest, prioritized resume edits.
Primary use: reverse-engineer what automated screeners reward and raise Richard's resume score. Also: score/benchmark candidate resumes, and study how the PDF→JSON→GitHub→score pipeline works.
ResumeScorer/ <- this project (docs + scripts + results)
├── README.md <- you are here
├── CLAUDE.md <- agent harness for working in this project
├── AGENTS.md <- how to run agent sessions against this system
├── docs/
│ ├── user-manual.html <- full visual user manual (open in a browser)
│ ├── rubric-explained.md <- how the 120-pt score works + leverage
│ ├── next-steps.md <- grounded next actions from the benchmark
│ └── handoff/ <- append-only session handoff tree
│ └── HANDOFF.md
├── skills/score-resume/SKILL.md <- source-of-truth copy of the Claude skill
├── agents/resume-optimizer.md <- source-of-truth copy of the Claude agent
├── scripts/
│ ├── score_resume.ps1 <- score ONE resume
│ └── batch_score.ps1 <- score the whole corpus
└── results/ <- score reports (.txt), logs, summary, CSV
C:\Users\a2021\dev\hiring-agent <- the actual pipeline code + venv (OUTSIDE OneDrive on purpose)
The Python repo lives in
C:\Users\a2021\dev\hiring-agent, not in OneDrive — a venv + git + model cache must not sync. This project is the docs/control/results hub that wraps it.
| Component | State |
|---|---|
| Repo clone | C:\Users\a2021\dev\hiring-agent |
| Python | 3.11 venv at …\hiring-agent\.venv (repo pins 3.11.13) |
| Deps | requirements.txt installed |
| Backend | Ollama, CPU mode (gemma3:4b). GPU disabled — see below |
| Config | …\hiring-agent\.env → LLM_PROVIDER=ollama, DEFAULT_MODEL=gemma3:4b |
| Skill | score-resume installed at ~/.claude/skills/ |
| Agent | resume-optimizer installed at ~/.claude/agents/ |
The RTX 4060 is present, but the NVIDIA driver is 546.01 (late-2023), too old for Ollama 0.30.9's bundled CUDA runtime. The GPU path crashes (CUDA error: device kernel image is invalid). We forced CPU via the user env var OLLAMA_LLM_LIBRARY=cpu_avx2 (Ollama-scoped — does not hide the GPU from your other ML tools). CPU works fine on 32 GB RAM; it's just slower.
To re-enable GPU later: update the NVIDIA driver to ≥ 550, then remove the OLLAMA_LLM_LIBRARY user env var and restart Ollama. See docs/next-steps.md.
Score one resume (from anywhere):
& "C:\Users\a2021\dev\hiring-agent\score_resume.ps1" -Pdf "C:\path\to\resume.pdf"Score the whole corpus (Richard's 4 + ScoutLane samples):
& "…\ResumeScorer\scripts\batch_score.ps1"Or, in Claude Code, just say "score my resume" / "optimize my resume" — the score-resume skill handles the rest.
PDF → (LLM extracts sections to JSON) → (GitHub repos pulled if a GitHub URL is on the resume) → (LLM scores against a 120-pt rubric) → printed report + CSV row. 65% of the score is open-source + self-projects, both GitHub-verified — so the highest-leverage fix for most engineering resumes is making real work legible (GitHub link, live demos, quantified impact). Full detail: docs/rubric-explained.md.