JobPosting Schema Generator — JSON-LD for Google for Jobs
JobPosting schema gets your job listings appearing in Google for Jobs — a dedicated job search experience integrated directly in Google Search. Job listings with schema receive significantly more clicks than those without.
What Google shows
A job listing card in Google for Jobs with company name, logo, job title, location, employment type, salary range, and a direct 'Apply' button.
Example JSON-LD
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Frontend Engineer",
"description": "<p>We're looking for a Senior Frontend Engineer to join our product team...</p>",
"hiringOrganization": {
"@type": "Organization",
"name": "Acme Corp",
"sameAs": "https://www.acme.com",
"logo": "https://www.acme.com/logo.png"
},
"datePosted": "2024-11-01",
"validThrough": "2024-12-31",
"employmentType": "FULL_TIME",
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
}
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"minValue": 150000,
"maxValue": 200000,
"unitText": "YEAR"
}
}
}Required by Google
- *title
- *description (HTML allowed)
- *hiringOrganization (name + sameAs URL)
- *datePosted
Recommended
- ◎validThrough
- ◎jobLocation (address)
- ◎employmentType
- ◎baseSalary (MonetaryAmountDistribution)
- ◎experienceRequirements
- ◎educationRequirements
- ◎jobBenefits
- ◎remote (true/false)
When to use Job Posting schema
Company career pages
Add JobPosting schema to every job listing page to appear in Google for Jobs — often the largest driver of organic job applications.
Job boards
Job boards with proper schema get individual listings indexed in Google for Jobs, complementing their own search.
Remote-first companies
Set jobLocationType: TELECOMMUTE and omit jobLocation to appear in remote-job filtered searches on Google for Jobs.
Frequently Asked Questions
How do I mark a job as fully remote?▾
Set 'jobLocationType': 'TELECOMMUTE' and set 'applicantLocationRequirements' to the country or region. You can omit jobLocation for fully remote positions.
When should validThrough be set?▾
Set validThrough to the application deadline date. Google removes listings from Google for Jobs automatically after this date. Omit if no deadline, but update or remove the schema when the role is filled.
Can I add JobPosting schema to a listing that links to a third-party ATS?▾
Yes — the apply URL can point to any ATS (Greenhouse, Lever, Workday, etc.). Use the 'apply' field in the DirectApply extension or ensure the description includes a clear application link.
All schema types
Validate in Google Rich Results Test
Paste the JSON-LD above to confirm it qualifies for rich snippets.
