AggregateRating schema checker for review snippets
AggregateRating schema checker: test JSON-LD against Google review snippet rules for ratingValue, counts, scale and item type. Free, runs in your browser.
JobPosting schema checker: test job posting JSON-LD for Google's 5 required and 7 recommended fields, employmentType, expiry. Free, runs in your browser.
Runs entirely in your browser. Nothing you enter is uploaded, logged or stored.
JobPosting is one of the most tightly specified structured data types Google documents: a required table, a recommended table, a fixed list of employment types, a special rule for remote roles and a policy on expired jobs. This checker keeps all of those rules intact. Paste one JobPosting JSON-LD object and it reports each property as a card, parsed with the browser’s own JSON.parse.
@type is JobPosting, a Warning otherwise, because the property tables
below come from Google’s JobPosting documentation.title, description, datePosted, hiringOrganization and
jobLocation. A property that is absent, null or an empty string counts as missing.jobLocation is not required if
applicantLocationRequirements is present. When it is, the checker marks jobLocation “Missing, but
waived” and passes it.jobLocationType: "TELECOMMUTE", Google says you must
specify at least one country, using applicantLocationRequirements (preferred) or defaulting to the
country of a jobLocation. If both are absent, the checker adds a failing card.employmentType, baseSalary, validThrough, jobLocationType,
applicantLocationRequirements, identifier and directApply. Missing ones are informational.Each card shows a property, its state and the note from Google’s documentation behind the check. The badge has four states:
If the box shows “Not valid JSON” with a parser message, fix the syntax first. No checks run until the JSON parses.
The checker opens with a remote posting for a Senior SEO Analyst that has title, description,
datePosted, hiringOrganization, jobLocationType: "TELECOMMUTE" and employmentType: "FULL_TIME".
The result:
Adding one property fixes both failures:
"applicantLocationRequirements": { "@type": "Country", "name": "USA" }
jobLocation then reads “Missing, but waived” and the remote country card disappears.
"description": "" left by a template counts as missing here.
Google asks for the full job description in HTML, covering responsibilities, qualifications and
requirements.What it does not check: the format of datePosted (Google asks for ISO 8601, such as 2026-09-01), the structure inside hiringOrganization or baseSalary, or whether the markup sits on the same page as the visible job description.
Google documents five required properties, datePosted, description, hiringOrganization, jobLocation and title. The recommended list is applicantLocationRequirements, baseSalary, directApply, employmentType, identifier, jobLocationType and validThrough. The checker reports every one of the twelve as present or missing.
Set jobLocationType to TELECOMMUTE and name at least one country applicants may work from in applicantLocationRequirements. Google prefers that property, and with it present jobLocation is no longer required. A remote posting with neither applicantLocationRequirements nor jobLocation fails in this checker.
That tool covers Article, Product, FAQPage, HowTo, Organization, BreadcrumbList and Recipe. JobPosting carries its own required and recommended tables, an enumerated employmentType and expiry guidance the other types do not share, so it is checked here instead.
Google says jobs no longer open for applications must be expired, for example with a validThrough date in the past, and that failure to take timely action on expired jobs may result in a manual action. This checker flags a validThrough date that has already passed.
No. Paste one JSON object whose @type is JobPosting, without the surrounding script tag. The checker uses JSON.parse, so HTML around the JSON is reported as invalid JSON, and an array or @graph wrapper leaves every field reading as missing.
No. This checker confirms the properties Google documents are present and that two values are valid. Eligibility also depends on Google's content policies, such as the markup appearing on the same page as the job description jobseekers can read.
AggregateRating schema checker: test JSON-LD against Google review snippet rules for ratingValue, counts, scale and item type. Free, runs in your browser.
Logo structured data generator: build Organization JSON-LD with logo, url, name and sameAs, and check Google's logo rules. Free, runs in your browser.
Course schema validator: paste Course JSON-LD and check name, description, provider and the 60 character display limit. Free, runs in your browser.
FAQ schema validator: check FAQPage JSON-LD so every Question has a name and acceptedAnswer text. Notes Google's FAQ rich result removal. Free, in-browser.