Skip to content

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

Top-level fields
FieldTypeDescription
titletexte.g. Web Developer
companytextMicrosoft
typetextFull-time, part-time, contract, etc.
datedateSimilar to the standard date type, but each section after the year is optional. e.g. 2014-06-29 or 2023-04
descriptiontextWrite a short description about the job
remoteone of "Full", "Hybrid", "None"the level of remote work available
salarytext100000
experiencetextSenior or Junior or Mid-level
responsibilitieslist of textwhat the job entails
qualificationslist of textList 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
Fields of location
FieldTypeDescription
addresstextTo add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li.
postalCodetext
citytext
countryCodetextcode as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN
regiontextThe 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 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
Example from job.json
skills in job.json
{
  "skills": [
    {
      "name": "Web Development",
      "level": "Master",
      "keywords": [
        "HTML",
        "CSS",
        "JavaScript",
        "React",
        "Node.js"
      ]
    }
  ]
}

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 job.json
meta in job.json
{
  "meta": {
    "canonical": "http://example.com/jobs/web-developer",
    "version": "v1.0.0",
    "lastModified": "2024-07-10T15:00:00"
  }
}

Describe the candidate side too