Skip to content

franksalinas/resume-jd-matcher-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

resume-jd-matcher

Compares a resume against a job description and produces an overall Match Score, Targeting Score, Coverage Score, top matching skills, notable gaps, and recommended next steps.

No configuration required. The skill reads your resume and derives your job search profile automatically.


Installation

Step 1 — Download the skill file

Download resume-jd-matcher.skill from the dist folder.

Step 2 — Install in Claude

  1. Open claude.ai in your browser
  2. Navigate to SettingsSkills
  3. Click Install Skill and select the resume-jd-matcher.skill file
  4. Confirm the installation — the skill will appear in your active skills list

Step 3 — Verify installation

Start a new conversation and type:

"What skills do you have installed?"

You should see resume-jd-matcher listed. If not, return to Settings → Skills and confirm the install completed successfully.

Requirements

  • A Claude account (Free, Pro, or Team)
  • Resume file in .pdf, .docx, or .txt format
  • A job description — either as an uploaded file or pasted text

Note: This skill uses Claude's memory to save your job search profile after the first run. If you are using an Incognito conversation, memory is disabled and the profile derivation step will repeat each session.


Usage

Trigger this skill by uploading a resume file and providing a job description, then using any of the following:

  • "Compare my resume to this job description"
  • "How well does my resume match this JD?"
  • "What's my match score for this role?"
  • "What's missing from my resume for this job?"

Resume input: Always provide as an uploaded file (.pdf, .docx, .txt, or .rtf).

Job description input: Either paste the text directly into the conversation or upload as a file. Supported formats: .pdf, .docx, .txt, .rtf.

Tip: If both files are uploaded at the same time, clarify which is the resume and which is the JD if their names aren't obvious.


Output

The skill produces four sections in order:

  1. Overall Match Score — a Match Score percentage with a label (e.g., 84% — Strong Match), a Targeting Score (how well-focused the resume is for this role), and a Coverage Score (how much of the JD's requirements the resume covers), followed by a brief synthesis of what drove the score.

  2. Top Matching Skills (3–5) — a table showing the skill or phrase, a per-skill Match Score, and exactly where it appears in the resume (specific role and context).

  3. Notable Gaps — 3–5 genuine gaps between what the JD requires and what the resume shows (low-recall signals), framed constructively as things to address before applying.

  4. Recommended Next Steps — 3–5 concrete, prioritized actions calibrated to the match score and the targeting/coverage profile — whether the resume needs tightening (low targeting) or gap-filling (low coverage).


How Personalization Works

This skill calibrates match scores and gap analysis to your specific background and targets using a job search profile. The profile is loaded automatically — no setup, no files to edit.

Profile Priority Order

1. Saved memory profile (highest priority) If a job search profile has been saved to Claude's memory from a previous session — including target roles, domains, seniority, and key themes — the skill uses it automatically on every run with no prompts.

2. Resume-derived profile (first run) If no saved profile exists, the skill reads your resume and infers your profile:

  • Target roles — from your most recent and recurring job titles
  • Target domains — from industries and domains across your career history
  • Seniority — from scope, team size, and titles held
  • Key themes — 3–5 recurring areas of expertise and impact

Before running the analysis, the skill presents the derived profile and asks you to confirm or correct it:

"Based on your resume, here's how I'm reading your profile:

  • Target roles: CTO, VP of Engineering
  • Target domains: Fintech, Payments
  • Seniority: C-suite
  • Key themes: Engineering velocity, Platform modernization, PCI-DSS compliance...

Does this look right, or would you like to adjust anything?"

Once confirmed, the profile is saved to Claude's memory and used automatically for all future runs — this confirmation step only happens once.

Handling Career Pivots

The derive-from-resume approach works well when your resume and your targets are aligned. If you're pivoting — targeting a new industry, a different seniority level, or moving away from a domain you've worked in — simply correct the derived profile when prompted. The corrected version is saved to memory and used going forward.

You can also update your saved profile at any time by telling Claude directly:

  • "Update my job search profile — I'm now targeting Director-level roles in healthcare"
  • "Remove fintech from my target domains"

Scoring Methodology

The skill uses a weighted scoring model that evaluates both how focused the resume is and how much of the JD it covers. This produces a more rigorous and transparent score than a single holistic percentage.

Terminology

Term What It Means
Targeting Score How well-focused the resume is for this specific role — of what the resume claims or demonstrates, how much is genuinely relevant to the JD. Low targeting means the resume is generic, noisy, or misaligned.
Coverage Score How much of the JD's requirements the resume actually addresses — of what the JD asks for, how much does the resume cover. Low coverage means meaningful gaps exist.
Match Score The combined score balancing Targeting and Coverage. Penalizes hard when either is low — a resume can't hide strong coverage behind poor targeting, or vice versa.

For the technically curious: Targeting Score maps to Precision, Coverage Score maps to Recall, and Match Score is their harmonic mean (F1). These terms are used internally in scripts/f1_score.py.

Weighted Match Score calculates the Match Score independently across five dimensions, then combines them using profile-calibrated weights:

Dimension Default Weight
Domain alignment 30%
Role-level fit (title / seniority) 25%
Technical skills overlap 20%
Leadership & org scale match 15%
Key themes from profile 10%

The arithmetic is computed by scripts/f1_score.py, a bundled Python script that takes Claude's estimated Targeting and Coverage values per dimension and returns the weighted Match Score, overall Targeting Score, overall Coverage Score, and per-dimension breakdown. Weights can be overridden via a --weights argument if a profile emphasizes specific dimensions. This ensures scoring is arithmetically consistent across every run.

Score labels:

  • 90–100% → Exceptional Match
  • 75–89% → Strong Match
  • 60–74% → Good Match
  • 45–59% → Partial Match
  • Below 45% → Low Match

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages