Job Posting Schema

By Christian Synoradzki · Updated

Job Posting Schema is structured markup that makes job listings machine-readable and enables Google to display them in job search results.

Companies that hire compete with job boards for the same applicants. With clean markup, you make your jobs readable for Google’s job search without paying a board. The catch is maintenance: the markup has to match the visible listing and stay current.

Where the term comes from

JobPosting is a type in the Schema.org vocabulary. There it is described as “A listing that describes a job opening in a certain organization.” The vocabulary does not belong to any search engine. It is a shared standard.

Google turned it into its own documentation. That documentation defines which fields are required and which are recommended. So what counts for display in job search is not the Schema.org vocabulary alone but Google’s rules on top of it.

How the markup is built

According to Google, the required fields are title, description, date posted, hiring organization and job location. For fully remote jobs, the location may be omitted if you name the regions where applicants may live instead.

Recommended fields include base salary, employment type, a job identifier and an expiry date. The salary must be the employer’s actual base salary, not an estimate. Leave out the expiry date if the job does not expire or the date is unknown.

The “directApply” field shows whether applicants can apply on your page in a short, simple process. That means no unnecessary intermediate steps. Making people sign in several times does not meet it.

How it differs from other structured data

Job posting schema does not replace organization data. The markup describes one single job. Your company’s details, such as name and logo, appear in it only as the hiring organization.

It does not replace FAQ markup or breadcrumbs either. Those types describe other content and can sit on the same page. What matters is that every markup describes something visitors can actually see.

It also differs fundamentally from a listing on a job board. The board shows your ad on its own platform. The markup makes the ad on your own website readable for Google. Applicants then land with you instead of with a third party.

Whether structured data helps in AI answers is a separate question. The term Schema Markup Effectiveness covers that. This entry is only about Google’s classic job search.

What this means for your website

Create a separate page for each job. Google states that the markup belongs only on pages with exactly one job, not on lists or search result pages. The description in the markup must be readable on the same page.

Test the markup with Google’s Rich Results Test before you publish. Afterward, check Search Console for errors and warnings. For job URLs, Google recommends the Indexing API instead of sitemaps. A sitemap still makes sense for the rest of your site.

Build upkeep into your process. As soon as a job is filled, the page has to react. The safest approach is an expiry date set when you create the job. Alternatively, the page returns a 404 or 410 status once the job is filled.

Also decide who looks after the markup. In small companies, one person often writes the job and another maintains the website. Define who reports a filled position and who updates the page. Without that, jobs that are long gone stay online.

If you use a content management system, ask whether it generates the markup from the job fields. Some solutions create it from the form. Then a well-maintained form is enough, and you do not have to touch any code.

Limits and typical mistakes

Markup does not guarantee display. Google decides whether and how a job appears. Meeting the requirements is the precondition, not the promise.

The most common mistake is outdated jobs. Google puts it plainly: “We don’t allow expired job postings.” If you do not act in time, Google’s documentation says you risk a manual action.

Markup for content visitors cannot see is just as critical. Google explicitly advises against marking up content that is not visible. A violation can cost the page its eligibility for rich results. According to Google, normal ranking is not affected.

Other mistakes are an invented salary, markup on an overview page and a missing posting date. A short checklist avoids all three.

Frequently asked questions

Where does the job posting markup have to go?

On the page where the single job is described in a way applicants can read. An overview page with several jobs does not get JobPosting markup. Every job therefore needs its own detail page.

What happens to filled positions?

They have to disappear from your listings. Google requires expired jobs to be removed, for example with an expiry date in the past, a 404 or 410 status, or by removing the markup. Ignoring this risks a manual action.

Do I need job posting schema for a single open position?

It is worth it even then, as long as the job sits on its own clean page. The effort is small, and you make the listing readable for Google's job search. Google does not guarantee that it will display it, though.

Sources

Content reviewed by: Christian Synoradzki (November 1, 2026)

Want to put this into practice on your website? Get in touch

Cookies

Privacy policy · Imprint