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.
<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