All schema types
Events & Time
schema.org spec

JobPosting

A job opening. Powers the Google for Jobs experience.

What it is

JobPosting is required for inclusion in the Google for Jobs job search experience. validThrough (post expiry date) is critical — expired postings without it incur manual actions. Google requires baseSalary in many regions for full eligibility.

Required properties
  • title
  • description
  • datePosted
  • hiringOrganization
  • jobLocation OR jobLocationType
Recommended properties
  • validThrough
  • employmentType
  • baseSalary
  • directApply
  • applicantLocationRequirements
  • experienceRequirements
JSON-LD example
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior SEO Strategist",
  "description": "We are seeking a senior SEO strategist with 5+ years of experience...",
  "datePosted": "2026-04-15",
  "validThrough": "2026-06-15T23:59",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Example Inc.",
    "sameAs": "https://example.com",
    "logo": "https://example.com/logo.png"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Toronto",
      "addressRegion": "ON",
      "addressCountry": "CA"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "CAD",
    "value": {
      "@type": "QuantitativeValue",
      "value": 95000,
      "unitText": "YEAR"
    }
  }
}
</script>
Google rich result support

Google for Jobs eligibility — discrete job search vertical.

When to use it
  • Career pages
  • Job listings
  • Recruitment portals