How to moderate job ads before they are published
Call the API when an employer submits an ad, with surface: job, and act on one of three answers: publish it, hold it for a person, or refuse it. The surface matters: the check for discriminatory wording only runs on ads, because "only women" about a choir or a shared flat is not an exclusion from a job. Most ads are a salary, a list of tasks and a deadline, and the free checks settle them in about a millisecond. What arrives in review waits in a queue, in your dashboard or through the API, and a signed webhook tells your site when somebody approves it.
How to detect job scams
A job scam needs the applicant's money or help before it pays anything. ToxicFilter reads three strong families of that (paying for training, a kit or a fee before starting; a cheque to deposit and the difference to send back; parcels to receive at home and forward) and two weak ones ("no experience needed", an interview over Telegram or WhatsApp). Under the job board template, two strong families or one strong and one weak are refused as scam. Two weak ones together are held for review and never refused, because that is also how an honest delivery job reads. The same checks run on a message between an employer and a candidate, so the fee asked for after the ad was approved is caught too.
Discriminatory job ads: held for a person, never refused
"Male candidates only", "under 30 years old", "no foreigners", "no family commitments": each is an exclusion by who somebody is, and it lands in hate with a reason that names what the ad excludes by. One excluded characteristic scores 0.60, several 0.65, and two stand-ins such as "good appearance" and "young and dynamic team" 0.45. All of them stay under the 0.70 block line, on purpose: genuine occupational requirements exist, and telling them apart is a person's call. The job board template keeps that line where it is, so these ads always reach a person.
The ad is read sentence by sentence. Equal-opportunity wording ("regardless of age or gender") silences only the sentence it is in, so a footer your board appends to every ad cannot launder "male candidates only" two lines above it. Wording that turns a phrase inclusive ("men or women", "with or without") is blanked before anything is searched, and a nationality named in the same sentence as a right to work ("or a valid work permit") describes who may legally be hired, so it is not flagged.
How ages are read
Ages written as numbers count only as an age: a limit or a range on an adult age, with a unit, or right after who is being sought ("women under 30"), and not "30 years of experience" or "under 30 hours". The instant checks settle these in about a millisecond, in eight languages; what depends on context is the model's to read with effort: high, and because an exclusion is held rather than refused, a person on your side always has the last word.
Choosing the thresholds for your job board
Start from the job board template, which lowers the lines for scams, harassment and threats and keeps discriminatory ads in review. Then try any change as a second policy running in parallel with the one in force: both verdicts are computed on your own traffic, only one acts, and the dashboard shows where they disagree before you switch.