S SCHEMA.BIZ
Other Extends: Intangible

JobPosting Schema Markup

JobPosting markup enables your job listings to appear in Google's dedicated job search experience. Job seekers can filter by location, salary, employment type, and more — and your listings appear alongside major job boards.

Eligible Rich Results

Job Posting Rich Result Google for Jobs

When to Use JobPosting

Job board listings Company career pages Recruitment agency listings Freelance opportunities

Properties

Property Type Status Description
title Text required The job title (e.g., Senior Software Engineer).
description Text required Full job description with responsibilities and requirements. HTML is allowed.
datePosted Date required When the job was posted.
hiringOrganization Organization required The company posting the job.
jobLocation Place recommended Where the work is performed.
validThrough DateTime recommended Application deadline.
employmentType Text required FULL_TIME, PART_TIME, CONTRACTOR, etc.
baseSalary MonetaryAmount recommended Salary information.
jobLocationType Text optional Set to TELECOMMUTE for remote positions.
directApply Boolean optional Whether candidates can apply directly.
applicantLocationRequirements AdministrativeArea optional Where applicants must be located.

JSON-LD Examples

Full-Time Software Engineer

A job posting with salary range and location.

{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "Senior Frontend Developer",
  "description": "<p>We're looking for an experienced frontend developer to join our product team. You'll be building user interfaces with React and TypeScript.</p><h3>Requirements</h3><ul><li>5+ years of frontend development</li><li>Expert in React and TypeScript</li></ul>",
  "datePosted": "2024-04-01",
  "validThrough": "2024-06-30T23:59:59-07:00",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "TechCorp",
    "sameAs": "https://techcorp.com",
    "logo": "https://techcorp.com/logo.png"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "addressLocality": "San Francisco",
      "addressRegion": "CA",
      "addressCountry": "US"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": {
      "@type": "QuantitativeValue",
      "value": 150000,
      "maxValue": 190000,
      "unitText": "YEAR"
    }
  }
}

Common Mistakes

Using 'title' and 'name' interchangeably — JobPosting uses 'title', not 'name'.

Forgetting hiringOrganization — Google requires the company name to show the listing.

Not including salary when it's available — listings with salary information get more visibility in Google for Jobs.

Using plain text for description when HTML formatting would make it more readable and attractive.

Complete Guide to JobPosting Schema Markup

JobPosting schema markup feeds directly into Google for Jobs — a dedicated job search experience that appears for job-related queries. Unlike traditional search results, Google for Jobs provides a rich interface where candidates can filter by salary, location, company size, and more.

The most critical properties are title, description, datePosted, hiringOrganization, and employmentType. Without these, your listing won't appear in Google for Jobs. The description supports HTML formatting — use headers, lists, and paragraphs to make the posting readable.

Including salary information (baseSalary) dramatically increases the visibility and click-through rate of your listing. Google prominently displays salary ranges in job search results, and many candidates filter specifically for listings that include compensation data.

For remote positions, set jobLocationType to 'TELECOMMUTE'. You can also combine this with a jobLocation to indicate the company's base location while showing the role as remote. The applicantLocationRequirements property specifies where remote workers must be located.

Related Types

Ready to Create JobPosting Markup?

Use our free generator to create valid JobPosting JSON-LD markup with a visual form. No coding required.

Open Generator