Reference · draft
The job description schema
A standard shape for job descriptions: title, company, location, salary, responsibilities and the skills it asks for. Postings stay consistent wherever they are published, and can be matched against resumes.
Reference
Every field
The fields of a job.json, with the matching part of the sample posting.
Works with language models
Models already know both schemas, so asking one to turn a job posting or a resume into JSON that validates works well.
Top-level fields
| Field | Type | Description |
|---|---|---|
title | text | e.g. Web Developer |
company | text | Microsoft |
type | text | Full-time, part-time, contract, etc. |
date | date | Similar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04 |
description | text | Write a short description about the job |
remote | one of "Full", "Hybrid", "None" | the level of remote work available |
salary | text | 100000 |
experience | text | Senior or Junior or Mid-level |
responsibilities | list of text | what the job entails |
qualifications | list of text | List out your qualifications |
Example from job.json
job.json
{
"title": "Web Developer",
"company": "Microsoft",
"type": "Full-time",
"date": "2024-07",
"description": "We are looking for a skilled Web Developer to join our team. The role involves building and maintaining web applications.",
"remote": "Hybrid",
"salary": "100000",
"experience": "Mid-level",
"responsibilities": [
"Develop and maintain web applications",
"Collaborate with cross-functional teams",
"Ensure the technical feasibility of UI/UX designs",
"Optimize applications for maximum speed and scalability"
],
"qualifications": [
"Bachelor's degree in Computer Science or related field",
"3+ years of experience in web development",
"Strong understanding of JavaScript, HTML, and CSS"
]
}location
object| Field | Type | Description |
|---|---|---|
address | text | To add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li. |
postalCode | text | |
city | text | |
countryCode | text | code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN |
region | text | The general region where you live. Can be a US state, or a province, for instance. |
Example from job.json
location in job.json
{
"location": {
"address": "1234 Glücklichkeit Straße\nHinterhaus 5. Etage li.",
"postalCode": "10115",
"city": "Berlin",
"countryCode": "DE",
"region": "Berlin"
}
}skills
list of objectsList out your professional skill-set
| Field | Type | Description |
|---|---|---|
name | text | e.g. Web Development |
level | text | e.g. Master |
keywords | list of text | List some keywords pertaining to this skill |
Example from job.json
skills in job.json
{
"skills": [
{
"name": "Web Development",
"level": "Master",
"keywords": [
"HTML",
"CSS",
"JavaScript",
"React",
"Node.js"
]
}
]
}meta
objectThe schema version and any other tooling configuration lives here
| Field | Type | Description |
|---|---|---|
canonical | URL | URL (as per RFC 3986) to latest version of this document |
version | text | A version field which follows semver - e.g. v1.0.0 |
lastModified | text | Using ISO 8601 with YYYY-MM-DDThh:mm:ss |
Example from job.json
meta in job.json
{
"meta": {
"canonical": "http://example.com/jobs/web-developer",
"version": "v1.0.0",
"lastModified": "2024-07-10T15:00:00"
}
}