$npx -y skills add tronghieu/agent-skills --skill cv-scorerScore 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
| 1 | # CV Scorer — Candidate CV Evaluation |
| 2 | |
| 3 | This skill evaluates how well a candidate's CV matches a specific Job Description (JD), producing a structured score out of 100. |
| 4 | |
| 5 | ## Workflow |
| 6 | |
| 7 | ### Step 1: Identify Inputs |
| 8 | |
| 9 | Two inputs are required: |
| 10 | - **Job Description (JD)**: The job posting with requirements, qualifications, and responsibilities |
| 11 | - **CV(s)**: One or more candidate CVs (markdown, text, or PDF) |
| 12 | |
| 13 | 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. |
| 14 | |
| 15 | **Reading PDF files:** Use the `/pdf` skill to extract text from PDF CVs — it handles multi-page documents and formatted layouts reliably. |
| 16 | |
| 17 | ### Step 2: Analyze the JD |
| 18 | |
| 19 | Before scoring, extract from the JD: |
| 20 | - Must-have skills vs nice-to-have skills |
| 21 | - Experience requirements (years, seniority level, domain) |
| 22 | - Education requirements |
| 23 | - Special requirements (languages, certifications, travel, etc.) |
| 24 | |
| 25 | ### Step 3: Score Against Rubric |
| 26 | |
| 27 | Score each CV across 5 criteria using `references/scoring-rubric.md`: |
| 28 | |
| 29 | | Criterion | Weight | Max Points | |
| 30 | |-----------|--------|------------| |
| 31 | | JD Matching | ×3 | 30 | |
| 32 | | Work Experience | ×2.5 | 25 | |
| 33 | | Project & Impact | ×1.5 | 15 | |
| 34 | | Education | ×1.5 | 15 | |
| 35 | | CV Quality | ×1.5 | 15 | |
| 36 | | **Total** | | **100** | |
| 37 | |
| 38 | ### Step 4: Output |
| 39 | |
| 40 | Output JSON for each CV using the format in `references/output-format.md`. |
| 41 | |
| 42 | **Recommendation thresholds:** |
| 43 | - **Recommend** (≥ 70): Invite for interview |
| 44 | - **Maybe** (50–69): Consider if candidate pool is thin |
| 45 | - **Pass** (< 50): Not a fit |
| 46 | |
| 47 | ### Step 5: Batch Processing |
| 48 | |
| 49 | When scoring multiple CVs: |
| 50 | 1. Score each CV independently — no cross-comparison during scoring (safe to parallelize) |
| 51 | 2. After all CVs are scored, produce a summary ranking (highest to lowest) |
| 52 | 3. Use the batch summary format in `references/output-format.md` |
| 53 | |
| 54 | ## Scoring Principles |
| 55 | |
| 56 | - **Objective**: Score based on facts in the CV, avoid over-inference |
| 57 | - **Fair**: Apply the same standard consistently across all candidates |
| 58 | - **Red flag detection**: Repetitive content, inflated metrics, unexplained career gaps, contradictory information |
| 59 | - **Output language**: Match the user's language (respond in the same language the user is using) |
| 60 | - **No bias**: Do not evaluate based on age, gender, ethnicity, or personal factors unrelated to the job |