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 →

Validate your JobPosting schema

Enter your URL to check if your JobPosting markup is correct and eligible for rich results.

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

SchemaScan checks all schema types at once — get a complete score and fix-it report for any URL.

Run free audit →