Free tool · No signup required

Job Posting Schema
Generator

Generate valid JobPosting JSON-LD structured data. Showcase your job listing in Google Jobs with salary, location, job type, and a direct apply button for free.

Google-approved format
Instant output
🔒
No data stored
Unlimited use
Job posting details Step 1 of 2
Basic information
Include the full description. Google requires at least a few sentences to qualify for Google Jobs.
Dates
The date this job was first published
Application deadline when this posting expires
Employment type (select all that apply)
Location
2-letter ISO code
Salary (optional — strongly recommended for Google Jobs visibility)
Experience & education (optional)
Application (optional)
Direct link to the application form
Job benefits (optional)
Responsibilities (optional)
Skills required (optional)
Paste output into your job page <head>
JSON-LD Output · Ready to paste

  

How to use

01

Enter job details

Fill in the job title, description, company info, salary, and location above.

02

Generate the code

Click "Generate Schema" to produce valid JSON-LD markup instantly.

03

Paste in <head>

Copy and paste the output inside the <head> tag of your job posting page.

04

Validate & publish

Test with Google's Rich Results Test, then publish and get indexed in Google Jobs.

What is Job Posting Schema Markup?

The JobPosting schema is JSON-LD structured data that tells Google your page contains a job listing, including the title, company, salary, location, employment type, and application deadline. Google uses this data to index your listing in Google Jobs: a dedicated job search experience integrated into Google Search that surfaces job listings with salary ranges, location filters, and a direct apply button.

Google Jobs appears prominently at the top of search results for queries like "software engineer jobs remote," "marketing manager jobs New York," or "part-time barista jobs near me." Getting your job postings into this placement is effectively free advertising to active job seekers, and it requires nothing more than a valid JobPosting schema on your page.

Does salary information affect visibility?

Yes, significantly. Jobs with salary data included in their schema consistently appear more prominently in Google Jobs and receive higher click-through rates. Google surfaces salary ranges directly in the listing card, and job seekers heavily filter by compensation. Including a salary range is one of the single highest-impact improvements you can make to a job posting's search visibility.

Do I need a job board to use this?

No. Any employer with a job listing on their own website can use JobPosting schema directly. You don't need to post on Indeed, LinkedIn, or any other job board. If you have a dedicated page for each job opening, adding this schema to each page makes your own careers site eligible for Google Jobs.

Who benefits most? Employers with their own careers pages, HR teams, recruitment agencies, and startups posting jobs directly on their websites. If you have individual job posting pages, this schema should be on every one of them.

How to Validate Job Posting Schema

After generating your schema, always validate before publishing. Follow these 4 steps:

1
Generate your schema
Fill in your job details above, click Generate Schema, and copy the output.
2
Open Schema Markup Validator
Go to Schema Markup Validator and click the "Validate" tab.
3
Paste & run the test
Paste your JSON-LD and run the test. Google shows whether it's valid and eligible for Google Jobs.
4
Fix errors & publish
Fix any errors, re-test, then paste into your job page's <head> and publish.

Common Job Posting Schema Mistakes to Avoid

These are the most frequent issues that prevent job listings from appearing in Google Jobs:

❌ No datePosted
Google requires a datePosted to determine how fresh a job listing is. Missing this field will cause your schema to fail validation and prevents the listing from appearing in Google Jobs entirely.
❌ Not removing filled positions
When a position is filled, remove the JobPosting schema or set validThrough to a past date. Leaving filled-position schema active is a policy violation and creates a poor experience for job seekers who apply to a closed role.
❌ Missing or thin description
A one-sentence description won't qualify for Google Jobs. The description must accurately represent the full job posting as seen on the page. Copy your complete job description into the schema — don't abbreviate it.
❌ Wrong employment type values
Google requires specific values for employmentType: FULL_TIME, PART_TIME, CONTRACTOR, TEMPORARY, INTERN, VOLUNTEER, PER_DIEM, or OTHER. Free-text values like "full time" or "freelance" are invalid. This tool uses the correct values automatically.
❌ Misleading salary data
The salary in your schema must match what's shown on the page. Don't include a salary range in schema if it isn't visible to applicants on the actual job page — this mismatch violates Google's guidelines and can result in your listing being removed.
❌ Schema on the careers index page
JobPosting schema belongs on individual job listing pages — not on your main /careers page that lists multiple openings. Each schema instance should describe exactly one specific job that is open and detailed on that page.

Frequently Asked Questions about Job Posting Schema

Yes, Google Jobs is completely free for employers. There's no cost to appear in Google Jobs results; you simply need valid JobPosting schema on your job listing pages, and Google needs to be able to crawl those pages. You don't need to pay for any Google product or sign up for any service.
Select "Remote / Telecommute" from the work location type dropdown. This adds jobLocationType: "TELECOMMUTE" to the schema, which is Google's required value for remote jobs. You can optionally specify which countries are eligible for remote work using the applicantLocationRequirements field. For fully remote jobs with no location restriction, leave the address fields empty.
Yes. Set the employment type to "Contractor" for contract roles. For freelance work, Contractor is the closest appropriate value. You can also combine multiple employment types, for example, a role that is both part-time and contractor, by selecting both checkboxes above.
Google Jobs typically indexes new job postings within a few days of the page being crawled. To speed up indexing, submit the URL in Google Search Console via "URL Inspection → Request Indexing" immediately after publishing. Job postings tend to be crawled faster than general pages due to their time-sensitive nature.
Yes, they serve different audiences. Job board platforms have their own active candidate pools and search features. The JobPosting schema specifically helps your own website's job pages appear in Google Jobs, so candidates who find you via Google Search can apply directly without going through a third-party platform. Using both maximises your reach.

Related Schema Generators

Other free structured data tools you might need

🏢
Local Business Schema
Google Maps & local search panel
Review Schema
Star ratings for products & services
FAQ Schema
Q&A rich results in Google Search
🎓
Course Schema
Google Courses carousel
🎟️
Event Schema
Rich event cards with dates & tickets
🌐
Website Schema
Site name, sitelinks & search box