Get a Free Consultation

Job Posting Schema Generator (JSON-LD)

Add your job title, description, dates, hiring organization, location and salary. Copy valid schema.org JobPosting JSON-LD for Google for Jobs and paste it into the job page <head>. Remote and hybrid roles are handled correctly. Free, no sign-up, and nothing leaves your browser.

Updated Live preview and validation

Your job posting

Jump to your JSON-LD code
1The job

Basic HTML such as <p>, <ul> and <li> is allowed. It should match the visible job description.

2Hiring organization
3Work arrangement and location Google required

Comma separated. Use two-letter country codes or country names. At least one country is needed for remote and hybrid roles.

4Salary baseSalary, optional

Use an exact salary or a range, not both.

More details: skills, qualifications, benefits, job ID

What is JobPosting schema?

JobPosting schema is structured data, based on the schema.org JobPosting type, that describes a job opening: its title, description, hiring organization, location, salary and dates. It is the markup Google for Jobs reads to show eligible listings in Google Search.

You add it to each job page as JSON-LD. Valid markup makes a listing eligible. It does not guarantee it will appear, and the markup must match the job shown on the page.

Unlike many schema types, JobPosting is still an active, documented Google feature, so correct markup is a real eligibility requirement.

JobPosting schema example

{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior SEO Specialist",
  "description": "<p>We are hiring...</p>",
  "datePosted": "2026-10-20T09:00:00Z",
  "validThrough": "2026-12-20T00:00:00Z",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "Acme Corp",
    "sameAs": "https://www.example.com"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "Mumbai",
      "addressCountry": "IN"
    }
  }
}

Which JobPosting properties does Google require?

A few are required. Salary, expiry and employment type are recommended and improve how a listing performs.

Based on Google’s JobPosting structured data documentation. Last checked October 2026. Confirm the current list before you publish.
PropertyStatusWhat it describes
title, description, datePostedRequiredThe role, its full description and when it was posted
hiringOrganizationRequiredThe company hiring, with name and ideally logo and URL
jobLocationRequiredThe workplace address, for on-site and hybrid roles
applicantLocationRequirementsRequiredCountries applicants can work from, for remote and hybrid roles
validThroughRecommendedThe expiry date. Required if the listing expires
employmentType, baseSalary, identifierRecommendedContract type, pay and a job reference
skills, qualifications, jobBenefitsOptionalExtra detail about the role

How do you mark up remote and hybrid jobs?

jobLocationType accepts one value, TELECOMMUTE. Values such as “Remote” or “Hybrid” are not valid. The generator maps your choice to the right properties.

Google reports an error if TELECOMMUTE is used without applicantLocationRequirements.
Work arrangementProperties to use
On-sitejobLocation only. Leave out jobLocationType
Fully remotejobLocationType: TELECOMMUTE and applicantLocationRequirements
HybridjobLocation, jobLocationType: TELECOMMUTE and applicantLocationRequirements

Each applicant location is written as a Country object, for example {"@type":"Country","name":"IN"}, which is the form Google expects.

How do you add JobPosting schema to a website?

The generator does the writing. These four steps take you from a blank form to tested markup.

  1. Add the job basics

    Enter the title, description, date posted and an expiry date.

  2. Add organization and place

    Add who is hiring, then pick on-site, hybrid or remote and fill the matching location.

  3. Add salary and extras

    Add pay, employment type and benefits that appear on the page.

  4. Copy, paste and test

    Paste the script into the job page head, then run the Rich Results Test.

Put one JobPosting block on each job’s own page. When a job closes, remove the markup, update validThrough to a past date, or remove the page, so expired roles do not stay marked as open.

JobPosting schema questions, answered

Short answers on required fields, remote roles and expired jobs.

What is JobPosting schema used for?

JobPosting schema describes a job opening: title, description, organization, location, salary and dates. It is the structured data behind Google for Jobs, the job search experience in Google Search.

What fields are required for JobPosting schema?

Title, description, datePosted and hiringOrganization are required, plus a jobLocation for on-site and hybrid roles. Remote and hybrid roles also need applicantLocationRequirements with at least one country. This generator flags missing items before you copy.

How does jobLocationType work for remote and hybrid roles?

Google accepts one value, TELECOMMUTE. On-site roles leave it out and use jobLocation. Fully remote roles use TELECOMMUTE with applicantLocationRequirements. Hybrid roles combine a physical jobLocation with TELECOMMUTE and applicantLocationRequirements.

How does validThrough affect Google for Jobs?

validThrough tells Google when a listing expires. Set it for roles with a deadline, and keep it accurate so closed jobs do not stay in results.

How does baseSalary work in JobPosting schema?

baseSalary holds a MonetaryAmount with a currency and either an exact value or a minimum and maximum, plus a pay period such as HOUR or YEAR. Only add pay that is shown on the page.

Do I need to remove JobPosting schema when a job closes?

Yes, handle it one of three ways: remove the markup, set validThrough to a past date, or remove the page. Leaving a closed job marked as open gives job seekers a poor experience.

Does JobPosting schema help with AI Overviews?

Google for Jobs is its own search experience, separate from AI Overviews. Clear structured job data can still make openings easier for AI systems to read accurately, but it does not guarantee inclusion.

Is this JobPosting schema generator free?

Yes. It is completely free, with no sign-up and no limit. Everything runs in your browser, so your job details are never uploaded to a server.

Want structured data handled for you?

Search Savvy’s technical SEO team implements and monitors schema across every template, and fixes the technical issues that hold your site back.

See our SEO services