Rich Results

JobPosting Schema Markup

Generate JobPosting JSON-LD to appear in Google for Jobs — one of the most direct schema-to-traffic opportunities available.

Rich result type
Google for Jobs listings
Google documentation →

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>
Want more than JobPosting validation?

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.

Run full audit →

Required fields

  • title
  • description
  • datePosted
  • hiringOrganization.name
  • jobLocation

Recommended fields

  • baseSalary
  • employmentType
  • validThrough
  • applicantLocationRequirements

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

E-commerceProductProduct snippets, Google ShoppingContentArticleTop Stories, Article rich resultsRich ResultsFAQPageFAQ dropdowns in SERPBrandingOrganizationKnowledge Panel, logo in searchLocal SEOLocalBusinessLocal Knowledge Panel, Google MapsNavigationBreadcrumbListBreadcrumb trails in SERP

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 →