Design & media

Candidate Assessment

Try it

Evaluates how well a candidate's resume matches a target job description (JD) and produces a clean, professional HTML assessment report. Parses the resume (v...

What it does

Evaluates how well a candidate's resume matches a target job description (JD) and produces a clean, professional HTML assessment report. Parses the resume (via the resume-parsing skill), reads the JD from any format (txt/md/pdf/docx), scores the fit across a weighted 7-module model, and renders a hiring report with overall score, grade, dimension breakdown, risks, and interview questions. Use when the user wants to assess/score a candidate against a job, match a resume to a JD (简历 JD 匹配 / 候选人评估 / 匹配度打分 / 招聘评估), or generate a candidate evaluation report.

The skill document

Candidate assessment (resume × JD match)

Score a resume against a job description and produce a clean, professional HTML evaluation report (brand-neutral) — for a top-recruiter-grade hiring assessment.

How it works — division of labor

Same philosophy as resume-parsing: the model does judgment, scripts do the deterministic parts.

  • resume-parsing skill turns the resume PDF/DOCX into structured resume.json + clean markdown (no hallucination).
  • scripts/read_jd.py reads the JD from any format into plain text.
  • You (the model) apply the evaluation model in reference/assessment-prompt.md to the resume + JD and produce assessment.json (scores, analysis, risks, questions).
  • scripts/render_report.py renders assessment.json into a self-contained, professionally-styled report.html — consistent visuals every time.

Only python3 is needed; pdfmuse auto-installs on first use.

Workflow

Copy this checklist and track progress:

- [ ] 1. Parse the resume (resume-parsing skill) → resume.json + .extract.md
- [ ] 2. Read the JD (read_jd.py) → jd text
- [ ] 3. Read reference/assessment-prompt.md
- [ ] 4. Evaluate → write assessment.json (per the schema there)
- [ ] 5. Render → render_report.py assessment.json --out report.html
- [ ] 6. Open report.html in the browser

Step 1 — Parse the resume

Use the resume-parsing skill on the candidate's resume to get resume.json and .extract.md. (Directly: python ~/.claude/skills/resume-parsing/scripts/extract.py RESUME.pdf --out out, then map to resume.json per that skill.)

Step 2 — Read the JD

python scripts/read_jd.py JD.pdf --out jd.txt      # .txt/.md/.pdf/.docx/.rtf

If the target position name isn't obvious, take it from the JD title (fallback: the JD filename), and confirm with the user if ambiguous.

Step 3–4 — Evaluate

Read reference/assessment-prompt.md — it defines the recruiter role, the weighted 7-module model (0 准入 / 1 硬实力 30% / 2 经验 30% / 3 胜任力 15% / 4 动机稳定 10% / 5 潜力 10% / 6 文化 5% / + 亮点), the scoring discipline (evidence only, quantify, specific risks), and the exact assessment.json schema. Write assessment.json following it.

Step 5 — Render (HTML, and PDF if wanted)

python scripts/render_report.py assessment.json --out report.html          # HTML
python scripts/render_report.py assessment.json --out report.html --pdf    # + report.pdf

--pdf prints the report to report.pdf via headless Chrome (colors preserved, no browser header/footer). If no Chrome/Chromium/Edge is found, skip --pdf and use the in-page button instead.

Step 6 — Show it

open -a "Google Chrome" report.html    # macOS; falls back to any browser

The HTML has a floating 「⬇ 导出 PDF」 button (Print → Save as PDF) with print-friendly styles (A4, colors kept, no mid-card page breaks, button hidden in the PDF) — so the user can export a clean PDF themselves anytime.

Output

  • assessment.json — structured scores + analysis (reusable / for a DB).
  • report.html — the 候选人内部评估报告, clean brand-neutral design; export to PDF via the in-page button or --pdf. Design tokens: reference/report-design.md.
  • report.pdf — (with --pdf) print-ready A4 report.

Reference files

  • reference/assessment-prompt.md — evaluation model + assessment.json schema.
  • reference/report-design.md — design tokens the report follows (indigo accent + semantic colors).
  • scripts/read_jd.py — JD reader (run it).
  • scripts/render_report.py — JSON → HTML renderer (run it).

Related skills

Turn interview notes into a structured candidate scorecard and hire recommendation. Use when asked to write an interview scorecard, a candidate evaluation, a...

Reverse-engineer job descriptions: translate jargon ("5 years" → 3), infer company culture (red flags, vibes), match to your resume, detect negotiation signa...

1 installs

Match resume against a job description. Quantified scoring and prioritized improvement tips.

4 installs

Use when a recruiter wants to batch-evaluate resumes, run general resume quality checks, optionally match resumes to a JD and company background, and produce...

5 installs

Turn flat resume bullets ('Responsible for X') into quantified STAR-method achievement narratives, score resumes against job descriptions for ATS keyword coverage and weak-phrase hazards, and expand each bullet into interview-ready stories with likely follow-up questions. Use when the user is writing or updating a resume/CV, preparing bullets for a job application, tailoring a resume to a specific job posting, or preparing interview stories from their experience.

1 installs

Tailor and polish an existing resume in Google Docs for a particular job without inventing qualifications, experience, metrics, or outcomes. Use when the user provides an editable GDocs resume link plus either direct recruiter feedback for the hiring role or a direct link to the role description