<claudexml/>
Extraction · intermediate

Résumé → structured JSON

Convert a free-form résumé into a normalized candidate profile.

Recruiting pipelines need structured candidate data: contact info, experience with normalized dates, education, skills — extracted from wildly varied résumé formats.

The prompt

Copy this verbatim. Replace the {{ … }} placeholders with your values.

<instructions>
Extract candidate data from the résumé in <resume>. Return JSON inside <result> tags.

Rules:
- Dates are ISO YYYY-MM. If only a year is given, use YYYY-01.
- "present" or "current" in end_date → null.
- Skills: include only items the candidate lists. Do not infer from job descriptions.
- Do not include personal info beyond name, email, phone, location (city/country).
</instructions>

<format>
{
  "name": "string",
  "email": "string or null",
  "phone": "string or null",
  "location": "string or null",
  "headline": "string or null",
  "experience": [
    { "company": "string", "title": "string",
      "start_date": "YYYY-MM", "end_date": "YYYY-MM or null",
      "highlights": ["string"] }
  ],
  "education": [
    { "institution": "string", "degree": "string or null",
      "field": "string or null", "graduation_year": 2024 }
  ],
  "skills": ["string"]
}
</format>

<resume>{{ resume_text }}</resume>

Return inside <result> tags.

Sample input

Maya Chen — Senior SRE
[email protected] · +1 415 555 0142 · San Francisco, CA

Experience
- Acme Cloud, Staff SRE, Jan 2022 – present
  * Cut p99 latency from 800ms to 120ms across the API tier
  * Led incident response for 3 SEV-1s
- Globex, SRE, 2019 – 2021

Education
B.S. Computer Science, UC Berkeley, 2019

Skills: Go, Kubernetes, Terraform, Prometheus

Expected output

<result>
{
  "name": "Maya Chen",
  "email": "[email protected]",
  "phone": "+1 415 555 0142",
  "location": "San Francisco, CA",
  "headline": "Senior SRE",
  "experience": [
    {"company": "Acme Cloud", "title": "Staff SRE",
     "start_date": "2022-01", "end_date": null,
     "highlights": ["Cut p99 latency from 800ms to 120ms across the API tier",
                    "Led incident response for 3 SEV-1s"]},
    {"company": "Globex", "title": "SRE",
     "start_date": "2019-01", "end_date": "2021-01", "highlights": []}
  ],
  "education": [
    {"institution": "UC Berkeley", "degree": "B.S.",
     "field": "Computer Science", "graduation_year": 2019}
  ],
  "skills": ["Go", "Kubernetes", "Terraform", "Prometheus"]
}
</result>

Notes & tuning tips

  • PII restriction prevents the model from inventing demographic inferences.
  • If résumés routinely include photos or addresses, strip those upstream before extraction.
  • Always validate emails / phones with format checks server-side; the model isn't a validator.

What this example uses

Tags: <instructions> <format>

Patterns: structured output

Cite this page
Résumé → structured JSON. claudexml.com. https://claudexml.com/examples/resume-to-json/