Job Posting Schema Generator | OneStepToRank

Job Posting Schema Generator

Generate valid JobPosting JSON-LD structured data for your job listings. Get your openings into Google for Jobs with salary, location, and application details.

Build Your Job Posting Schema

Get Schema Monitoring

OneStepToRank monitors your structured data in production, alerts you when schema breaks, and tracks how your rich results change over time.

Get Started

What is JobPosting Schema?

JobPosting schema is a type of structured data defined by Schema.org that describes a job listing in a machine-readable format. When you add JobPosting markup to your job listing pages using JSON-LD, you provide Google with explicit details about the position including the title, description, hiring company, location, salary, and application instructions. This structured data is what powers the Google for Jobs experience, a dedicated job search widget that appears prominently at the top of search results when someone searches for jobs.

Without JobPosting schema, your job listings are just regular web pages competing with millions of other results. With it, your openings appear in a rich, interactive card format that candidates can filter by location, salary, date posted, and employment type. Google for Jobs pulls listings from across the web, but only from pages that have valid JobPosting structured data.

How Google for Jobs Works

Google for Jobs is an enhanced search feature, not a separate job board. When someone types a query like "marketing manager jobs near me" or "remote software engineer positions," Google displays a blue jobs widget at the top of the results page. This widget aggregates job listings from company career pages, job boards, and staffing agencies, but only those with valid JobPosting schema markup.

The experience lets candidates filter results by location, date posted, company type, and whether the role is full-time, part-time, or contract. Listings with salary information get priority placement in relevant filtered views. Google also sends job alerts to users who have shown interest in similar positions, giving your listing extended visibility beyond the initial search. The key advantage is that your jobs appear directly in Google Search without requiring candidates to visit a third-party job board first.

Required vs. Optional Properties

Google requires specific properties for your JobPosting schema to qualify for rich results. Missing any of these will prevent your listing from appearing in Google for Jobs:

  • datePosted -- The date the job was originally published, in ISO 8601 format (YYYY-MM-DD).
  • description -- The full job description, including responsibilities, qualifications, and benefits. HTML formatting is supported and recommended for readability.
  • hiringOrganization -- The company posting the job, including the organization name. Logo URL and company website are strongly recommended.
  • jobLocation -- A PostalAddress specifying where the job is located. For remote positions, use jobLocationType set to TELECOMMUTE instead.
  • title -- The job title. Use a clear, standard title without codes, abbreviations, or special characters.

Optional but highly recommended properties include baseSalary (increases click-through rates significantly), employmentType (FULL_TIME, PART_TIME, etc.), validThrough (application deadline), and directApply (whether candidates can apply directly). Listings with salary data appear in salary-filtered searches, and listings with employment type appear in type-filtered views, so including these expands your reach.

Best Practices for Job Descriptions

The description field is the most important part of your JobPosting schema. Google uses it to match your listing with relevant search queries, and candidates use it to decide whether to apply. Write descriptions in complete HTML with clear sections for responsibilities, requirements, and benefits. Avoid keyword stuffing, but do include the natural terms candidates search for.

Keep job titles clean and standard. A title like "Senior Software Engineer" performs better than "Rockstar Ninja Developer III (REQ-4521)." Google may reject listings with excessive special characters or internal codes in the title. Update the validThrough date when deadlines change, and remove the schema markup entirely when a position is filled. Stale listings that remain indexed after closing create a poor candidate experience and may result in Google reducing your visibility in future job searches.

Use this generator alongside our Local Business Schema Generator to ensure your company career page has comprehensive structured data, and our Local Rank Checker to monitor how your job pages perform in organic search.

Frequently Asked Questions

What is JobPosting schema markup?

JobPosting schema markup is structured data you add to your job listing pages using JSON-LD format. It tells Google exactly what the job is, who is hiring, the salary range, location, and how to apply. This structured data enables your jobs to appear in the Google for Jobs enhanced search experience, reaching candidates directly from Google Search without requiring them to visit a job board first.

How do jobs appear in Google for Jobs?

When you add valid JobPosting structured data to your job listing pages, Google can index them and display them in the Google for Jobs widget. This widget appears at the top of search results when someone searches for jobs. It shows the job title, company, location, salary, and a direct apply link. Jobs must have valid schema markup, be publicly accessible, and follow Google's content guidelines to appear.

What information is required for job posting rich results?

Google requires datePosted, description, hiringOrganization (company name), jobLocation or applicantLocationRequirements for remote jobs, and title (job title). Recommended properties include baseSalary, employmentType, validThrough date, and directApply URL. The more complete your markup, the better your listing appears in filtered job searches.

Can I use JobPosting schema for remote positions?

Yes. For fully remote positions, set jobLocationType to TELECOMMUTE and include applicantLocationRequirements if the role is limited to specific countries or regions. You can also mark jobs as partially remote by including both a physical jobLocation and the TELECOMMUTE job location type. Google for Jobs has a remote work filter, so properly marked remote jobs reach candidates specifically searching for remote opportunities.