Home / Tools / JobPosting schema generator

Generate JobPosting structured data for Google for Jobs

A vacancy without valid JobPosting markup is not eligible for the job search experience on Google, and one missing required field is enough to be left out. Fill in the form: you get JSON-LD to paste into the job page, with every required and recommended field checked as you type.

The job

The title only: no pay, codes or “apply now”.

Plain text is turned into HTML: a blank line starts a paragraph, a line starting with - becomes a bullet point.

Employment type

The employer

The company that is hiring, not the agency.

Where the work happens

Two-letter code or the name.

Separate with commas. At least one is required for a remote job.

Pay

Private The form is turned into code inside your browser and is never sent anywhere. What you type is kept only in this browser so the page remembers it; “Clear” erases it.

Markup check

—

Fill in the form to build the code.

JSON-LD for the job page

Paste it into the HTML of the page for this one job.

How to use the code

Copy the code and paste it into the HTML of the page that shows this one job, in the <head> or the <body>. Use one JobPosting per page, on the page where people read the full description and apply, not on a list of jobs. What the markup says must match what the page shows.

Then test the page: Google’s Rich Results Test reads the markup the way Google Search does. When the job closes, remove the markup or the page, or let validThrough pass.

Inside the description, the character < is written as \u003c. That is ordinary JSON: it keeps the text from closing the script tag early, and search engines read it as normal HTML.

The checks follow Google’s published JobPosting documentation: required are title, description, datePosted, hiringOrganization and jobLocation (or, for a fully remote job, jobLocationType with applicantLocationRequirements); recommended are baseSalary, employmentType, validThrough, identifier and directApply. The generator only builds text: it does not publish anything or contact Google.

Questions about the jobPosting schema generator

What is JobPosting structured data?

It is a block of JSON-LD code in a job page that describes the vacancy in a form search engines can read: title, description, employer, location, dates and pay. Google uses it to show jobs in its job search experience.

Which JobPosting fields does Google require?

Five: title, description, datePosted, hiringOrganization and jobLocation. For a fully remote job, jobLocation gives way to jobLocationType set to TELECOMMUTE, together with applicantLocationRequirements naming at least one country.

Where do I put the JSON-LD code?

In the HTML of the page for that single job, inside the head or the body. Use one JobPosting per page, on the page where people can read the full description and apply, not on a page that lists many jobs.

Does the markup guarantee that my job appears on Google?

No. Valid markup makes the page eligible; Google decides what to show. The page also has to be open to Google’s crawler, the markup has to match what the page displays, and the job has to be open.

What should I do when the job is filled?

Remove the JobPosting markup or the page, or make sure validThrough is a date in the past. Google’s guidelines for job postings ask that expired jobs are not left marked up as open.

Related tools

All free tools