Skip to content

What Is JobPosting Schema Markup?

JobPosting Schema Markup is a term used in the recruitment and staffing industry.

TL;DR

JobPosting schema markup is structured data you add to a job listing page so that search engines can read it as machine-readable metadata — not just human-readable HTML. Get it right and your roles can appear as rich results in Google Search. Get it wrong and you're invisible to anyone who isn't already on your careers site.

What JobPosting Schema Actually Is

Schema.org is a shared vocabulary that search engines agreed on so they can understand page content beyond raw text. The JobPosting type within that vocabulary tells Google, Bing, and others exactly what a job listing is: its title, location, salary range, employment type, application deadline, and who's hiring.

You implement it as JSON-LD (the recommended format), a small block of structured JSON embedded in a <script> tag on the page. It doesn't change what the page looks like to humans. It changes what the page looks like to crawlers.

The practical payoff is Google for Jobs. When your listing has valid JobPosting schema, Google can pull it into its dedicated jobs surface — the carousel that appears above regular search results when someone searches for a specific role. That placement is effectively free paid placement, except you earn it with correct markup rather than a campaign budget.

Why It Matters for Recruitment

Most job traffic doesn't start on your careers site. It starts with a search: "marketing manager jobs London", "remote Python developer role". If your listings aren't eligible for Google for Jobs, you're competing only on organic ranking in a crowded SERP. JobPosting schema is the mechanism that gets you into a different, less cluttered results surface.

Beyond Google for Jobs, valid schema markup helps aggregators like Indeed, LinkedIn, and Glassdoor parse your listings more accurately when they crawl your site directly. Salary data, remote status, and employment type all flow through correctly instead of being guessed from body text.

For talent acquisition teams running direct sourcing strategies, this matters more than most SEO advice. Paid job boards charge per click. Organic placements through schema are effectively free distribution — once set up, they run without ongoing spend.

In Practice

A mid-sized logistics company posts 40 roles per month through their ATS, which auto-generates career pages. Before implementing JobPosting schema, their average application volume from organic search was 8 per role. After their engineering team added JSON-LD blocks using the ATS's built-in schema export feature, 34 of those 40 roles qualified for Google for Jobs inclusion. Average organic applications climbed to 19 per role over the following quarter — with zero additional spend.

The 6 roles that didn't qualify had missing required fields: hiringOrganization, jobLocation, and datePosted are all mandatory. One role also had a validThrough date set in the past, which immediately disqualified it.

Required fields to get right: title, datePosted, description, hiringOrganization (name + url), jobLocation (address or remote), and employmentType. Optional but high-impact fields: baseSalary, validThrough, workHours, applicantLocationRequirements (for remote roles).

Validate with Google's Rich Results Test before publishing. It will tell you exactly which fields are missing or malformed.

Key Facts

ConceptDefinitionPractical Implication
Schema.orgShared structured data vocabulary maintained by Google, Bing, Yahoo, and YandexIndustry-standard format; using it correctly ensures cross-engine compatibility
JSON-LDJavaScript Object Notation for Linked Data — Google's recommended schema formatEmbed in a `<script type="application/ld+json">` tag; doesn't affect visible page content
Google for JobsDedicated job-search surface in Google results powered by valid JobPosting schemaListings with valid schema can appear here for free, above standard organic results
Required fields`title`, `datePosted`, `description`, `hiringOrganization`, `jobLocation`, `employmentType`Missing any required field disqualifies the listing from rich result eligibility
`baseSalary` fieldOptional schema property specifying pay range and currencyListings with salary data get higher visibility in Google for Jobs; also builds candidate trust
Rich Results TestGoogle's free tool to validate structured data on any URLUse before publishing every new listing type to catch errors before Google crawls them