Skip to content

Reference · version 1.7.0

The resume schema

14 sections, every one optional. Describe your career once in resume.json and any compatible tool can read it.

  • Every field is optional

    Include what you have. Tools skip what is missing, so a resume can be a name or a career.

  • Plain JSON Schema

    Draft-07 JSON Schema, so any language or editor can validate it. Dates are ISO 8601, URLs are URLs.

  • Extend without forking

    Put anything the schema lacks in a custom object, at the root, in basics or on any entry.

Check your file

Validate it

From the terminal, in code, or as you type: editors that read $schema check your resume live.

resume validate

Reference

Every section and field

Each section with its fields and types, and the matching part of the sample resume.

Top-level fields

Top-level fields
FieldTypeDescription
objectivetextForward-looking career goal, e.g. 'Seeking a senior backend role in climate tech'. Distinct from basics.summary, which describes background (#317)
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
resume.json
{
  "objective": "Lead engineering for a compression-first storage platform."
}

basics

object
Fields of basics
FieldTypeDescription
nametext
labeltexte.g. Web Developer
imagetextURL (as per RFC 3986) to a image in JPEG or PNG format
emailemaile.g. thomas@gmail.com
phonetextPhone numbers are stored as strings so use any format you like, e.g. 712-117-2923
urlURLURL (as per RFC 3986) to your website, e.g. personal homepage
summarytextWrite a short 2-3 sentence biography about yourself
locationlocation
location.addresstextTo add multiple address lines, use . For example, 1234 Glücklichkeit Straße Hinterhaus 5. Etage li.
location.postalCodetexte.g. 12345
location.citytexte.g. Teststadt
location.countryCodetextcode as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
location.regiontextThe general region where you live. Can be a US state, or a province, for instance.
profileslist of objectsSpecify any number of social networks that you participate in
profiles[].networktexte.g. Facebook or Twitter
profiles[].usernametexte.g. neutralthoughts
profiles[].urlURLe.g. http://twitter.example.com/neutralthoughts
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
basics in resume.json
{
  "basics": {
    "name": "Richard Hendriks",
    "label": "Programmer",
    "image": "",
    "email": "richard.hendriks@mail.com",
    "phone": "(912) 555-4321",
    "url": "http://richardhendricks.example.com",
    "summary": "Richard hails from Tulsa. He has earned degrees from the University of Oklahoma and Stanford. (Go Sooners and Cardinal!) Before starting Pied Piper, he worked for Hooli as a part time software developer. While his work focuses on applied information theory, mostly optimizing lossless compression schema of both the length-limited and adaptive variants, his non-work interests range widely, everything from quantum computing to chaos theory. He could tell you about it, but THAT would NOT be a “length-limited” conversation!",
    "location": {
      "address": "2712 Broadway St",
      "postalCode": "CA 94115",
      "city": "San Francisco",
      "countryCode": "US",
      "region": "California"
    },
    "profiles": [
      {
        "network": "Twitter",
        "username": "neutralthoughts",
        "url": "https://www.twitter.com"
      },
      {
        "network": "SoundCloud",
        "username": "dandymusicnl",
        "url": "https://soundcloud.example.com/dandymusicnl"
      }
    ]
  }
}

work

list of objects
Fields of work
FieldTypeDescription
nametexte.g. Facebook
locationtext or location
location.addresstextTo add multiple address lines, use . For example, 1234 Glücklichkeit Straße Hinterhaus 5. Etage li.
location.postalCodetexte.g. 12345
location.citytexte.g. Teststadt
location.countryCodetextcode as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
location.regiontextThe general region where you live. Can be a US state, or a province, for instance.
descriptiontexte.g. Social Media Company
positiontexte.g. Software Engineer
urlURLe.g. http://facebook.example.com
startDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
endDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
summarytextGive an overview of your responsibilities at the company
highlightslist of textSpecify multiple accomplishments
keywordslist of textSkills, tools or technologies used in this role (#293)
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
work in resume.json
{
  "work": [
    {
      "name": "Pied Piper",
      "location": "Palo Alto, CA",
      "description": "Awesome compression company",
      "position": "CEO/President",
      "url": "http://piedpiper.example.com",
      "startDate": "2013-12-01",
      "endDate": "2014-12-01",
      "summary": "Pied Piper is a multi-platform technology based on a proprietary universal compression algorithm that has consistently fielded high Weisman Scores™ that are not merely competitive, but approach the theoretical limit of lossless compression.",
      "highlights": [
        "Build an algorithm for artist to detect if their music was violating copy right infringement laws",
        "Successfully won Techcrunch Disrupt",
        "Optimized an algorithm that holds the current world record for Weisman Scores"
      ],
      "keywords": [
        "Compression",
        "C++",
        "Distributed Systems"
      ]
    }
  ]
}

volunteer

list of objects
Fields of volunteer
FieldTypeDescription
organizationtexte.g. Facebook
locationtext or location
location.addresstextTo add multiple address lines, use . For example, 1234 Glücklichkeit Straße Hinterhaus 5. Etage li.
location.postalCodetexte.g. 12345
location.citytexte.g. Teststadt
location.countryCodetextcode as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
location.regiontextThe general region where you live. Can be a US state, or a province, for instance.
positiontexte.g. Software Engineer
urlURLe.g. http://facebook.example.com
startDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
endDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
summarytextGive an overview of your responsibilities at the company
highlightslist of textSpecify accomplishments and achievements
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
volunteer in resume.json
{
  "volunteer": [
    {
      "organization": "CoderDojo",
      "position": "Teacher",
      "url": "http://coderdojo.example.com/",
      "startDate": "2012-01-01",
      "endDate": "2013-01-01",
      "summary": "Global movement of free coding clubs for young people.",
      "highlights": [
        "Awarded 'Teacher of the Month'"
      ]
    }
  ]
}

education

list of objects
Fields of education
FieldTypeDescription
institutiontexte.g. Massachusetts Institute of Technology
locationtext or location
location.addresstextTo add multiple address lines, use . For example, 1234 Glücklichkeit Straße Hinterhaus 5. Etage li.
location.postalCodetexte.g. 12345
location.citytexte.g. Teststadt
location.countryCodetextcode as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
location.regiontextThe general region where you live. Can be a US state, or a province, for instance.
urlURLe.g. http://facebook.example.com
areatexte.g. Arts
studyTypetexte.g. Bachelor
startDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
endDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
scoretextgrade point average, e.g. 3.67/4.0
courseslist of textList notable courses/subjects
summarytextThesis topic, honours, notable projects or other context (#292)
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
education in resume.json
{
  "education": [
    {
      "institution": "University of Oklahoma",
      "url": "https://www.ou.edu/",
      "area": "Information Technology",
      "studyType": "Bachelor",
      "startDate": "2011-06-01",
      "endDate": "2014-01-01",
      "score": "4.0",
      "courses": [
        "DB1101 - Basic SQL",
        "CS2011 - Java Introduction"
      ],
      "summary": "Senior project on lossless compression for streaming media."
    }
  ]
}

awards

list of objects

Specify any awards you have received throughout your professional career

Fields of awards
FieldTypeDescription
titletexte.g. One of the 100 greatest minds of the century
datedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
awardertexte.g. Time Magazine
summarytexte.g. Received for my work with Quantum Physics
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
awards in resume.json
{
  "awards": [
    {
      "title": "Digital Compression Pioneer Award",
      "date": "2014-11-01",
      "awarder": "Techcrunch",
      "summary": "There is no spoon."
    }
  ]
}

certificates

list of objects

Specify any certificates you have received throughout your professional career

Fields of certificates
FieldTypeDescription
nametexte.g. Certified Kubernetes Administrator
datedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
urlURLe.g. http://example.com
credentialIdtextCredential or licence number used to verify the certificate, e.g. a licence number or a certification ID (#590)
issuertexte.g. CNCF
expiryDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
summarytextWhat the certificate covers (#590)
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
certificates in resume.json
{
  "certificates": [
    {
      "name": "AWS Certified Solutions Architect – Associate",
      "date": "2014-06-01",
      "expiryDate": "2017-06-01",
      "issuer": "Amazon Web Services",
      "url": "https://certificates.example.com/aws/rhendriks",
      "credentialId": "AWS-ASA-12345",
      "summary": "Designing distributed systems on AWS."
    }
  ]
}

publications

list of objects

Specify your publications through your career

Fields of publications
FieldTypeDescription
nametexte.g. The World Wide Web
authorslist of textAuthors in published order, including the resume owner. e.g. ['Richard Hendriks', 'Bertram Gilfoyle']
publishertexte.g. IEEE, Computer Magazine. For talks, the event name
releaseDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
volumetexte.g. 12
issuetexte.g. 3
pagestexte.g. 45-67
identifiersobjectPersistent identifiers keyed by scheme, e.g. doi, isbn, arxiv, pmid
identifiers.doitexte.g. 10.1000/182
identifiers.isbntexte.g. 978-3-7502-4718-5
identifiers.arxivtexte.g. 2101.00001
urlURLe.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html
summarytextShort summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML.
typetexte.g. 'article', 'book', 'patent', 'thesis', 'talk' (#295)
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
publications in resume.json
{
  "publications": [
    {
      "name": "Video compression for 3d media",
      "authors": [
        "Richard Hendriks",
        "Bertram Gilfoyle"
      ],
      "publisher": "Hooli",
      "releaseDate": "2014-10-01",
      "url": "http://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)",
      "summary": "Innovative middle-out compression algorithm that changes the way we store data.",
      "type": "article"
    }
  ]
}

skills

list of objects

List out your professional skill-set

Fields of skills
FieldTypeDescription
nametexte.g. Web Development
leveltexte.g. Master
keywordslist of textList some keywords pertaining to this skill
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
skills in resume.json
{
  "skills": [
    {
      "name": "Web Development",
      "level": "Master",
      "keywords": [
        "HTML",
        "CSS",
        "Javascript"
      ]
    }
  ]
}

languages

list of objects

List any other languages you speak

Fields of languages
FieldTypeDescription
languagetexte.g. English, Spanish
fluencytexte.g. Fluent, Beginner
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
languages in resume.json
{
  "languages": [
    {
      "language": "English",
      "fluency": "Native speaker"
    }
  ]
}

interests

list of objects
Fields of interests
FieldTypeDescription
nametexte.g. Philosophy
keywordslist of text
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
interests in resume.json
{
  "interests": [
    {
      "name": "Wildlife",
      "keywords": [
        "Ferrets",
        "Unicorns"
      ]
    }
  ]
}

references

list of objects

List references you have received

Fields of references
FieldTypeDescription
nametexte.g. Timothy Cook
referencetexte.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing.
relationshiptextHow the referee knows you. e.g. Manager, Peer, Client, Thesis advisor
organizationtextWhere you worked together. e.g. Pied Piper
datedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
availableOnRequesttrue or falseShow 'available on request' rather than publishing the reference. Contact details are deliberately not part of the schema
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
references in resume.json
{
  "references": [
    {
      "name": "Erlich Bachman",
      "relationship": "Investor",
      "organization": "Aviato",
      "date": "2014-09",
      "reference": "It is my pleasure to recommend Richard, his performance working as a consultant for Main St. Company proved that he will be a valuable addition to any company."
    }
  ]
}

projects

list of objects

Specify career projects

Fields of projects
FieldTypeDescription
nametexte.g. The World Wide Web
summarytextShort summary of the project, consistent with summary in other sections (#296). e.g. Collated works of 2017.
descriptiontextDeprecated alias of summary, kept for compatibility; when both are set, summary wins (#296). e.g. Collated works of 2017.
highlightslist of textSpecify multiple features
keywordslist of textSpecify special elements involved
startDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
endDatedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04. Every date is optional; omit endDate for a current position or ongoing entry (#309).
urlURLe.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html
roleslist of textSpecify your role on this project or in company
entitytextSpecify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'
typetext e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'
customcustomTool- or author-specific data that has no standard field yet (#316). Keys are free-form; namespace them by tool (e.g. "myTool": { ... }) to avoid collisions. Themes are not expected to render it, and tools should preserve it unchanged when reading and writing resumes.
Example from resume.json
projects in resume.json
{
  "projects": [
    {
      "name": "Miss Direction",
      "description": "A mapping engine that misguides you",
      "highlights": [
        "Won award at AIHacks 2016",
        "Built by all women team of newbie programmers",
        "Using modern technologies such as GoogleMaps, Chrome Extension and Javascript"
      ],
      "keywords": [
        "GoogleMaps",
        "Chrome Extension",
        "Javascript"
      ],
      "startDate": "2016-08-24",
      "endDate": "2016-08-24",
      "url": "http://missdirection.example.com",
      "roles": [
        "Team lead",
        "Designer"
      ],
      "entity": "Smoogle",
      "type": "application"
    }
  ]
}

meta

object

The schema version and any other tooling configuration lives here

Fields of meta
FieldTypeDescription
canonicalURLURL (as per RFC 3986) to latest version of this document
versiontextA version field which follows semver - e.g. v1.0.0
lastModifiedtextUsing ISO 8601 with YYYY-MM-DDThh:mm:ss
Example from resume.json
meta in resume.json
{
  "meta": {
    "canonical": "https://raw.githubusercontent.com/jsonresume/jsonresume.org/master/packages/schema/sample.resume.json",
    "version": "v1.3.1",
    "lastModified": "2026-10-22T00:00:00"
  }
}