JobPosting Schema Markup
Generate JobPosting JSON-LD to appear in Google for Jobs — one of the most direct schema-to-traffic opportunities available.
What valid JobPosting JSON-LD looks like
A complete, validator-ready example — drop it in your <head>, swap the values for yours, and you're done.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Software Engineer",
"description": "We are looking for a senior engineer...",
"datePosted": "2024-01-15",
"hiringOrganization": {
"@type": "Organization",
"name": "Acme Corp",
"sameAs": "https://acmecorp.com"
},
"validThrough": "2024-02-28",
"employmentType": "FULL_TIME",
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "Houston",
"addressRegion": "TX",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"minValue": 80000,
"maxValue": 120000,
"unitText": "YEAR"
}
}
}
</script>Run a full CrispAudit on your URL
Schema, cookies (GDPR/CCPA), accessibility, SEO — plus AI-generated fixes populated with your page's actual content. Free.
Required fields
titledescriptiondatePostedhiringOrganization.namejobLocation
Recommended fields
baseSalaryemploymentTypevalidThroughapplicantLocationRequirements
Common JobPosting schema errors
- ✗description is too short or missing responsibilities
- ✗datePosted not in ISO 8601 format
- ✗hiringOrganization missing sameAs or url
- ✗jobLocation not using Place type
Generate JobPosting schema
Fill in the fields below to generate valid JSON-LD you can paste directly into your page.
JobPosting schema — frequently asked questions
How quickly do job postings appear in Google for Jobs?
Google typically indexes job postings within 24-48 hours of the schema being crawled. Using IndexNow or submitting via Search Console speeds this up.
Do I need JobPosting schema if I use a job board?
If you list jobs directly on your site, yes. Third-party job boards (Indeed, LinkedIn) handle their own schema. But hosting jobs on your own domain with schema builds your employer brand in search.
What happens when a job is filled?
Set validThrough to the closing date, and once filled, either remove the page or update jobLocationType and add a note. Expired job postings can trigger manual actions if left live.
Other schema types
Audit your full schema coverage
CrispAudit checks all schema types at once — get a complete score and fix-it report for any URL.
Run free audit →