cv-scorer — Claude Code skill: score CVs against a job ad
Scores candidate CVs against a job description and returns a number out of 100. Handy when a stack of applications needs sorting.
npx skills add tronghieu/agent-skills --skill cv-scorer -a claude-codeWhat cv-scorer does
The skill takes two things: the job description and one or more CVs, in markdown, plain text or PDF. It reads the posting first and splits the requirements into must-have and nice-to-have, pulling out experience, education and extras such as languages or certifications. Each CV then gets scored against the rubric in references/scoring-rubric.md.
Five criteria carry different weight. Fit with the job is worth up to 30 points, work experience up to 25, and projects, education and CV quality 15 each. Together they add up to 100. The total drives the call: 70 and above means invite the candidate, 50–69 means keep them around if the pool is thin, under 50 is a pass. Output is JSON, following the format in references/output-format.md.
Batch mode scores every CV on its own, with no comparison between candidates while scoring, so the runs can go in parallel. The ranking comes afterwards. PDFs are read through the /pdf skill. The rubric also looks for red flags: repeated text, inflated numbers, unexplained gaps, contradictions. Age, gender and ethnicity stay out of the score.
What it helps with
- score a CV against a specific job posting
- rank a batch of candidates from best to worst
- separate must-have requirements from nice-to-have ones
- spot contradictions and inflated metrics in a CV
- get machine-readable JSON per candidate
Example prompts for the agent
- Score this CV against the job description I attached
- Break down the job ad and tell me which requirements are must-have
- Score every CV in
cvs/and give me a ranking
How to install cv-scorer
1Skills CLI (Vercel)
npx skills add tronghieu/agent-skills --skill cv-scorer -a claude-code2Manually: put the files in place
~/.claude/skills/cv-scorer/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/cv-scorer/
1Skills CLI (Vercel)
npx skills add tronghieu/agent-skills --skill cv-scorer -a codex2Manually: put the files in place
.agents/skills/cv-scorer/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tronghieu/agent-skills --skill cv-scorer -a cursor2Manually: put the files in place
.cursor/skills/cv-scorer/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tronghieu/agent-skills cv-scorer2Manually: put the files in place
.github/skills/cv-scorer/SKILL.md1Skills CLI (Vercel)
npx skills add tronghieu/agent-skills --skill cv-scorer -a gemini-cli2Platform CLI
gemini skills install https://github.com/tronghieu/agent-skills --path skills/cv-scorerManually: put the files in place
.devin/skills/cv-scorer/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tronghieu/agent-skills --skill cv-scorer -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about cv-scorer
How do I install cv-scorer in Claude Code?
Run npx skills add tronghieu/agent-skills --skill cv-scorer -a claude-code. The skill lands in ~/.claude/skills/cv-scorer/SKILL.md.
What does cv-scorer do?
It compares a CV with a job description and gives a score out of 100 across five criteria. You get JSON with the score and a recommendation.
What do I need before using it?
A job description and at least one CV. Without a posting the skill will ask you for one. PDF CVs go through /pdf.
Source text
SKILL.md · MIT
--- name: cv-scorer description: "Score candidate CVs on a 100-point scale against a Job Description. Use this skill when the user wants to evaluate, score, rank, or screen candidate CVs/resumes against a JD. Also trigger when the user mentions 'review CV', 'screen resume', 'rate candidates', 'shortlist', or any context involving matching resumes to job requirements." --- # CV Scorer — Candidate CV Evaluation This skill evaluates how well a candidate's CV matches a specific Job Description (JD), producing a structured score out of 100. ## Workflow ### Step 1: Identify Inputs Two inputs are required: - **Job Description (JD)**: The job posting with requirements, qualifications, and responsibilities - **CV(s)**: One or more candidate CVs (markdown, text, or PDF) If the user hasn't provided a JD, ask for it. If the JD is already available in context (e.g., a file on Drive or in the project directory), read it directly. **Reading PDF files:** Use the `/pdf` skill to extract text from PDF CVs — it handles multi-page documents and formatted layouts reliably. ### Step 2: Analyze the JD Before scoring, extract from the JD: - Must-have skills vs nice-to-have skills - Experience requirements (years, seniority level, domain) - Education requirements - Special requirements (languages, certifications, travel, etc.) ### Step 3: Score Against Rubric Score each CV across 5 criteria using `references/scoring-rubric.md`: | Criterion | Weight | Max Points | |-----------|--------|------------| | JD Matching | ×3 | 30 | | Work Experience | ×2.5 | 25 | | Project & Impact | ×1.5 | 15 | | Education | ×1.5 | 15 | | CV Quality | ×1.5 | 15 | | **Total** | | **100** | ### Step 4: Output Output JSON for each CV using the format in `references/output-format.md`. **Recommendation thresholds:** - **Recommend** (≥ 70): Invite for interview - **Maybe** (50–69): Consider if candidate pool is thin - **Pass** (< 50): Not a fit ### Step 5: Batch Processing When scoring multiple CVs: 1. Score each CV independently — no cross-comparison during scoring (safe to parallelize) 2. After all CVs are scored, produce a summary ranking (highest to lowest) 3. Use the batch summary format in `references/output-format.md` ## Scoring Principles - **Objective**: Score based on facts in the CV, avoid over-inference - **Fair**: Apply the same standard consistently across all candidates - **Red flag detection**: Repetitive content, inflated metrics, unexplained career gaps, contradictory information - **Output language**: Match the user's language (respond in the same language the user is using) - **No bias**: Do not evaluate based on age, gender, ethnicity, or personal factors unrelated to the job
© tronghieu · MIT · tronghieu/agent-skills