Skip to main content
Glama

Hiring Fairness & Selection ROI

Hiring Fairness & Selection ROI

hiring_fairness
Read-only

Group-level fairness and value analysis of a hiring process. From counts per stage and group (applicants, selected; optionally per job/location) it returns: selection rate and impact ratio of every group vs the highest-rate group at every stage (EEOC 4/5 rule), whether each gap is larger than chance (Fisher's exact test for small groups, two-proportion z-test otherwise), extra selections needed to reach the line, the end-to-end funnel, and a like-for-like check across jobs (Mantel-Haenszel, flags Simpson's paradox). From anonymous score/outcome pairs: whether the test predicts success (correlation with 95% range, range-restriction correction), expected success rate of hires (Taylor-Russell), whether it under-predicts a group (Cleary), a fair pass mark, and the dollar value net of cost (Brogden-Cronbach-Gleser) with break-even. Decision cards first: REVIEW THIS STAGE, COMPARE LIKE WITH LIKE, SMALL GAPS ADD UP, WATCH, GET LEGAL REVIEW, TEST PREDICTS / DOES NOT PREDICT, TEST UNDERRATES A GROUP, SET CUTOFF, WORTH THE COST ... Never scores or ranks individuals. Analysis, not legal advice. Up to 5,000 rows; larger files: hiring_fairness_get_engine.

Input Schema

NameRequiredDescriptionDefault
alphaNo
currencyNoUSD
validityNoKnown validity (correlation of the method with job success), if no score data.
base_rateNoShare of people who succeed in the job without the method.
candidatesNoAlternative to stage_counts: one row per candidate per stage with ONLY stage, group, selected (yes/no) and optional stratum. Aggregated at once; never send names, emails or ids.
four_fifthsNo
group_labelNoe.g. gender, race, caste, age band.group
stage_countsNoGroup-level counts, one row per stage x group (x stratum): stage, group, applicants, selected, optional stratum (job/department/location). Stages in funnel order. Common ATS headers (Gender, Applied, Hired ...) are understood.
tenure_yearsNo
annual_salaryNoUsed for the value spread (40% of salary) if sd_performance_value is absent.
hires_per_yearNo
min_group_sizeNo
score_outcomesNoAnonymous pairs for a validity study: score, outcome (optional), group (optional). No identifiers.
currency_symbolNo
reference_groupNoCompare against this group (default: highest rate).
selection_ratioNoShare of applicants hired (e.g. 0.2).
current_validityNoValidity of the method it replaces (0 = random / none).
min_cell_displayNoCounts below this are hidden in the output (privacy).
success_thresholdNoOutcome value that counts as success.
cost_per_applicantNo
sd_performance_valueNoMoney value of one SD of job performance per year.
range_restriction_ratioNoSD of scores among applicants / SD among hires (corrects r).
current_cost_per_applicantNo

Output Schema

NameRequiredDescriptionDefault
alertsNo
statusYes1 = ok, 0 = nothing could be analysed
messageNo
metadataYes
validityNo
decisionsYesPlain-language cards, priority order. Relay these first.
legal_noteYes
assumptionsNo
selection_roiNo
adverse_impactNo
cutoff_analysisNo
data_quality_reportNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false. The description adds meaningful behavior beyond that: it will never score or rank individuals, it is analysis not legal advice, and counts below min_cell_display are suppressed for privacy. These are real operational constraints an agent could not derive from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and constraints are front-loaded, but the long comma-spliced list of decision-card strings ('REVIEW THIS STAGE, COMPARE LIKE WITH LIKE, SMALL GAPS ADD UP ...') is verbose and largely restates output already covered by the output schema. Sentence length is high and structure is dense rather than scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 23-parameter, complex analytic tool the description covers the analytic modes, the row cap, and the sibling fallback, which is close to complete given an output schema exists to explain return values. It is missing practical usage detail for the many optional inputs, but nothing critical for correct invocation is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 23 parameters and 61% schema description coverage, the schema carries most of the semantic load and the description adds essentially nothing about specific parameters (it never explains alpha, four_fifths, reference_group, currency, etc.). The description's narrative maps conceptually onto the two input modes but does not clarify parameter behavior; baseline 3 for mid schema coverage is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific analytic product ('Group-level fairness and value analysis of a hiring process') and enumerates the concrete outputs (impact ratio, Fisher's exact test, Taylor-Russell, Brogden-Cronbach-Gleser). It also distinguishes itself from the sibling by stating the 5,000-row cap and redirecting to hiring_fairness_get_engine. It stops short of a crisp verb+resource framing, reading more like a feature list than a purpose statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only explicit routing guidance is 'Up to 5,000 rows; larger files: hiring_fairness_get_engine', which correctly names the alternative and its trigger condition. There is no guidance on when to pass stage_counts vs candidates vs score_outcomes, or which analysis mode applies in which scenario, so the rest of the usage is inferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.