Skip to content

Job posting schema example

For the Google jobs experience, JobPosting needs title, description (HTML allowed), datePosted, hiringOrganization and a location: jobLocation for on-site roles, or jobLocationType TELECOMMUTE plus applicantLocationRequirements for remote ones. validThrough, employmentType and baseSalary are recommended.

JSON-LD ยท passes this validator with 0 errors
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Warehouse Team Lead",
  "description": "<p>Lead a team of six in our Leeds warehouse. Forklift licence preferred.</p>",
  "datePosted": "2026-03-01",
  "validThrough": "2026-04-15T23:59:00+00:00",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Northfold Outdoor Ltd",
    "sameAs": "https://example.com",
    "logo": "https://example.com/logo-512.png"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "2 Canal Wharf",
      "addressLocality": "Leeds",
      "postalCode": "LS11 5PS",
      "addressCountry": "GB"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "GBP",
    "value": {
      "@type": "QuantitativeValue",
      "minValue": 32000,
      "maxValue": 36000,
      "unitText": "YEAR"
    }
  },
  "directApply": true
}
</script>

What Google checks

Job posting docs

Required: titledescriptiondatePostedhiringOrganizationhiringOrganization.name one of jobLocationjobLocationType

Recommended: validThroughemploymentTypebaseSalaryidentifierdirectApply

Taken from Google Search Central's documentation for this type. Meeting the requirements makes a page eligible; Google decides whether to show a rich result.

Mistakes the validator catches on JobPosting

Leaving expired jobs marked up
Remove the markup or the page when the job closes, or set validThrough correctly.
employmentType "Full time"
Google expects FULL_TIME, PART_TIME, CONTRACTOR and similar constants.
Remote job with no country
Add applicantLocationRequirements so Google knows where applicants may live.

Paste your own version into the schema markup validator or test a live URL.

Questions

Is baseSalary required?

No, it is recommended. Many regions and job boards expect it anyway.

Can description contain HTML?

Yes. Google allows basic HTML such as <p>, <ul> and <br> in JobPosting description.

What if the job is fully remote?

Use jobLocationType: "TELECOMMUTE" and applicantLocationRequirements with the allowed country or region.

Other examples

ArticleProductFAQPageRecipeEventLocalBusinessOrganizationBreadcrumbListVideoObjectReview