Spec
Tier: Weak
Name: Salary Absence
A low-effort or possibly-ghost hint: a posting in a U.S. pay-transparency jurisdiction that leaves out any salary or pay range. Employers covered by these laws are supposed to publish a range, so leaving it out in a covered state or city is a small red flag. This is correlational and weak. Plenty of real postings leave out salary, so this only ever adds a little to the evidence.
Data source
None. This is a local signal. It uses only posting.Location, posting.SalaryText, and posting.DescriptionText, plus a small hardcoded list of pay-transparency jurisdictions. RequiresNetwork = false.
Approach
- Keep a small, documented hardcoded set of U.S. pay-transparency jurisdictions (for example California, Colorado, New York, Washington, Illinois, Hawaii, Minnesota, Maryland, plus a few cities). Make it easy to extend.
- In EvaluateAsync(JobPosting): if posting.Location clearly maps to a covered jurisdiction, and posting.SalaryText is null or blank, and posting.DescriptionText has no pay range (a dollar amount, "per hour", "salary range", and so on), return a SignalResult with a low score and low-to-moderate confidence. Return null otherwise.
- Be conservative on the location match. Require a Location-field match, not a description scan, and only when the jurisdiction is clear.
Precision rules
- Weak tier, low score. This must never move a posting's band on its own.
- Only fire on a clear covered-jurisdiction match. Remote, unknown, or not-covered returns null.
- Describe the pattern in the evidence, for example: "This posting is in {jurisdiction}, which requires a pay range, but none is listed." Never a verdict on the company.
Acceptance criteria
Quick start
Copy the agent prompt from SIGNAL_AUTHORING.md, paste the Spec block above into it, and hand it to your coding agent. Good first signal, no external data, just local fields.
Spec
Tier: Weak
Name: Salary Absence
A low-effort or possibly-ghost hint: a posting in a U.S. pay-transparency jurisdiction that leaves out any salary or pay range. Employers covered by these laws are supposed to publish a range, so leaving it out in a covered state or city is a small red flag. This is correlational and weak. Plenty of real postings leave out salary, so this only ever adds a little to the evidence.
Data source
None. This is a local signal. It uses only posting.Location, posting.SalaryText, and posting.DescriptionText, plus a small hardcoded list of pay-transparency jurisdictions. RequiresNetwork = false.
Approach
Precision rules
Acceptance criteria
Quick start
Copy the agent prompt from SIGNAL_AUTHORING.md, paste the Spec block above into it, and hand it to your coding agent. Good first signal, no external data, just local fields.