Skip to content

Instantly share code, notes, and snippets.

@janzheng
Last active February 6, 2024 21:02
Show Gist options
  • Save janzheng/b7a02c416f7e5e9c9ffac8568cd51d2d to your computer and use it in GitHub Desktop.
Save janzheng/b7a02c416f7e5e9c9ffac8568cd51d2d to your computer and use it in GitHub Desktop.
JSON Resume Schema w/ mods
{
"$schema": "http://json-schema.org/draft-04/schema#",
"$comment": "Revision: Added sectionDefinitions to meta, updated skills grouping, and included DOI and Citation for publications; added notes, roles, talks.",
"additionalProperties": false,
"definitions": {
"iso8601": {
"type": "string",
"description": "Similar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04",
"pattern": "^([1-2][0-9]{3}-[0-1][0-9]-[0-3][0-9]|[1-2][0-9]{3}-[0-1][0-9]|[1-2][0-9]{3})$"
}
},
"properties": {
"$schema": {
"type": "string",
"description": "link to the version of the schema that can validate the resume",
"format": "uri"
},
"basics": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string",
"description": "e.g. Web Developer"
},
"image": {
"type": "string",
"description": "URL (as per RFC 3986) to a image in JPEG or PNG format"
},
"email": {
"type": "string",
"description": "e.g. thomas@gmail.com",
"format": "email"
},
"phone": {
"type": "string",
"description": "Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923"
},
"url": {
"type": "string",
"description": "URL (as per RFC 3986) to your website, e.g. personal homepage",
"format": "uri"
},
"summary": {
"type": "string",
"description": "Write a short 2-3 sentence biography about yourself"
},
"location": {
"type": "object",
"additionalProperties": true,
"properties": {
"address": {
"type": "string",
"description": "To add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li."
},
"postalCode": {
"type": "string"
},
"city": {
"type": "string"
},
"countryCode": {
"type": "string",
"description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN"
},
"region": {
"type": "string",
"description": "The general region where you live. Can be a US state, or a province, for instance."
}
}
},
"profiles": {
"type": "array",
"description": "Specify any number of social networks that you participate in",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"network": {
"type": "string",
"description": "e.g. Facebook or Twitter"
},
"username": {
"type": "string",
"description": "e.g. neutralthoughts"
},
"url": {
"type": "string",
"description": "e.g. http://twitter.example.com/neutralthoughts",
"format": "uri"
}
}
}
},
"notes": {
"type": "array",
"description": "List of notes and preferences, like remote work, security clearance, citizenship, etc.",
"items": {
"type": "string"
}
}
}
},
"work": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Facebook"
},
"location": {
"type": "string",
"description": "e.g. Menlo Park, CA"
},
"description": {
"type": "string",
"description": "e.g. Social Media Company"
},
"position": {
"type": "string",
"description": "e.g. Software Engineer"
},
"url": {
"type": "string",
"description": "e.g. http://facebook.example.com",
"format": "uri"
},
"startDate": {
"$ref": "#/definitions/iso8601"
},
"endDate": {
"$ref": "#/definitions/iso8601"
},
"summary": {
"type": "string",
"description": "Give an overview of your responsibilities at the company"
},
"highlights": {
"type": "array",
"description": "Specify multiple accomplishments",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising"
}
},
"posts": {
"type": "array",
"description": "Relevant blog posts and various writings",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"datePublished": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"title",
"url",
"datePublished"
]
}
},
"media": {
"type": "array",
"description": "Appearances in media such as podcasts, interviews, and talks not directly associated with employment or education",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the media appearance or interview"
},
"date": {
"type": "string",
"description": "Date of the appearance, in ISO 8601 format"
},
"url": {
"type": "string",
"format": "uri",
"description": "URL to the media content or a transcript"
},
"platform": {
"type": "string",
"description": "Name of the platform or publication"
},
"summary": {
"type": "string",
"description": "A brief summary of the appearance or topics discussed"
}
},
"required": [
"title",
"date",
"url",
"platform"
]
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"volunteer": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"organization": {
"type": "string",
"description": "e.g. Facebook"
},
"position": {
"type": "string",
"description": "e.g. Software Engineer"
},
"url": {
"type": "string",
"description": "e.g. http://facebook.example.com",
"format": "uri"
},
"startDate": {
"$ref": "#/definitions/iso8601"
},
"endDate": {
"$ref": "#/definitions/iso8601"
},
"summary": {
"type": "string",
"description": "Give an overview of your responsibilities at the company"
},
"highlights": {
"type": "array",
"description": "Specify accomplishments and achievements",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising"
}
}
}
}
},
"education": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"institution": {
"type": "string",
"description": "e.g. Massachusetts Institute of Technology"
},
"url": {
"type": "string",
"description": "e.g. http://facebook.example.com",
"format": "uri"
},
"area": {
"type": "string",
"description": "e.g. Arts"
},
"studyType": {
"type": "string",
"description": "e.g. Bachelor"
},
"startDate": {
"$ref": "#/definitions/iso8601"
},
"endDate": {
"$ref": "#/definitions/iso8601"
},
"score": {
"type": "string",
"description": "grade point average, e.g. 3.67/4.0"
},
"courses": {
"type": "array",
"description": "List notable courses/subjects",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. H1302 - Introduction to American history"
}
}
}
}
},
"awards": {
"type": "array",
"description": "Specify any awards you have received throughout your professional career",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"title": {
"type": "string",
"description": "e.g. One of the 100 greatest minds of the century"
},
"date": {
"$ref": "#/definitions/iso8601"
},
"awarder": {
"type": "string",
"description": "e.g. Time Magazine"
},
"summary": {
"type": "string",
"description": "e.g. Received for my work with Quantum Physics"
}
}
}
},
"certificates": {
"type": "array",
"description": "Specify any certificates you have received throughout your professional career",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Certified Kubernetes Administrator"
},
"date": {
"$ref": "#/definitions/iso8601"
},
"url": {
"type": "string",
"description": "e.g. http://example.com",
"format": "uri"
},
"issuer": {
"type": "string",
"description": "e.g. CNCF"
}
}
}
},
"publications": {
"type": "array",
"description": "Specify your publications through your career",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. The World Wide Web"
},
"publisher": {
"type": "string",
"description": "e.g. IEEE, Computer Magazine"
},
"releaseDate": {
"$ref": "#/definitions/iso8601"
},
"url": {
"type": "string",
"description": "e.g. http://www.computer.org.example.com/csdl/mags/co/1996/10/rx069-abs.html",
"format": "uri"
},
"summary": {
"type": "string",
"description": "Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML."
},
"doi": {
"type": "string"
},
"citation": {
"type": "string"
}
}
}
},
"skills": {
"type": "array",
"description": "List out your professional skill-set",
"items": {
"type": "object",
"properties": {
"group": {
"type": "string",
"description": "e.g. Laboratory Skills"
},
"subgroups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Subgroup name, e.g., Manipulation of bacteria and phages"
},
"description": {
"type": "string",
"description": "Detailed description of skills and techniques"
},
"skills": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Specific skill or technique"
},
"details": {
"type": "array",
"items": {
"type": "string"
},
"description": "Detailed information or specific instances of the skill"
}
}
}
}
},
"required": [
"name",
"skills"
]
}
},
"keywords": {
"type": "array",
"items": {
"type": "string"
},
"description": "General keywords related to the skill group"
}
},
"required": [
"group",
"subgroups"
]
}
},
"languages": {
"type": "array",
"description": "List any other languages you speak",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"language": {
"type": "string",
"description": "e.g. English, Spanish"
},
"fluency": {
"type": "string",
"description": "e.g. Fluent, Beginner"
}
}
}
},
"interests": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Philosophy"
},
"keywords": {
"type": "array",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Friedrich Nietzsche"
}
}
}
}
},
"references": {
"type": "array",
"description": "List references you have received",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Timothy Cook"
},
"reference": {
"type": "string",
"description": "e.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."
}
}
}
},
"projects": {
"type": "array",
"description": "Specify career projects",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. The World Wide Web"
},
"description": {
"type": "string",
"description": "Short summary of project. e.g. Collated works of 2017."
},
"highlights": {
"type": "array",
"description": "Specify multiple features",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Directs you close but not quite there"
}
},
"keywords": {
"type": "array",
"description": "Specify special elements involved",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. AngularJS"
}
},
"startDate": {
"$ref": "#/definitions/iso8601"
},
"endDate": {
"$ref": "#/definitions/iso8601"
},
"url": {
"type": "string",
"format": "uri",
"description": "e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html"
},
"roles": {
"type": "array",
"description": "Specify your role on this project or in company",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Team Lead, Speaker, Writer"
}
},
"entity": {
"type": "string",
"description": "Specify the relevant company/entity affiliations e.g. 'greenpeace', 'corporationXYZ'"
},
"type": {
"type": "string",
"description": " e.g. 'volunteering', 'presentation', 'talk', 'application', 'conference'"
}
}
}
},
"roles": {
"type": "array",
"description": "Boards, committees, advisory, and other roles",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"organization": {
"type": "string"
},
"startDate": {
"type": "string",
"format": "date"
},
"endDate": {
"type": "string",
"format": "date",
"nullable": true
}
}
}
},
"talks": {
"type": "array",
"description": "Invited talks, keynotes, workshops, and other conferences / presentations.",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"event": {
"type": "string"
},
"date": {
"type": "string",
"format": "date"
},
"location": {
"type": "string"
}
}
}
},
"posts": {
"type": "array",
"description": "Relevant blog posts and various writings",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string",
"format": "uri"
},
"datePublished": {
"type": "string"
},
"summary": {
"type": "string"
}
},
"required": [
"title",
"url",
"datePublished"
]
}
},
"media": {
"type": "array",
"description": "Appearances in media such as podcasts, interviews, and talks not directly associated with employment or education",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Title of the media appearance or interview"
},
"date": {
"type": "string",
"description": "Date of the appearance, in ISO 8601 format"
},
"url": {
"type": "string",
"format": "uri",
"description": "URL to the media content or a transcript"
},
"platform": {
"type": "string",
"description": "Name of the platform or publication"
},
"summary": {
"type": "string",
"description": "A brief summary of the appearance or topics discussed"
}
},
"required": [
"title",
"date",
"url",
"platform"
]
}
},
"meta": {
"type": "object",
"description": "The schema version and any other tooling configuration lives here",
"additionalProperties": true,
"properties": {
"canonical": {
"type": "string",
"description": "URL (as per RFC 3986) to latest version of this document",
"format": "uri"
},
"version": {
"type": "string",
"description": "A version field which follows semver - e.g. v1.0.0"
},
"lastModified": {
"type": "string",
"description": "Using ISO 8601 with YYYY-MM-DDThh:mm:ss"
},
"sections": {
"type": "array",
"description": "Defines the names and descriptions for each resume section",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the section"
},
"title": {
"type": "string",
"description": "The displayed name of the section"
},
"description": {
"type": "string",
"description": "A description of what the section represents"
}
},
"required": [
"name",
"description"
]
}
}
}
}
},
"title": "Resume Schema",
"type": "object"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment