agentsclimarketplace

Rp resume screen

Skill andrew-shwetzer/recruiter-plugin/skills/rp-resume-screen

Claude Code plugin with 22 AI recruiting skills. Source candidates, detect hiring signals, screen resumes, draft outreach, track pipelines. ATS-integrated. Free and open source.

Install
npx -y skills add andrew-shwetzer/recruiter-plugin --skill rp-resume-screen

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

8.0 KB, as published. Nobody here has run it

/rp-resume-screen — Resume vs Job Screen

Analyze a candidate's resume against a specific job description. Simulates a hiring manager's 6-second scan, then runs a full evidence-quality audit, surfaces likely objections, and delivers the top 5 positioning fixes a recruiter can act on.

Zero API cost. Uses only Claude's reasoning.


Input

The user provides two things (in any order, any format):

  • Resume: file path (absolute), pasted text, or "uploaded as context"
  • Job description: file path, pasted text, or a URL

Parse the user's argument to identify which is which. If a URL is provided for the JD, use WebFetch to retrieve the page and extract the posting text. If either input is ambiguous, ask one clarifying question before proceeding.


Step 1: Load Config and Resume/JD

  1. Check if ~/.recruiter-skills/config.yaml exists. If it does, read it. Extract recruiter.specialties and icp fields if present — use them as context for the analysis.
  2. If the resume is a file path, read it. If it's pasted text, use it directly.
  3. If the JD is a file path, read it. If it's a URL, fetch it and extract the job posting content (strip nav, footer, boilerplate). If it's pasted text, use it directly.
  4. Extract the candidate's name from the resume. Generate a slug: lowercase, spaces to hyphens, no special characters (e.g., "Jane Smith" → jane-smith).

Step 2: The 6-Second Scan

Simulate what a hiring manager sees in the first 6 seconds. This is the visual/headline layer before deep reading.

Output this section as:

THE 6-SECOND SCAN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
First impression: [one sentence — what the resume signals instantly]
Role match visible? YES / PARTIALLY / NO
Title alignment:   [current title vs target title — obvious match or not]
Company caliber:   [does the company list signal the right tier]
Tenure concern:    YES (flag) / NO (clean)
Format/clarity:    CLEAR / CLUTTERED / SPARSE

Step 3: Evidence Quality Audit

Extract every major claim in the resume (skills, accomplishments, scope, leadership, tools). For each meaningful claim, rate the evidence quality:

  • STRONG — specific, quantified, verifiable (e.g., "Reduced deploy time from 4h to 12min by rewriting CI pipeline")
  • MODERATE — contextual but not quantified (e.g., "Led migration to Kubernetes cluster")
  • WEAK — vague and could apply to anyone (e.g., "Strong communication skills")
  • ABSENT — the JD requires it, but the resume doesn't address it at all

Format as a table:

EVIDENCE AUDIT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Claim                                    Rating      Notes
──────────────────────────────────────── ─────────── ────────────────────────────
[claim]                                  STRONG      [brief rationale]
[claim]                                  MODERATE    [brief rationale]
[claim]                                  WEAK        [brief rationale]
[JD requirement not in resume]           ABSENT      Required: [what JD says]

Include at minimum: all technical skills the JD mentions, all leadership/scope claims, and all quantified impact statements (or absence thereof).


Step 4: Narrative Strength Assessment

Evaluate the resume's overall story as a recruiter would when presenting to a hiring manager.

Answer these questions in a brief paragraph for each:

  1. Career arc clarity — Does the progression make obvious sense for this role? Or does the recruiter need to explain a non-obvious path?
  2. Scope alignment — Does the scale of past work (team size, company size, budget, system complexity) match what the JD implies?
  3. Recency — Are the most relevant experiences recent, or are they buried in older roles?
  4. Differentiation — What makes this candidate specifically memorable vs. 20 other resumes for the same role?

Step 5: Likely Hiring Manager Objections

List 3-5 objections a hiring manager is likely to raise when reviewing this resume for this specific role. Be honest, not polished. These are the friction points a recruiter must preemptively address.

Format:

LIKELY OBJECTIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Objection] — [Why it arises from the resume/JD gap]
2. [Objection] — [Why it arises]
...

Step 6: Top 5 Positioning Fixes

Concrete, actionable edits or talking points — things the recruiter can bring back to the candidate or use when presenting the candidate to the client.

Format:

TOP 5 POSITIONING FIXES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. [Fix title] — [What to change/add/reframe, and why it addresses the gap]
2. ...

Fixes should be specific. "Add metrics to bullet 3 in the Acme Corp role" is better than "Add more quantification."


Step 7: Overall Fit Rating

OVERALL FIT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Fit:         STRONG / MODERATE / WEAK / NO FIT
Screen:      ADVANCE / ADVANCE WITH COACHING / HOLD / PASS
Confidence:  HIGH / MEDIUM / LOW (based on resume completeness)

Summary: [2-3 sentences the recruiter can use verbally with the hiring manager]

Step 8: Save to Candidate File

Build the candidate YAML using data extracted from the resume and this analysis.

Target path: ~/.recruiter-skills/data/candidates/{name-slug}.yaml

If the file already exists, read it first, then update only fit_score and fit_reasoning. Do not overwrite fields that are already populated unless you have better data from the resume.

If the file does not exist, create it with this schema:

name: ""                    # full name from resume
linkedin_url: ""            # extract if present in resume, else ""
current_title: ""           # most recent title
current_company: ""         # most recent company
location: ""                # location from resume header
years_experience: 0         # calculated from work history
skills: []                  # technical skills extracted from resume
email: ""                   # extract from resume header if present, else ""
fit_score: 0                # 0-10, derived from overall fit rating (STRONG=8-10, MODERATE=5-7, WEAK=2-4, NO FIT=0-1)
fit_reasoning: ""           # one-sentence summary of fit
source: "screened"
status: "screened"
found_at: "2026-03-24"      # today's date

Use Bash to ensure the directory exists:

mkdir -p ~/.recruiter-skills/data/candidates

Write the file. Confirm the path in your output.


Step 9: Suggest Next Step

After the analysis, suggest ONE logical next action based on the fit rating:

  • STRONG fit → "Run /rp-score {name-slug} to get the full 9-dimension weighted score before submitting."
  • MODERATE fit → "Run /rp-score {name-slug} to identify which dimensions are dragging the score, then decide if coaching closes the gap."
  • WEAK fit → "Consider running /rp-market-map {role} in {location} to find better-matched candidates in this market."
  • NO FIT → "This candidate doesn't fit this role. Run /rp-market-map to map who does fit, or check other open roles."

Output Format Rules

  • Use plain text with the separator lines shown above. No markdown headers (no ##).
  • Tables use plain ASCII alignment (not markdown pipes for visual display).
  • Lead with the 6-second scan. Do not bury the headline.
  • Be direct. This analysis is for a recruiter, not the candidate. No softening language.
  • Total output should be readable in under 3 minutes.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.