Type a tool name, for example "keyword density" or "transcript".
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.
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.
You can create a complete snippet in about two minutes by filling in the form from top to bottom and generating the code.
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.
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.
The generator writes only the fields you fill in, so optional boxes you leave empty are left out rather than output as blanks.
| Form field | Status | Schema property |
|---|---|---|
| Job Title | Required | title |
| Hiring Organization | Required | hiringOrganization |
| Date Posted | Required | datePosted |
| Job Description | Required | description |
| Valid Through | Optional | validThrough |
| Location fields | Optional | jobLocation |
| Salary fields | Optional | baseSalary |
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.
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.
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.
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.
Anyone who publishes job pages on their own website benefits, especially when they cannot edit templates or code easily.
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.
Most JobPosting problems come from mismatched pages, stale dates and thin descriptions, not from the code itself.
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.
The generator builds a solid core snippet, but it does not cover every property the JobPosting type allows.
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.
Your report has been submitted. We will look into this issue.
A VPN changes your network exit. It does not guarantee anonymity.
Themes, plugins, code, video, audio, graphics & more from 90,000+ authors.
Web Development
Design & Media
Unlimited Access
Explore Envato Market