JobPosting schema present but missing baseSalary with minValue/maxValue
This check inspects your JobPosting schema, a block of structured data (code search engines read but visitors don't see) attached to each job ad, for a baseSalary field with a minimum and maximum value. Your JobPosting schema is present, but it's missing baseSalary with minValue and maxValue. The EU Pay Transparency Directive Art. 5, effective 7 June 2026, requires a concrete salary range in job ads; wording like 'competitive' or 'negotiable' explicitly fails the requirement. Google JobSearch, LinkedIn and Indeed all surface salary ranges to candidates, and postings without one get filtered out of results before a candidate even sees them. Your developer and people team should add baseSalary to the JobPosting JSON-LD as a MonetaryAmount object with a currency, and minValue and maxValue under QuantitativeValue, for example a EUR 60,000 to 80,000 yearly range. This is roughly a day of work to add to every live posting.
Why this matters
The EU Pay Transparency Directive Art. 5, effective 7 June 2026, requires a concrete salary range in job ads; wording like 'competitive' or 'negotiable' explicitly fails the requirement. Google JobSearch, LinkedIn and Indeed all surface salary ranges to candidates, and postings without one get filtered out of results before a candidate even sees them.
How to fix it
Your developer and people team should add baseSalary to the JobPosting JSON-LD as a MonetaryAmount object with a currency, and minValue and maxValue under QuantitativeValue, for example a EUR 60,000 to 80,000 yearly range. This is roughly a day of work to add to every live posting.