Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Extract structured data from resumes in any format (PDF, DOCX, LinkedIn). Use when ingesting candidate applications or building talent databases.
.claude/skills/migrateforce-resume-parser/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 123% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 72% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 156% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 228% | 0% |
This skill extracts structured, machine-readable data from unstructured resumes. It handles multiple formats (PDF, DOCX, plain text, LinkedIn exports) and normalizes the output for downstream processing like candidate screening or database storage.
| Field | Type | Required | Description | |-------|------|----------|-------------| | resume_content | text/file | yes | Raw resume content or file path | | format | enum | no | pdf, docx, txt, linkedin (auto-detected if not specified) | | extraction_level | enum | no | basic, standard, detailed (default: standard) |
| Field | Type | Description | |-------|------|-------------| | candidate_name | string | Full name | | email | string | Primary email address | | phone | string | Phone number (normalized) | | location | object | City, state, country | | linkedin_url | string | LinkedIn profile URL | | summary | string | Professional summary/objective | | experience | array | Work history with dates, titles, companies, descriptions | | education | array | Degrees, institutions, dates, GPA | | skills | array | Technical and soft skills | | certifications | array | Professional certifications | | languages | array | Languages and proficiency levels | | parse_confidence | number | 0-100 confidence score |
Identify standard resume sections:
Contact Info:
Experience:
{
"company": "Acme Corp",
"title": "Senior Engineer",
"start_date": "2020-03",
"end_date": "2023-06",
"current": false,
"description": "Led backend team...",
"achievements": ["Reduced latency 40%", "Mentored 3 juniors"]
}Education:
{
"institution": "MIT",
"degree": "BS",
"field": "Computer Science",
"graduation_date": "2018-05",
"gpa": 3.8
}Calculate parse confidence based on:
| Format | Support Level | Notes | |--------|--------------|-------| | PDF (text) | Full | Standard text-based PDFs | | PDF (scanned) | Partial | Requires OCR, lower accuracy | | DOCX | Full | Microsoft Word documents | | DOC | Full | Legacy Word format | | TXT | Full | Plain text | | LinkedIn JSON | Full | LinkedIn data export | | HTML | Full | Web-based resumes |
json{ "candidate_name": "Sarah Chen", "email": "sarah.chen@email.com", "phone": "+1-415-555-0123", "location": { "city": "San Francisco", "state": "CA", "country": "US" }, "linkedin_url": "linkedin.com/in/sarahchen", "summary": "Senior software engineer with 8 years of experience...", "experience": [ { "company": "Stripe", "title": "Staff Engineer", "start_date": "2021-01", "end_date": null, "current": true, "description": "Lead payments infrastructure team", "achievements": [ "Scaled payment processing 10x", "Reduced fraud by 30%" ] } ], "education": [ { "institution": "Stanford University", "degree": "MS", "field": "Computer Science", "graduation_date": "2015-06" } ], "skills": { "languages": ["Python", "Go", "TypeScript"], "frameworks": ["Django", "React", "Kubernetes"], "tools": ["PostgreSQL", "Redis", "AWS"], "soft_skills": ["Leadership", "Mentoring"] }, "certifications": [ { "name": "AWS Solutions Architect", "issuer": "Amazon", "date": "2022-03" } ], "parse_confidence": 95 }
| Error | Handling | |-------|----------| | Unreadable PDF | Return error with suggestion to re-upload | | Missing contact info | Flag as incomplete, extract what's available | | Ambiguous dates | Use best guess, flag for review | | Non-English resume | Attempt extraction, note language |
candidate-screening, database storage, search indexing| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-14 | fail→fail | 14,214 | 5,644 | -60% | 1 | 1 | 0% | 1,728 | 2,249 | +30% | 0 | 0 | — |
case-24 | pass→pass | 12,276 | 10,100 | -18% | 1 | 1 | 0% | 2,258 | 3,078 | +36% | 0 | 0 | — |
case-01 | fail→pass | 5,074 | 6,709 | +32% | 1 | 1 | 0% | 1,089 | 2,427 | +123% | 0 | 0 | — |
case-02 | fail→pass | 5,408 | 3,165 | -41% | 1 | 1 | 0% | 1,130 | 1,938 | +72% | 0 | 0 | — |
case-03 | fail→pass | 9,291 | 5,076 | -45% | 1 | 1 | 0% | 1,782 | 2,193 | +23% | 0 | 0 | — |
case-04 | fail→fail | 2,426 | 3,063 | +26% | 1 | 1 | 0% | 442 | 1,889 | +327% | 0 | 0 | — |
case-05 | fail→pass | 3,560 | 2,741 | -23% | 1 | 1 | 0% | 717 | 1,837 | +156% | 0 | 0 | — |
case-06 | fail→pass | 3,009 | 2,772 | -8% | 1 | 1 | 0% | 569 | 1,865 | +228% | 0 | 0 | — |
case-07 | fail→pass | 1,988 | 2,536 | +28% | 1 | 1 | 0% | 349 | 1,779 | +410% | 0 | 0 | — |
case-08 | fail→pass | 7,561 | 3,404 | -55% | 1 | 1 | 0% | 1,728 | 1,909 | +10% | 0 | 0 | — |
case-09 | fail→pass | 8,175 | 2,299 | -72% | 1 | 1 | 0% | 1,102 | 1,713 | +55% | 0 | 0 | — |
case-10 | pass→pass | 4,100 | 3,052 | -26% | 1 | 1 | 0% | 759 | 1,833 | +142% | 0 | 0 | — |
case-11 | fail→pass | 14,537 | 5,207 | -64% | 1 | 1 | 0% | 2,091 | 2,188 | +5% | 0 | 0 | — |
case-12 | pass→pass | 11,334 | 5,126 | -55% | 1 | 1 | 0% | 1,680 | 2,261 | +35% | 0 | 0 | — |
case-13 | fail→pass | 12,839 | 11,827 | -8% | 1 | 1 | 0% | 2,221 | 3,557 | +60% | 0 | 0 | — |
case-15 | pass→pass | 7,237 | 3,258 | -55% | 1 | 1 | 0% | 1,126 | 1,770 | +57% | 0 | 0 | — |
case-16 | fail→pass | 3,851 | 2,166 | -44% | 1 | 1 | 0% | 664 | 1,694 | +155% | 0 | 0 | — |
case-17 | fail→pass | 2,527 | 3,212 | +27% | 1 | 1 | 0% | 419 | 1,966 | +369% | 0 | 0 | — |
case-18 | pass→pass | 11,446 | 1,563 | -86% | 1 | 1 | 0% | 1,952 | 1,510 | -23% | 0 | 0 | — |
case-25 | pass→pass | 15,444 | 10,544 | -32% | 1 | 1 | 0% | 2,971 | 3,283 | +11% | 0 | 0 | — |
case-19 | pass→pass | 6,166 | 1,865 | -70% | 1 | 1 | 0% | 951 | 1,583 | +66% | 0 | 0 | — |
case-20 | pass→pass | 6,218 | 1,669 | -73% | 1 | 1 | 0% | 1,114 | 1,539 | +38% | 0 | 0 | — |
case-21 | fail→pass | 9,942 | 2,732 | -73% | 1 | 1 | 0% | 1,807 | 1,686 | -7% | 0 | 0 | — |
case-22 | pass→pass | 9,367 | 1,769 | -81% | 1 | 1 | 0% | 1,642 | 1,553 | -5% | 0 | 0 | — |
case-23 | pass→pass | 16,770 | 13,635 | -19% | 1 | 1 | 0% | 3,251 | 3,735 | +15% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +52 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.