Skip to content
Back to skills

Rp Resume Screen

ASecurity

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. ---

  • 13 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
ai-agentsbashkubernetesapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add andrew-shwetzer/recruiter-plugin --skill rp-resume-screen --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rp Resume Screen?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rp Resume Screen
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/andrew-shwetzer-rp-resume-screen/badge)](https://www.skillsdirectory.com/skills/andrew-shwetzer-rp-resume-screen)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: rp-resume-screen
model: sonnet
argument-hint: "<resume path or paste> against <JD path or paste or URL>"
user_invocable: true
allowed-tools:
  - Read
  - Write
  - Bash
  - Glob
---

# /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:

```yaml
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:
```bash
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.