Job Posting Schema Generator - Free JSON-LD

Job Posting Schema Generator

Generate JobPosting JSON-LD schema to enable Google for Jobs rich results and increase job listing visibility.

Job Location

Salary / Compensation (optional)

A job posting schema generator turns the details of an open role into JobPosting JSON-LD that you paste into your page. This free tool is for recruiters, HR teams and site owners who want their listings to be eligible for Google's job search experience. Fill in the form, click Generate Schema, and copy the finished code.

What Is Job Posting Schema?

Job posting schema is structured data, written in the schema.org JobPosting vocabulary, that describes a job in a format search engines can read without guessing. It labels the title, employer, posting date, description, location, employment type and pay as separate, named values.

Google's Search Central documentation says JobPosting markup makes a listing eligible to appear in its job search experience, where people can filter by location, date posted and employment type. Markup does not guarantee placement, but without it your listing is much harder for Google to understand.

The most common format is JSON-LD, a block of code placed in a script tag. It sits apart from the visible page, so you can add it without changing your layout. If you are new to the idea, our schema markup generator explains the wider family of structured data types.

How to Use the Job Posting Schema Generator

You can create a complete snippet in about two minutes by filling in the form from top to bottom and generating the code.

  1. Enter the Job Title (for example, Senior Software Engineer) and the Hiring Organization (for example, Acme Corp). Both are marked required.
  2. Optionally add the Organization Website as a full address starting with https://.
  3. Choose the Date Posted (required) and, if the role closes on a known day, the Valid Through (Expiry) date.
  4. Pick an Employment Type from the list: Full-time, Part-time, Contractor, Temporary, Intern, Volunteer, Per Diem or Other. Add the Job URL if you want the page address included.
  5. Paste the Job Description (required). Then fill in the Job Location fields: Street Address, City and Country Code, or tick This is a remote job.
  6. If you publish pay, open Salary / Compensation and enter a Min Value, Max Value, Currency and Unit (Per Year, Per Month, Per Week, Per Day or Per Hour).
  7. Click Generate Schema, review the result under "Job Posting Schema Generated", then click Copy Code and paste the whole snippet once into the head section of the job page.

The Clear button resets every field if you want to start a new listing. If you change any field after generating, the old result disappears so you never copy out-of-date code.

Worked Example: A Senior Software Engineer Listing

Here is what the tool produces for a realistic salaried, on-site role, and what each part means.

Suppose you enter the title Senior Software Engineer, the organization Acme Corp, a posting date of 2025-06-02 and an expiry of 2025-07-31. You choose Full-time, add the job page address, and write a short description. For location you enter 123 Main St, San Francisco and US. For salary you enter a minimum of 120000, a maximum of 150000, USD and Per Year.

The generated snippet is a script block of type application/ld+json. Inside it, the type is JobPosting, the title and date fields carry your values, and employmentType reads FULL_TIME. The employer appears as an Organization named Acme Corp. The address appears as a PostalAddress with street, city and country, and the pay appears as a MonetaryAmount in USD with a value range of 120000 to 150000 and a unit of YEAR.

Paste that block into the head of the page where the job is described, and a search engine can read the role as structured facts: who is hiring, where, for how much, and until when.

Which Fields Does the Generator Include?

The generator writes only the fields you fill in, so optional boxes you leave empty are left out rather than output as blanks.

Form fieldStatusSchema property
Job TitleRequiredtitle
Hiring OrganizationRequiredhiringOrganization
Date PostedRequireddatePosted
Job DescriptionRequireddescription
Valid ThroughOptionalvalidThrough
Location fieldsOptionaljobLocation
Salary fieldsOptionalbaseSalary

Employment Type always has a value because the list starts on Full-time. Change it if the role is anything else, since the default is applied even when you do not touch the menu.

How Do You Read and Act on the Result?

A good result is a single script block that contains every detail you entered, in the right place, with dates and links in a valid format. Read it once before you publish.

Check the Content Against Your Page

Google expects the markup to match what visitors see on the page. If the snippet says 120000 to 150000 but the page shows a different range, or the page never mentions the location, fix the page or the form so both agree.

Fix Any Message the Tool Shows

  • Missing required field: a warning asks for the job title, hiring organization, date posted or description. Fill in the named field and generate again.
  • Minimum salary must not exceed maximum salary: swap the two numbers. This usually happens when you type them in the wrong boxes.
  • Enter an absolute HTTP or HTTPS URL: the Job URL and Organization Website need the full address, such as https://example.com/jobs/123, not a relative path or a bare domain.
  • Date problems: if Valid Through is earlier than Date Posted, or a date is not recognized, correct the date and try again.
  • Salary number errors: pay values must be zero or higher. Enter plain digits without currency symbols or commas.

Validate Before Going Live

After pasting the code onto your page, run the page through our schema markup validator to confirm the syntax is readable. Google's own testing tools can also show whether the job is eligible for its job experience.

Who Should Use a Job Posting Schema Generator?

Anyone who publishes job pages on their own website benefits, especially when they cannot edit templates or code easily.

  • In-house recruiters who post openings on a company careers page and want them found in search without paying for every placement.
  • Small business owners who add a single "We're hiring" page to a WordPress or Shopify site.
  • Staffing agencies that need clean markup for contract, temporary and per diem roles.
  • SEO consultants who add structured data for clients and want a quick way to build a starting snippet.
  • Developers who want a correctly shaped example before adding automated output to a job board template.

If your site also publishes hiring events, a similar approach works with the event schema generator, and a common careers FAQ section can use the FAQ schema generator.

Best Practices and Common Mistakes

Most JobPosting problems come from mismatched pages, stale dates and thin descriptions, not from the code itself.

  • Put the markup on the job's own page. Each opening needs its own page and its own snippet. A single page listing ten jobs should not carry one block for all of them.
  • Write a real description. Include duties, requirements and qualifications. A one-line description gives Google little to work with and gives candidates less reason to apply.
  • Set Valid Through when you know it. An expiry date helps search engines drop the listing automatically when the role closes.
  • Remove or update filled roles. Google's guidelines expect closed jobs to be taken down or marked as expired, so do not leave old listings live with active markup.
  • Use the right employment type. A seasonal worker is Temporary, a student placement is Intern, and a daily-rate shift worker is Per Diem. Use Other only when nothing fits.
  • Match the currency to the pay. Enter a three-letter currency code such as USD, EUR or GBP, and choose the unit that matches how the pay is quoted. If you leave the currency blank, the tool uses USD.
  • Use a two-letter country code. Enter US, CA or GB rather than the full country name for the cleanest result.
  • Paste the snippet only once. Duplicate blocks for the same job can send mixed signals.

How Remote Roles Work

When you tick This is a remote job, the snippet marks the job as telecommute. If you also enter a country code, that country is added as the place applicants must be located. Add a location only if the role also has a physical base. For a fully remote job open worldwide, leave the country blank only if you are sure that matches your hiring rules, because Google's documentation asks remote listings to state where applicants may live.

Limitations and Accuracy Notes

The generator builds a solid core snippet, but it does not cover every property the JobPosting type allows.

  • Location is limited to street, city and country. Properties such as region or postal code can be added by hand if you need them.
  • Salary is output as a range or as a single bound if you fill in only one field.
  • It does not add extras such as a job identifier or direct apply flag, so add those yourself if your site needs them.
  • It cannot confirm that Google will show your job. Eligibility depends on your page content, crawlability and Google's current guidelines.
  • Your description text is output as typed, so write it the way it should appear to search engines.

For navigation trails on your careers pages, you can pair this with the breadcrumb schema generator, and you can browse more markup tools in the On-Page SEO and Meta Tags category.

A well-formed JobPosting snippet gives your open roles a better chance to be understood and shown to the right candidates. Fill in the form above, generate your code, copy it into the job page, and test the page before you publish.

Frequently Asked Questions

What is job posting schema?
Job posting schema is structured data that describes a job listing in a format search engines can read. It labels the title, employer, date posted, location, employment type and pay, which helps Google understand the role and consider it for its job search results.
How do I generate job posting schema markup?
Enter the job title, hiring organization, date posted and description, then add optional location and salary details. Click Generate Schema, press Copy Code, and paste the snippet once into the head section of the page that describes that job.
Is the job posting schema generator free to use?
Yes, the Job Posting Schema Generator is free and does not require sign-in. You can generate and copy as many snippets as you need, one for each job page on your site.
Which fields are required in the job posting schema generator?
Job Title, Hiring Organization, Date Posted and Job Description are required. Location, expiry date, job URL, organization website and salary are optional. If you leave a required field empty, the tool asks you to complete it before generating.
Why does the generator say minimum salary must not exceed maximum?
The tool shows this message when the Min Value is higher than the Max Value. Swap the two numbers, for example 120000 as the minimum and 150000 as the maximum, then click Generate Schema again.
Can I use job posting schema for remote jobs?
Yes. Tick This is a remote job and the snippet marks the role as remote. If you also enter a Country Code, it is added as the country where applicants must be located, which matches Google's guidance for remote listings.
Recommended

Explore VPN options

A VPN changes your network exit. It does not guarantee anonymity.

Hide Your IP Encryption Network coverage
Protect My IP Now