Free hiring tool

Check a Job Post for Legal and Bias Problems

Paste any engineering job post and get a fix list: missing pay range where required, "US citizens only", age/gender/origin-coded words, salary-history asks, too many must-haves. Deterministic; nothing stored.

Runs on this page
Read-only
Free

Try it

A fix list for any engineering job post: missing pay range, "US citizens only", coded words, too many must-haves.

The full job post text. Up to 30,000 characters.

0 / 30,000 characters

Where the role can be filled (for pay-range rules). One per line, up to 20.

0 of up to 20 lines

Total employees

The check runs in your browser, so what you paste here stays on this page. If you continue in Sol or your own assistant, what you send there goes to that service.

Worked example

A made-up example, run through the tool when this page was built. Load it into the form above to see it live.

Input

Post text
Rockstar Full Stack Developer

Join our young, energetic team! US citizens only.

Requirements:
- 10+ years of JavaScript
- React
- Node.js
- AWS
- Kubernetes
- Python
- Go
- CS degree required
- Native English speaker

Please include your salary history with your application.
Locations
  • California
Employee count
40

Result

8 issue(s) found (3 high).

  • HIGH "US citizens only" restricts applicants by citizenship or immigration status. The DOJ Immigrant and Employee Rights Section has settled cases over postings like this. ("Join our young, energetic team! US citizens only.")Fix: Ask instead: "Are you legally authorized to work in the US?" and "Will you now or in the future require visa sponsorship?" Keep a citizenship requirement only if a law, regulation, or government contract requires it, and say which.
  • HIGH Asking for "salary history" is banned in many states and cities (e.g. CA, NY, NJ, IL, MA, CO, WA, VA) and anchors offers to past pay. ("Please include your salary history with your application.")Fix: Remove it. If you want to check fit, ask for expected compensation instead, and publish your range.
  • HIGH No pay range found, and pay-transparency laws apply in: California.Fix: Add a good-faith salary or hourly range (minimum and maximum, not open-ended). Also check each law's extra items, e.g. a benefits description (none here).
  • MEDIUM "young, energetic team" signals an age preference. The ADEA protects applicants 40 and older. ("Join our young, energetic team! US citizens only.")Fix: Describe the work and the skills it needs, not the age or career stage of the person. State a MINIMUM experience if you need one, never a maximum, and drop graduation-year requirements.
  • MEDIUM "Native English speaker" is a proxy for national origin, which Title VII protects. ("- Native English speaker")Fix: Write the level you actually need: "fluent professional English (written and spoken)" or "able to present to customers in English".
  • MEDIUM 9 must-have requirements. Long must-have lists deter qualified applicants, especially women and career changers, who tend to apply only when they meet every item.Fix: Cut to the 3-5 that truly gate the job. Each must-have should pass: would I turn down a strong candidate missing only this? Move the rest to "Nice to have".
  • LOW "energetic" is often read as code for "young". ("Join our young, energetic team! US citizens only.")Fix: Name the behaviour you need instead, e.g. "comfortable owning several projects at once" or "moves quickly on ambiguous problems".
  • LOW "Rockstar" is masculine-coded jargon that measurably reduces applications from women. ("Rockstar Full Stack Developer")Fix: Say what the person will do: "senior engineer who owns the payments service end to end".

Pay rules as of 2026-10-04. General information, not legal advice. Laws change and vary by location; confirm with counsel.

What it needs

InputWhat to give it
Post textrequiredThe full job post text
LocationsoptionalWhere the role can be filled (for pay-range rules)
Employee countoptionalTotal employees

Call it from your assistant

In any assistant connected to Ruzora's MCP server, the tool is lint_job_post. Your assistant fills the arguments from the conversation; this is the shape:

{
  "post_text": "Rockstar Full Stack Developer Join our young, energetic team! US citizens on...",
  "locations": [
    "California"
  ],
  "employee_count": 40
}

Frequently asked questions

Is "Check a Job Post for Legal and Bias Problems" free?
Yes, it is free. The check runs in your browser on this page, so the text you paste stays on the page. The same check runs in Ruzora's MCP server and in Sol; if you continue there, what you send goes to that service.
What does "Check a Job Post for Legal and Bias Problems" need from me?
Post text (required): The full job post text. Locations (optional): Where the role can be filled (for pay-range rules). Employee count (optional): Total employees.
How does "Check a Job Post for Legal and Bias Problems" work?
It is a deterministic rule check: no AI model reads your text, and the same input always gives the same result.
Does it make the hiring decision?
This organizes evidence for you. It is not a hiring decision: you make the call.
What can it miss?
These are pattern checks: they catch the listed wording, not every biased or unlawful phrase, and they cannot judge tone or whether a requirement is truly needed. A human read is still worth it.
Is this legal advice?
General information, not legal advice. Laws change and vary by location; confirm with counsel.