Resume to JSON

Turn a pasted resume into a standard JSON Resume (v1.0.0) document — canonical sections, ISO-8601 dates, LinkedIn/GitHub profile detection — or validate an existing resume.json against the schema. Runs entirely in your browser, nothing is uploaded.

Try:
JSON

About this tool

This tool converts a pasted resume into the standard JSON Resume format — the open v1.0.0 schema used by resume builders, themes, and registries — and can also validate an existing resume.json document against that schema. Everything runs locally in your browser; the resume text never leaves your machine.

Extract reads the resume the way a human skims it: the header block becomes basics (name, label, email, phone, URL, location, and LinkedIn/GitHub/Twitter/GitLab/Stack Overflow/Medium/Dribbble/Behance links as profiles), and recognized section headings — Experience, Education, Skills, Projects, Languages, Awards, Certifications, Publications, Volunteer, Interests, References, Summary — become the matching schema sections. Date ranges like Jan 2020 – Present, 03/2021, or 2016 – 2019 are normalized to the schema's ISO-8601 partial dates (YYYY, YYYY-MM, or YYYY-MM-DD), with an open endDate for "Present". Bullets become highlights, grouped skill lines like Languages: Rust, Python become {name, keywords} entries, and English (Native) becomes {language, fluency}. Empty sections are omitted, and only canonical schema field names are emitted, so the output drops straight into any JSON Resume theme or CLI.

Validate checks a pasted resume.json and returns a report: {valid, errors, warnings, summary}. Type mismatches and malformed dates are errors; suspicious email/URL formats and unknown keys are warnings (the schema allows extra fields, but most tools ignore them). The default Auto-detect mode validates when the input is a JSON object and extracts otherwise.

Worked example

Pasting this resume text:

Jane Doe
Senior Software Engineer
San Francisco, CA | [email protected] | linkedin.com/in/janedoe

Experience

Senior Software Engineer — Acme Corp
Jan 2020 – Present
- Led migration to a service mesh across 40 services

produces this JSON Resume document:

{
  "basics": {
    "name": "Jane Doe",
    "label": "Senior Software Engineer",
    "email": "[email protected]",
    "location": { "city": "San Francisco", "region": "CA" },
    "profiles": [
      {
        "network": "LinkedIn",
        "username": "janedoe",
        "url": "https://linkedin.com/in/janedoe"
      }
    ]
  },
  "work": [
    {
      "name": "Acme Corp",
      "position": "Senior Software Engineer",
      "startDate": "2020-01",
      "highlights": ["Led migration to a service mesh across 40 services"]
    }
  ]
}

Limits and edge cases

FAQ

What is the JSON Resume schema?

JSON Resume is an open standard that stores a resume as a single JSON document with well-known sections: basics, work, volunteer, education, awards, certificates, publications, skills, languages, interests, references, and projects. Because the shape is standardized, one resume.json file can be rendered by many independent themes, builders, and command-line tools. This tool targets schema version v1.0.0 and emits only its canonical field names.

How accurate is the extraction?

It is a deterministic, rule-based parser — not an AI model. It recognizes the common resume conventions: a header block with name, title, and contact links; section headings like "Experience" or "Technical Skills"; Role — Company entry lines; date ranges in Jan 2020 – Present, 03/2021, and 2016 – 2019 styles; and bullet lists. Clean, conventionally formatted resumes extract very well; creative layouts may need a manual touch-up afterwards. The output is always structurally valid JSON Resume, so anything that needs fixing is a copy edit, not a schema repair.

What is the difference between errors and warnings in validation?

Errors are violations of the schema's hard constraints: a field with the wrong JSON type (for example basics.name as a number, or skills[0].keywords as a string instead of an array) or a date that does not match the schema's ISO-8601 pattern (YYYY, YYYY-MM, or YYYY-MM-DD"Jan 2020" is an error). Warnings flag things that are technically allowed but usually mistakes: an email or URL that does not look well-formed, and unknown keys (the schema sets additionalProperties: true, but most renderers silently ignore fields they do not know). valid is true when there are no errors.

Why is my start date missing or wrong?

Dates are read from each entry's header lines, and the first recognized date or date range wins. Supported forms are Month YYYY (including abbreviations like Sept. 2019), Month DD, YYYY, MM/YYYY, YYYY-MM, YYYY-MM-DD, and bare YYYY, joined by -, , , or the word "to"; Present, Current, Ongoing, and Today mark an open end. If an entry's dates sit inside a paragraph rather than on the title/subtitle lines, move them next to the role line and re-run.

Can I turn the JSON back into a readable resume?

Yes — that is the point of the standard. Any JSON Resume-compatible theme, builder, or CLI can render the extracted document to HTML or PDF, and structured-resume tools (including a JSON-to-Markdown resume builder) accept the same shape. Tick "Include $schema reference" to embed the official schema URL and a meta.version field so other tools can identify the format immediately.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool resume-to-json "Jane Doe
Senior Software Engineer
San Francisco, CA | [email protected] | (555) 123-4567 | linkedin.com/in/janedoe

Experience

Senior Software Engineer — Acme Corp
Jan 2020 – Present
- Led migration to a service mesh across 40 services"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/resume-to-json/?data=Jane%20Doe%0ASenior%20Software%20Engineer%0ASan%20Francisco%2C%20CA%20%7C%20jane.doe%40example.com%20%7C%20%28555%29%20123-4567%20%7C%20linkedin.com%2Fin%2Fjanedoe%0A%0AExperience%0A%0ASenior%20Software%20Engineer%20%E2%80%94%20Acme%20Corp%0AJan%202020%20%E2%80%93%20Present%0A-%20Led%20migration%20to%20a%20service%20mesh%20across%2040%20services&mode=auto&schema_ref=true&pretty=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.