Job postings
In buildCatch a missing salary range before the advert goes out
Salary disclosure rules differ by state and by country, and a remote posting can be governed by a jurisdiction nobody on the desk was thinking about.
Surhires is building a pay transparency validator that checks a job posting against the salary-range disclosure rules of every location it is published to, flags it before it goes out, names the jurisdiction that triggered the flag, and covers salary-history questions on the application form.
By Surhires Editorial · Published · Reviewed
In the product: in build for Wave 1, checking a posting against the disclosure rules of every location it is published to
The rules differ by jurisdiction and a posting does not stay in one place
Salary-range disclosure is not one rule. Several US states and cities require a range in the advert itself, some require it only on request or at a defined point in the process, some prescribe what the range has to represent, and several also cover a description of benefits or other compensation. Outside the United States the picture differs again, and it has been moving in the same direction for several years.
A recruiter cannot hold that in their head, and they should not have to. What actually happens is that a posting written for one market gets syndicated to four boards, picked up by an aggregator, and read by candidates in places nobody on the desk considered. The obligation follows the posting; the knowledge stays on the desk.
The validator closes that gap mechanically. When a posting is prepared for publication, the destinations are known: which boards, which markets, which locations are named in the advert itself. The check runs against every one of them rather than against the location of the office that opened the requisition.
Remote roles are the hard case
A remote role does not have one location. Depending on the rule in play it can be governed by where the employer is, where the work will be performed, or where the candidate reading the advert happens to live. A posting that says remote and nothing else is, in effect, published everywhere it can be seen, and several jurisdictions treat it that way.
The validator asks the question the posting is avoiding: which locations is this role actually open to? Once the requisition carries that answer as structured data rather than as a sentence in the description, the check becomes tractable. A role open across twelve states is checked against twelve rule sets, and the strictest disclosure requirement among them is the one the flag reports.
If you genuinely do not want to answer that question, the validator says so rather than passing the posting silently. An unbounded remote advert is a decision, and the flag makes it a conscious one.
- Destinations resolved from boards, markets and locations named in the advert
- Eligible work locations captured as structured data on the requisition
- The strictest applicable disclosure requirement reported, not the average
- Unbounded remote postings flagged rather than passed silently
- Re-checked when a posting is edited or syndicated somewhere new
The check runs before publication, not after a complaint
A validator that runs after the fact is a report. This one runs in the publishing step, between the moment the advert is finished and the moment it leaves the system, which is the only point at which the information is still cheap to change.
The output is a list of flags, each attached to a specific destination. A missing range, a range so wide it may not satisfy a good-faith requirement, a range quoted without a currency or a period, a missing statement about other compensation where one is expected, or a salary-history question sitting on the linked application form.
Publishing is not blocked by default. A flag can be acknowledged with a reason, and the acknowledgement is recorded against the posting with the user and the date. Blocking would guarantee that somebody works around the tool inside a fortnight; recording the override keeps the decision visible without stopping the desk.
A flag names the jurisdiction and quotes the rule it came from
A warning that says this posting may not comply is useless. It gives a recruiter no way to act and no way to judge whether the tool is right. Every flag names the jurisdiction that triggered it, states what that jurisdiction expects in plain terms, and shows the date the entry in the rules library was last reviewed.
That last part matters more than it looks. A rule quoted without a date is a rule you cannot evaluate, because the reader has no way to know whether it reflects a change made last month. A dated entry tells a recruiter, and more importantly tells your counsel, exactly what the tool was working from when it raised the flag.
Flags are also explainable to a client. When an agency has to tell a hiring manager that the range has to appear in the advert, arriving with the jurisdiction and the substance of the requirement is a different conversation from arriving with a warning triangle.
Salary-history questions live on the application form
Pay transparency is not only about the advert. A number of jurisdictions restrict asking a candidate for their salary history, and the question usually survives in an application form somebody built two years ago, or in a screening template that gets copied from requisition to requisition without anyone rereading it.
The validator inspects the application form and the screening questions attached to the requisition alongside the advert copy, and flags a salary-history question where the destinations include a jurisdiction that restricts it. Expected-salary questions are treated separately from salary-history questions, because they are usually treated differently, and the flag says which one it thinks it has found.
Templates are checked once and inherited, so a fix applied to a screening template propagates to every requisition using it rather than being applied forty times by hand and missed on the forty-first.
The rules library is dated, and your counsel is the authority
The library behind the validator is maintained by us and every entry carries a review date, visible in the flag. We will publish when each jurisdiction was last reviewed, because a compliance tool whose currency you cannot inspect is worse than no tool, and gives a false confidence that is harder to correct than ignorance.
What we will not do is describe the library as authoritative. Rules change, take effect on dates that are announced in advance, and are interpreted by regulators and courts in ways a lookup table does not capture. Where the library is behind, the flag will be wrong, and the review date is what lets you notice.
Your counsel is the authority on what applies to your postings. The validator is a prompt for a human decision at the moment that decision is cheapest to make: before the advert goes out, in front of the person writing it.
- Every rules entry carries a visible last-reviewed date
- Flags quote the jurisdiction and the substance of the requirement
- Overrides recorded with a reason, a user and a timestamp
- Screening templates checked once and inherited by every requisition
- No blocking by default, because a blocked desk routes around the tool
What the validator does not do
It does not decide what your range should be. Setting a good-faith range is a compensation decision that depends on your bands, your budget and the market you are hiring in, and no tool can take it from you. The validator checks that a range is present, structured and plausible against the requirement; it has no opinion on the number.
It does not certify a posting. There is no green tick that means this advert is lawful, because that is not a statement a vendor can make about a document it did not write for a role it does not employ into. A posting that passes every check has passed every check the library knows about on the date shown.
It also does not reach postings you publish outside the system. An advert typed straight into a board, or a role a client posts themselves under your name, is not in the publishing path and cannot be checked. Where a desk works that way, the honest answer is that the validator will not help until the posting comes through the product.
What you get
Pre-publication check
Runs in the publishing step, between finishing the advert and sending it out.
Per-destination flags
Each flag attached to the specific board, market or location that raised it.
Multi-jurisdiction resolution
Checks every destination a posting reaches, not the office that opened the requisition.
Remote-role locations
Eligible work locations captured as structured data instead of a sentence in the copy.
Strictest-rule reporting
Where destinations disagree, the strictest applicable disclosure requirement is the one shown.
Range structure check
Flags a missing range, a missing currency or period, and implausibly wide bands.
Other-compensation prompts
Flags a missing benefits or bonus statement where a destination expects one.
Salary-history detection
Inspects application forms and screening questions, not only the advert copy.
History versus expectation
Salary-history and expected-salary questions treated and flagged as different things.
Template inheritance
A fix to a screening template propagates to every requisition that uses it.
Dated rules entries
Every jurisdiction in the library shows when its entry was last reviewed.
Recorded overrides
Publishing over a flag requires a reason and records the user and the timestamp.
Re-check on edit
Editing or re-syndicating a posting runs the check again against the new destinations.
Client-ready explanations
Flags carry the jurisdiction and the substance, so a hiring manager can be shown why.
Questions recruiters ask
Does this guarantee our postings are lawful?
No. The validator checks a posting against a maintained rules library and tells you what it found and when that entry was last reviewed. It cannot account for a change that has not reached the library, an interpretation specific to your circumstances, or a role it never saw. Your counsel is the authority on what applies to your postings.
Is it available now?
No. It is in build for the Wave 1 release, checking a posting against the disclosure rules of every location it is published to. Nothing described here is shipping today and none of it should be relied on in a live posting workflow yet. If it matters to your evaluation, ask us where the build has got to before you sign.
How does it handle a fully remote role?
It asks which locations the role is actually open to and stores the answer on the requisition as structured data. That set is then checked against every applicable rule, and the strictest disclosure requirement among them is what the flag reports. A posting that says only remote is flagged, because in practice it is published wherever it can be read.
Can we publish anyway if we disagree with a flag?
Yes. Flags do not block publication by default. An override needs a reason and records the user and the timestamp against the posting. Hard blocking sounds safer and is not: a desk under pressure routes around a tool that stops it working, and then nothing is recorded at all.
How current is the rules library?
Every entry carries a last-reviewed date that is visible in the flag itself, so you can judge it rather than trust it. We maintain the library and publish review dates by jurisdiction. Where an entry is behind, the flag will be wrong, and the date is the mechanism that lets you catch that rather than discover it later.
Does it check salary-history questions as well as the advert?
Yes. The application form and the screening questions attached to a requisition are inspected alongside the advert copy, and a salary-history question is flagged where a destination jurisdiction restricts it. Expected-salary questions are treated separately, because the two are usually treated differently, and the flag says which one it found.
What about postings we put up directly on a board?
They are not in the publishing path, so they cannot be checked. Anything typed straight into a job board, or posted by a client under your name, sits outside the product and outside the validator. If that is how a desk works, the tool will not help until the posting comes through the system.
Keep reading
- Flag a posting before it goes out without a range
- Job posting with the board states written down
- Collect equal-opportunity data without letting it touch the decision
- Know why you hold every candidate record, and for how long
- The questions a US recruiting operation should be able to answer
- The compliance matrix, walked posture by posture
See it against your own reqs
Bring one live role and three resumes. In twenty minutes you will see the match scores, the shortlist and the placement invoice that comes out the other end.