Job Posting Schema Generator
Create valid JobPosting JSON-LD structured data for your job openings — with organization, location, salary and remote support, ready for Google for Jobs. Instant, in your browser, free.
Job title & type
Dates
Hiring organization
Location
Salary (optional)
JSON-LD code
Fill in the required fields (title, description, date posted, company) to generate the JSON-LD code.
How do I get into Google for Jobs?
Google for Jobs is the job-search experience that appears at the top of Google results when someone searches for work. It is powered entirely by JobPosting structured data: Google reads the JSON-LD on your careers page to understand the role, company, location and salary, then shows your listing directly in search — for free, with no job board or fee involved. To be eligible, each job needs valid JobPosting markup on its own dedicated, indexable page, the details in the markup must match what a visitor sees, and expired roles should be removed or marked with a validThrough date in the past. This tool generates that markup for you so your openings can qualify.
Required fields for job postings
Google requires a job title, a full job description (HTML is allowed and encouraged), the date the job was posted, and a hiring organization — those four are what this tool enforces before it outputs code. A job location is required for on-site roles; for remote positions you instead set jobLocationType to TELECOMMUTE and specify the country applicants may work from, which the Remote checkbox handles automatically. Strongly recommended additions are validThrough (when the posting expires), employmentType, and baseSalary — Google increasingly highlights salary information, so providing it can make your listing more prominent and trustworthy.
How to add the schema to your site
Copy the generated code and paste it into a script tag of type application/ld+json in the head section of the individual job page it describes — one posting per page. The title, description and location in the markup must match the visible content. Once the page is published and indexed, Google can pick it up for the Jobs experience. A minimal example looks like this:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "JobPosting",
"title": "Senior Frontend Developer",
"description": "We are looking for an experienced frontend developer.",
"datePosted": "2026-07-11",
"employmentType": "FULL_TIME",
"hiringOrganization": {
"@type": "Organization",
"name": "ACME GmbH"
},
"jobLocation": {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "Berlin",
"addressCountry": "DE"
}
}
}
</script>Frequently asked questions
- Which fields are required for JobPosting schema?
- Google requires a job title, a description, the date posted and a hiring organization. This tool enforces exactly those four. A location is required for on-site jobs; remote jobs use the TELECOMMUTE type plus a country instead.
- Is Google for Jobs really free?
- Yes. Google for Jobs does not charge employers to be listed. If your job page has valid JobPosting structured data and is indexed, it can appear in the Jobs experience at no cost — no job board or paid placement is required.
- How do I mark up a remote job?
- Tick the remote checkbox. The tool then sets jobLocationType to TELECOMMUTE and adds applicantLocationRequirements based on the country you enter, which is how Google identifies fully remote roles. You can still add a physical address if the role is hybrid.
- Do I need a separate page for each job?
- Yes. Google expects one JobPosting per dedicated, indexable URL. Putting several jobs on one page, or on a page that cannot be indexed, prevents them from appearing in Google for Jobs.
- How do I check that the markup is valid?
- Paste your job page URL or the generated code into Google's Rich Results Test. It validates the JobPosting structure and reports whether the posting is eligible for the Google for Jobs experience.
