Job Posting Schema Generator - JSON-LD for Google for Jobs
Job Details
HTML is allowed. Include responsibilities, qualifications, and benefits.
When the posting expires. Omit if the job stays open indefinitely.
Employer
Location
Set to TELECOMMUTE for fully remote jobs.
Compensation
Whether candidates can apply directly on your site without redirecting elsewhere.
JSON-LD Output
Why Google for Jobs Changed Hiring
Google launched Google for Jobs in 2017, and it quickly became one of the most impactful structured data integrations in search. When a user searches for something like "marketing manager jobs near me," Google surfaces a dedicated job panel with filters for location, salary, date posted, and employment type. JobPosting schema is the mechanism that gets your listings into that panel. Without it, your job pages compete as regular organic results against aggregators like Indeed and LinkedIn. With it, your openings appear alongside those platforms, directly in Google Search.
The Fields Google Actually Looks At
Five fields are required: title, description, datePosted, hiringOrganization (with a name property), and jobLocation. Skip any of these and your listing won't index into Google for Jobs at all. Beyond the essentials, baseSalary is strongly recommended because listings with salary data get higher engagement and Google can surface them for salary-filtered searches. employmentType (full-time, part-time, contract) helps with filtering. validThrough tells Google when to stop showing the listing, preventing stale results. The directApply property, when set to true, signals that candidates can apply directly on your site without being redirected.
Handling Remote and Hybrid Roles
Remote work has fundamentally changed job search behaviour. To mark a position as remote, set jobLocationType to "TELECOMMUTE." Even for fully remote roles, include a jobLocation with at least a country. Google uses this to match listings with job seekers in relevant geographic regions. For hybrid positions, include both the TELECOMMUTE type and the physical office address. This ensures the listing appears in both remote job searches and location-based queries. Omitting the location entirely on a remote job is a common mistake that limits visibility.
Eligibility Rules That Trip People Up
Valid schema alone isn't enough. Google enforces content policies that disqualify otherwise well-marked-up pages. Job listings must be freely accessible. If a user has to log in or pay to see the full description, the listing won't appear in Google for Jobs. Every listing must represent a real, currently open position. Pages that aggregate jobs without original listings, use fake postings to collect leads, or mix job ads with unrelated content will be filtered out. Your pages also need to be crawlable (no noindex tags blocking Googlebot) and should load the structured data in the initial HTML rather than relying solely on client-side rendering. Keep validThrough dates current and remove schema from filled positions promptly to maintain trust with Google's indexing system.