JobPosting — Job Listing
JobPosting schema for a job listing page, enabling appearance in Google for Jobs search feature.
Rich Result: Job rich result (role, company, salary, location in Google for Jobs)
When to Use
Any job listing page on a company careers site or job board. Google for Jobs aggregates structured job listings and shows them in a dedicated carousel for job searches — a major source of traffic for hiring pages.
JSON-LD Code
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior SEO Engineer",
"description": "<p>We are looking for an experienced SEO Engineer to join our growth team. You will own technical SEO strategy, work closely with engineering on site performance, and build tools to monitor our search visibility.</p><ul><li>5+ years of technical SEO experience</li><li>Strong understanding of JavaScript SEO and Core Web Vitals</li><li>Experience with Python or Node.js for SEO tooling</li></ul>",
"identifier": {
"@type": "PropertyValue",
"name": "SEOCheckPilot",
"value": "JOB-SEO-2026-001"
},
"datePosted": "2026-06-01",
"validThrough": "2026-08-31T23:59:59Z",
"employmentType": ["FULL_TIME", "CONTRACTOR"],
"hiringOrganization": {
"@type": "Organization",
"name": "SEOCheckPilot",
"sameAs": "https://seocheckpilot.com",
"logo": "https://seocheckpilot.com/logo.png"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Market Street",
"addressLocality": "San Francisco",
"addressRegion": "CA",
"postalCode": "94105",
"addressCountry": "US"
}
},
"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": {
"@type": "Country",
"name": "USA"
},
"baseSalary": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": {
"@type": "QuantitativeValue",
"minValue": 140000,
"maxValue": 180000,
"unitText": "YEAR"
}
},
"skills": "Technical SEO, JavaScript SEO, Core Web Vitals, Python, Google Search Console",
"qualifications": "5+ years of technical SEO experience, strong engineering collaboration skills",
"experienceRequirements": {
"@type": "OccupationalExperienceRequirements",
"monthsOfExperience": 60
}
}
</script>Implementation Notes
Including baseSalary is optional but strongly recommended — Google for Jobs prominently surfaces salary information and jobs with salary data appear higher in listings. jobLocationType: TELECOMMUTE enables remote job filtering.
Validate & test this schema
Check your implementation against Google guidelines