spruce/schema/cv.schema.json

188 lines
5.1 KiB
JSON
Raw Normal View History

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://codeflow.dananglin.me.uk/apollo/spruce/raw/branch/main/schema/cv.schema.json",
"title": "CV",
"description": "A short written summary of your skills, achievements and experiences in relation to your role.",
"type": "object",
"properties": {
"firstName": {
"description": "Your first name(s).",
"type": "string"
},
"lastName": {
"description": "Your last name.",
"type": "string"
},
"jobTitle": {
"description": "Your current job title.",
"type": "string"
},
"contact": {
"additionalProperties": {
"type": "string"
},
"description": "Your contact information. You can use any key/value pairs here.",
"type": "object"
},
"links": {
"additionalProperties": {
"type": "string"
},
"description": "URLs to your online presence such as GitHub or your website. You can use any key/value pairs here.",
"type": "object"
},
"summary": {
"description": "A list of sentences summarising your skills, experiences and what you'd like to achieve in the near future.",
"items": { "type": "string" },
"type": "array"
},
"skills": {
"description": "A categorised list of your skills.",
"items": { "$ref": "#/$defs/skills" },
"type": "array"
},
"employment": {
"description": "A list of your work experiences.",
"items": { "$ref": "#/$defs/experience" },
"type": "array"
},
"education": {
"description": "A list of your education experiences.",
"items": { "$ref": "#/$defs/experience" },
"type": "array"
},
"interests": {
"description": "A list of sentences summarising your interests and hobbies.",
"items": { "type": "string" },
"type": "array"
}
},
"required": [
"firstName",
"lastName",
"jobTitle",
"summary",
"skills",
"employment",
"education",
"interests"
],
"additionalProperties": false,
"$defs": {
"skills": {
"properties": {
"category": {
"description": "The skills category.",
"type": "string"
},
"values": {
"items": {
"type": "string"
},
"description": "The skills listed in this category.",
"type": "array"
}
},
"required": [
"category",
"values"
],
"additionalProperties": false,
"type": "object"
},
"experience": {
"properties": {
"company": {
"description": "The company where your work experience took place.",
"type": "string"
},
"school": {
"description": "The school or university where you have studied.",
"type": "string"
},
"location": {
"description": "The location where the experience was based.",
"type": "string"
},
"locationType": {
"description": "The location type of your work experience (e.g. Remote, Hybrid, On-site).",
"type": "string"
},
"jobTitle": {
"description": "The job title of your experience.",
"type": "string"
},
"qualification": {
"description": "The qualifications gained from this educational experience.",
"type": "string"
},
"duration": {
"description": "The duration of the experience.",
"$ref": "#/$defs/duration"
},
"details": {
"description": "Further details of the experience (e.g. achievements, daily responsibilities, etc).",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"location",
"duration"
],
"additionalProperties": false,
"type": "object"
},
"duration": {
"properties": {
"start": {
"description": "The start date of the experience.",
"$ref": "#/$defs/date"
},
"end": {
"description": "The end date of the experience.",
"$ref": "#/$defs/date"
},
"present": {
"description": "Specifies whether you are currently employed or studying at the specified company or educational institute.",
"type": "boolean"
}
},
"additionalProperties": false,
"required": [ "start" ],
"type": "object"
},
"date": {
"properties": {
"year": {
"description": "The year (e.g. 2023).",
"type": "integer"
},
"month": {
"description": "The numerical value of the month (e.g. 5 for May).",
"minimum": 1,
"maximum": 12,
"type": "integer"
},
"day": {
"description": "The day of the month.",
"minimum": 1,
"maximum": 31,
"type": "integer"
}
},
"additionalProperties": false,
"required": [
"year",
"month",
"day"
],
"type": "object"
}
}
}