Equal opportunity
Controls that support your equal-opportunity obligations
Data collected to measure a hiring decision must never be visible to the people making it, and that is an architecture question before it is a policy question.
Surhires keeps demographic data in a separate store with its own access control, invisible to recruiters and excluded from every model payload, and uses a fixed disposition code list so selection rates can be computed. These are controls that support obligations your firm holds as an employer or agency. They are not compliance on your behalf.
By Surhires Editorial · Published · Reviewed
What this page claims, and what stays with you
This is a plain-English description of controls in the product. It is not a compliance statement, not an assurance that any process meets any obligation, and not legal advice. The binding documents are your executed agreement and the policies published on this site. Whether the EEOC's rules, OFCCP requirements as a federal contractor, or state equivalents apply to your firm is a question for your counsel.
The allocation is worth stating first because it is the point of the page. Equal-opportunity obligations attach to employers and to the agencies acting for them. They do not attach to software. What software can do is make the record-keeping possible and keep the wrong data away from the wrong screens. What it cannot do is make a selection process lawful.
A process is lawful or unlawful because of the criteria you choose and how consistently you apply them. The controls below let you show, afterwards, exactly what you did. That is genuinely valuable and it is a different thing from compliance.
The firewall is structural, not procedural
Equal-opportunity reporting fails for a boring reason. The demographic answers end up in the same table as the hiring data, on the same screen, in front of the same people. The moment a recruiter can see a candidate's race, sex, veteran status or disability status next to their pipeline stage, data collected to measure the decision has become part of the decision, and no policy written afterwards undoes that.
The fix is architectural. Demographic fields live in their own store with their own access control, keyed to the application through a reporting identifier rather than joined into the candidate view. A recruiter working a shortlist never renders them, because the query that builds the shortlist has no permission to read them. Access is a separate grant held by a reporting role, and every grant is logged.
There is no view anywhere in the product that puts a candidate's name beside their demographic answers, and no export that produces one. That is a stronger statement than a policy asking people to be careful, and it is the one worth testing during a demo rather than taking on trust.
- Separate store with its own access control, not a hidden column
- Joined to the application only by a reporting identifier
- Shortlist and search queries have no permission to read it
- Reporting access is a separate, logged grant to a named role
- No view and no export pairs a name with a demographic answer
What is collected, why it is voluntary, and who decides the categories
The demographic questions exist because reporting obligations exist. Where they apply to you the categories are prescribed rather than invented, the answers are voluntary, a decline-to-answer option is always present, and the form states plainly that the answers play no part in the hiring decision and are not shown to the people making it.
Because the fields are stored separately, that statement is structurally true rather than aspirational. Category sets are configurable per market, because different jurisdictions prescribe different sets and asking the wrong questions is its own problem. You configure which set applies to which posting.
The product does not decide that an obligation applies to you and it will not invent a category nobody asked you to collect. Firms that are not federal contractors and not covered by a reporting threshold often collect demographic data anyway, out of habit, and that is a decision worth revisiting rather than automating.
Nothing demographic reaches a model
Surhires scores candidates against requisitions, drafts outreach and parses resumes using models. The rule governing those features is absolute: demographic data is never included in a prompt, a feature vector, an embedding, a training set or a fine-tune. Payloads are built from an allow-list of fields, and the demographic store is not on the list and cannot be added by configuration.
Proxies are the harder problem and an honest answer beats a confident one. A model handed a resume can infer things from a name, a graduation year, a photograph, a school or a postcode. The obvious surface is reduced by excluding images from the parsing payload and by keeping match explanations at field level, so a recruiter sees which requirement drove each point rather than being handed a number. Nobody can promise a model infers nothing.
That is exactly why the score is shown with its reasons and why a person makes the decision. A score nobody can inspect cannot be defended, and a scoring system that cannot be explained is worse than none, because it launders a judgement into something that looks like a measurement.
Coded dispositions are what make a decision reconstructable
When a candidate does not go forward, the reason is recorded from a fixed list rather than typed: failed technical screen, salary above budget, better-qualified candidate selected, candidate withdrew, candidate declined the offer, requisition withdrawn, or a stated licence or right-to-work requirement not met. A free-text note can sit alongside, but the code is mandatory and the drop-out cannot be saved without one.
Free-text reasons cannot be counted, and a reason that cannot be counted cannot be reviewed. Coded dispositions turn a pile of individual decisions into a distribution somebody can look at: this client rejects on salary six times in ten, this requisition rejected everybody from one source, this recruiter's screen rejects at twice the rate of the rest of the desk.
The same codes answer a question about one specific decision two years later. Immutable stage history, plus a coded reason, plus the scorecard behind it, reconstructs what happened at the time rather than requiring somebody to reconstruct it from memory in front of an audience who was not there.
- A fixed disposition list rather than free text on every drop-out
- Notes allowed alongside the code, never instead of it
- Immutable stage history retained with actor and timestamp
- Scorecards kept with the decision they informed
- Distributions countable by client, requisition, source and recruiter
Selection rates and the four-fifths ratio, as an analysis you run
Adverse impact is a calculation rather than an opinion. The four-fifths guideline compares the selection rate of one group against the rate of the group with the highest rate, and treats a ratio below four-fifths as a signal worth investigating. It needs applicant counts and selection counts by stage, by requisition and by group. Most systems cannot produce them, because dispositions were free text and demographic data was never cleanly separated.
The reporting surface exports exactly those counts, in aggregate, from the separated store. Where a cell is too small to be meaningful it is suppressed rather than published, because a group of three tells you nothing statistically and identifies somebody personally. Exports run as CSV and JSON on a schedule you set, to a destination you control.
The analysis is yours to run and yours to interpret. A ratio below the guideline is a signal to investigate, not a finding of discrimination, and the reverse is also true: a passing ratio does not validate a process. Both readings need somebody who understands the roles, the applicant pools and the criteria, which is not a report and not a vendor.
Application records, retention and the audit trail
Record-keeping obligations run to defined periods after the application or the personnel action, and for federal contractors they run further, covering the requisition, the applicant pool, the criteria and the reasons for selection. The practical requirement is that the record survives, unaltered, for longer than the memory of the people involved.
Retention windows for application records are configured separately from candidate-relationship retention, because the two clocks answer different obligations. Deleting an application record on a marketing-driven data-minimisation schedule can destroy exactly what a later inquiry needs, and that mistake is easier to make than it sounds.
The audit trail is append-only: stage changes, disposition codes, scorecards, who did what and when, retained with the application rather than with the candidate profile. Where an erasure request touches a candidate whose application record sits under a retention obligation, the workflow separates what can go from what must stay and produces a summary of the exception rather than silently keeping everything.
- Application retention configured separately from candidate retention
- Append-only stage, disposition and scorecard history
- Requisition, criteria and pool retained with the application record
- Erasure requests reconciled against retention obligations, not ignored
- A stated exception summary rather than a silent retention
Where automated tools add a further obligation
Some jurisdictions add rules specifically about automated employment decision tools. New York City's regime is the most cited: where a tool is in scope it requires an independent bias audit and notice to candidates. The product records which candidates were scored and exports the data such an audit needs. Commissioning the audit and issuing the notice remain yours.
That split is not a technicality. An audit is independent precisely because the vendor does not run it, and notice is given by the employer or agency because that is who the candidate is dealing with. A vendor claiming to have handled either has misunderstood what the obligation is for.
Whether a given configuration is in scope depends on how your firm uses scoring, and that determination belongs to counsel. The product's contribution is to make the underlying data available so the determination and, if needed, the audit can happen at all.
What you get
Separate demographic store
Own access control, joined to applications only by a reporting identifier.
Invisible to recruiters
Shortlist and search queries hold no permission to read demographic fields at all.
Logged reporting access
Access sits with a named reporting role and every grant is recorded.
No name-to-answer view
No screen and no export in the product pairs a candidate name with a demographic answer.
Voluntary with decline option
Prescribed categories, an explicit decline-to-answer, and a plain statement of non-use.
Per-market category sets
Configurable by posting, so the wrong jurisdiction's questions are not asked by default.
Model payload exclusion
Demographic fields never enter a prompt, embedding, feature vector or training set.
Allow-list payloads
Model calls are built from permitted fields, and the exclusion cannot be configured away.
Field-level explanations
Scores show the requirement behind each point so a recruiter can disagree with the model.
Mandatory disposition codes
A fixed reason list on every drop-out, with free-text notes alongside rather than instead.
Immutable stage history
Who moved a candidate, when, and why, retained as an append-only record.
Selection-rate export
Applicant and selection counts by stage, requisition and group for the ratio you compute.
Small-cell suppression
Counts too small to be meaningful are suppressed rather than published or re-identified.
Separate application retention
Application records held on their own clock so minimisation does not destroy the audit trail.
AEDT scoring records
Which candidates were scored, exported for an independent bias audit you commission.
Questions recruiters ask
Does Surhires make our hiring EEOC compliant?
No. These are controls that support obligations your firm holds as an employer or as an agency acting for one. A process is lawful or unlawful because of the criteria you choose and how consistently you apply them. What the controls give you is the ability to show afterwards exactly what happened, which is valuable and is not the same as compliance.
Can a recruiter ever see demographic answers?
Not through the product. The data sits in a separate store with its own access control, joined to the application only by a reporting identifier, and the queries that build shortlists and searches hold no permission to read it. Reporting access is a separate logged grant to a named role, and no view or export pairs a name with an answer.
Do you calculate the four-fifths ratio for us?
The product exports the applicant and selection counts by stage, requisition and group that the calculation needs, with small cells suppressed. Running and interpreting it is yours. A ratio below the guideline is a signal to investigate rather than a finding, and a passing ratio does not validate a process, so both readings need somebody who knows the roles and the pools.
Could the AI infer demographics from a resume anyway?
Possibly, and pretending otherwise would be dishonest. Demographic fields are never sent to a model, images are excluded from parsing payloads and explanations stay at field level, which reduces the obvious surface. A model can still infer from a name, a school or a graduation year. That is precisely why scores are explained and a person makes the decision.
How long are application records kept?
On a retention clock configured separately from candidate-relationship retention, because the two answer different obligations and the periods differ, particularly for federal contractors. Deleting application records on a general minimisation schedule can destroy exactly what a later inquiry needs. Where erasure requests meet a retention obligation, the workflow separates the two and states the exception.
Who commissions the bias audit for an automated tool?
You do, where a regime such as New York City's applies to your use. The product records which candidates were scored and exports the data an independent audit needs, and candidate notice is issued by the employer or agency the candidate is dealing with. An audit is independent because the vendor does not run it.
Keep reading
- The compliance matrix, walked posture by posture
- Collect equal-opportunity data without letting it touch the decision
- What California consumers can ask of a recruitment database
- Where Surhires stands on accessibility, stated honestly
- Structured feedback instead of an opinion
- Two sets of people, two different roles, one privacy position
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.