---
name: resume-screening
description: Screen, score, and rank candidate resumes against job requirements. Use when reviewing applicant pools, creating shortlists, building structured scorecards, generating advancement or rejection notifications, or running blind review processes. Supports weighted scoring rubrics, bias mitigation, diversity tracking, and edge-case flagging for human review. Triggers on phrases like "screen these resumes", "rank candidates", "shortlist applicants", "evaluate resumes", "review applicant pool", "score candidates".
---

# Resume Screening

Screen and score candidates systematically against role requirements using a weighted rubric.

## Workflow

1. Load the job description and extract must-have vs. nice-to-have criteria.
2. For each resume, parse into structured data: name, contact, work history (companies, titles, dates, bullet points), skills listed, education, certifications, location.
3. Score each candidate using the rubric below.
4. Rank all candidates by composite score.
5. Generate a shortlist with rationale for each ranking decision.
6. Flag edge cases for human review (unconventional backgrounds, career changers, gaps with explanations).
7. Draft rejection or advancement notifications per tier.

## Parsing Rules

When extracting from resumes, normalize:

- **Dates**: Convert all date formats to YYYY-MM for consistency
- **Company names**: Resolve common aliases (FB → Meta, Gogole → Google, Twtr → X/Twitter)
- **Job titles**: Map to standard level taxonomy (see below)
- **Skills**: Normalize synonyms (JS/JavaScript/Node.js → "JavaScript ecosystem"; AWS/Amazon Web Services → "AWS")
- **Education**: Extract degree, field, institution, year; flag "currently pursuing"

## Title-to-Level Mapping

| Title Pattern | Mapped Level |
|---------------|-------------|
| Associate, Junior, Entry, Trainee | L1 |
| (No prefix), Analyst, Developer | L2 |
| Senior, Lead, Principal | L3 |
| Staff, Principal, Manager | L4 |
| Director, VP, Head of | L5 |
| C-Suite, SVP, Partner | L6 |

## Scoring Rubric

### Criteria Weights (adjust per role type)

| Criterion | Engineering | Sales | Design | PM |
|-----------|-----------|-------|--------|-----|
| Technical / Functional Skills | 30% | 20% | 30% | 15% |
| Relevant Experience | 25% | 30% | 20% | 30% |
| Education / Certifications | 10% | 5% | 15% | 10% |
| Career Progression | 15% | 10% | 10% | 15% |
| Leadership / Impact Signals | 15% | 20% | 15% | 20% |
| Location / Logistics | 5% | 5% | 10% | 10% |

### Scoring Scale (1–5 per criterion)

| Score | Label | Meaning |
|-------|-------|---------|
| 5 | Exceptional | Exceeds all criteria; overqualified or perfect match |
| 4 | Strong | Meets all must-haves; strong on nice-to-haves |
| 3 | Qualified | Meets must-haves; gaps in nice-to-haves |
| 2 | Marginal | Missing 1–2 must-haves; could grow into role |
| 1 | Not a fit | Missing core requirements entirely |

### Composite Calculation

```
Composite = Σ(criterion_score × criterion_weight)

Thresholds:
≥ 4.0  →  SHORTLIST (advance to interview)
3.0–3.9 →  CONSIDER (advance if pool is small or candidate has unique strengths)
< 3.0  →  PASS (reject or hold in talent pipeline)
```

## Red Flags (auto-flag for human review)

- Unexplained employment gaps > 6 months with no contextual clue
- Consistent job-hopping (< 1 year per role for 3+ roles) without progression
- Skills claims inconsistent with stated role level (e.g., "architected distributed systems" on a junior resume with no supporting evidence)
- Generic/template resume: no quantifiable achievements, vague bullet points ("responsible for...")
- Contact info inconsistencies (LinkedIn location differs from resume)
- Salary expectations listed that exceed role budget by > 20%

## Green Flags (boost score by +0.2 if present)

- Quantifiable impact statements ("increased revenue 30%", "reduced latency 200ms", "managed $2M budget")
- Progressive responsibility (promotions, expanding scope at same company)
- Open-source contributions, published papers, conference talks
- Internal promotions (stayed 3+ years with increasing title)
- Industry-recognized certifications aligned with role
- Referral from current employee

## Blind Review Mode

To reduce unconscious bias, activate blind review:

1. Strip: name, photo, university name (keep degree/field only), email, phone, address, LinkedIn URL
2. Assign anonymized IDs: C-001, C-002, etc.
3. Score all candidates blindly using the rubric
4. Reveal identities only for candidates in the SHORTLIST tier
5. Track diversity metrics separately (do not influence scoring)

## Edge Cases (always flag for human review)

- **Career changers**: Different industry but transferable skills — human judgment needed
- **Returners**: 5+ year gap (parental leave, illness, sabbatical) then re-entry — assess re-skilling
- **Self-made**: No formal education but strong portfolio/GitHub/side projects
- **Global candidates**: International degrees or experience — verify credential equivalency
- **Overqualified**: Candidate scores 5 on everything but may be flight risk — assess motivation

## Output Format

### Shortlist Ranking Table

| Rank | Anon ID | Composite | Top Strength | Risk Note |
|------|---------|-----------|-------------|-----------|
| 1 | C-014 | 4.5 | Deep systems design background | May need comp adjustment |
| 2 | C-007 | 4.2 | Exact stack match, 8 yrs exp | Short tenures — verify |
| 3 | C-023 | 4.0 | Strong leadership signals | Relocation needed |

### Per-Candidate Scorecard

```
Candidate: C-014
Composite: 4.5/5.0 → SHORTLIST

Breakdown:
  Technical Skills:     5/5  × 0.30 = 1.50
  Relevant Experience:  5/5  × 0.25 = 1.25
  Education/Certs:      4/5  × 0.10 = 0.40
  Career Progression:   4/5  × 0.15 = 0.60
  Leadership Signals:   5/5  × 0.15 = 0.75
  Location/Logistics:   3/5  × 0.05 = 0.15

Rationale: Exceptional technical match with proven leadership.
The 8 years at Company X shows stability and progression.
Flag: May require compensation above current band — recommend
pre-approval from finance before extending interview invite.
```

### Rejection Note Template

```
Hi [Name],

Thank you for applying to [Role] at [Company]. We received a strong
number of applicants and, while your background is impressive, we've
decided to move forward with candidates whose experience more closely
matches our current needs.

We'll keep your resume on file and encourage you to apply again
in the future. Best of luck with your search.

— [Company] Recruitment Team
```

## Integration Points

- ATS (Greenhouse, Lever, Ashby, Workday) for applicant data
- Resume parsing APIs (Affinda, Sovren, Web-to-Lead)
- Email/SMS for notifications
- HRIS for offer-triggering upon final hire
- Analytics dashboard for funnel metrics
