Evalgent
Back to Blog
Voice AI Testing

Is Your AI Phone Screener Rejecting Good Hourly Workers?

Deepesh Jayal
15 min read
Is Your AI Phone Screener Rejecting Good Hourly Workers?
On this page

This post is for the product team at a high-volume hiring platform. You run AI phone screening for hourly workers across many employers and locations: quick-service restaurants, retail, warehouses, healthcare support. Each employer has its own knock-out questions, shift availability rules and pay ranges. Every prompt change reaches all of them at once.

The category is real. Fountain says its AI Recruiter can "auto-screen candidates 24/7 via voice conversations". Workstream says its VoiceAI "calls candidates for you". Every screener like these shares one blind spot. A false advance gets noticed when the person shows up unqualified. A false reject never comes back to complain.

Our AI phone screening QA guide covers the whole flow. Our bias testing post covers fairness across groups. This post covers one number: how many qualified hourly workers your screener rejects, and why.

3.5%
Monthly quits rate in accommodation and food services, August 2026, vs 1.9% for all industries (BLS)
0.14–0.41
Exact entity-capture success for four voice agent setups; a matched text agent passed every task (τ-Elicitation, 2026)
24–37%
Share of verified entity errors that voice agents repaired before the call ended (same study)
27M+
US "hidden workers" in 2020, people screened out by hiring systems despite wanting work (HBS, 2021)

Why false rejects matter more in frontline hiring

Hourly roles turn over fast. The Bureau of Labor Statistics put the quits rate in accommodation and food services at 3.5% in August 2026. Retail was 3.0%. The all-industry rate was 1.9%. High volume hiring AI exists because recruiters cannot call every applicant within an hour.

That volume makes small error rates expensive. A Harvard Business School study of 2,275 executives found more than 27 million "hidden workers" in the US in 2020. Most employers admitted their systems rejected potentially productive applicants. That study covered resume filters. Voice is worse in one way: nobody re-reads a call. That is why AI phone interview accuracy has to be measured on purpose.

False reject: a candidate who meets the employer's real requirements but leaves the screen with a reject disposition. In ML terms, a false negative.

Worked example (illustrative assumptions). Say your platform runs 40,000 screens a month. Thirty percent end in a knock-out reject: 12,000 rejects. If 6% of those are wrong, 720 qualified workers are lost each month. No error log fires. The employer just sees a thin pipeline. Swap in your own volumes.

How good candidates get knocked out silently

The agent asks a question. Speech-to-text writes a transcript. An LLM maps the answer to a typed field, a rule checks it, and the applicant tracking system gets a disposition. Often an automatic rejection message follows. Every hop trusts the one before it. These are the paths that turn a qualified worker into a reject.

Failure grid of eight paths where an AI phone screener rejects a qualified hourly worker, from misheard availability and noisy calls to literal knock-outs, re-prompt timeouts and hang-ups

Availability that flips on one word

"Weekends, no problem" and "weekends, no" share three words. On a phone line, a candidate who trails off after "no" sounds the same as one who stops. The LLM sees "weekends no" and writes `weekend_ok = false`. Or "I can't do mornings but evenings are fine" becomes a refusal of the evening shift if the model keys on "can't."

Why do AI phone screeners mishear availability? Phone audio is narrowband. Endpointing cuts the turn at the first long pause. And the extraction prompt asks for a yes or no, so the model never says "unclear." Our post on pause handling shows how short silence timers clip answers mid-thought.

Times and ranges

Shift windows are numbers spoken fast. "Two to ten" can mean 2 p.m. to 10 p.m. or a morning shift. "Ten to two" might be a window or "1:50." A start date of "the fifth" can land in the wrong month. A literal rule then fails a candidate free 2 p.m. to 10 p.m. against a 3 p.m. to 11 p.m. close, by one hour. The employer would have taken them.

Research backs the difficulty. Ray and Barres built τ-Elicitation, a 200-task benchmark for exact capture of names, dates and times. A matched text agent passed every task. Four voice setups reached robust exact success of only 0.14 to 0.41. A read-back and confirmation scaffold raised success by 14 to 31 points, at a cost of 21 to 28 seconds per call. Our guide to STT entity accuracy covers number and date tests.

Noise from a bus or a break room

Hourly applicants call from a bus, a store floor, or a break room with a fryer alarm. Background noise lowers word confidence. It also triggers false endpoints, so the agent talks over the answer. A clipped "yes, I have my" plus a loud noise becomes "no answer."

Silence has its own risk. In Careless Whisper, Koenecke and colleagues found about 1% of Whisper transcriptions held hallucinated content. Of those, 38% included harms such as invented violence or false authority. Files that produced hallucinations had longer non-vocal stretches. A candidate who pauses can get words in the transcript they never said. Test this with real noise beds, as in our guide to testing STT under background noise.

Spanish, code-switching and short answers

In 2018–2022 Census data, Spanish was 61.1% of non-English home languages. About 39% of Spanish speakers did not report speaking English "very well." Many switch mid-sentence: "Sí, tengo mi food handler card." Code-switching confuses a model pinned to one language. Short answers like "sí," "yeah," "nah" and "mm-mm" are one or two syllables on a lossy line. See our guide to testing multilingual handling.

Knock-out logic that is too literal

Some rejects are config errors, not speech errors.

  • Certifications you can get after hire. In California, food handlers hired after June 1, 2011 must obtain a card within 30 days after the date of hire. "Do you have a food handler card?" as a hard knock-out rejects people the law lets you hire.
  • Forklift "certification." Under OSHA's 29 CFR 1910.178(l)(6), the employer certifies each operator after training and evaluation. Prior training counts only once the operator is evaluated and found competent. "I drove forklifts for three years, but my card was with my last job" is a strong answer. A rule wanting "certified: yes" rejects it.
  • Desired hours. "Around 30" fails a rule that wants "≥ 32" even when the role is flexible.
  • Pay range acknowledgment. "That's a little low but I'd take it" is a yes. An LLM tuned on sentiment may write no.

Re-prompts that time out and hang-ups

The agent asks again after silence. If the candidate is still mid-answer, the re-prompt collides with them. After two timeouts, many flows mark the question "failed," and a failed required question becomes a reject.

Calls also drop when signal dies or a manager calls the candidate back to the floor. A hang-up is missing data. Yet many integrations map "call ended early" to "not interested," or count a missed screen as a no-show. Both close the application.

Measuring false reject rate from the audio

Your logs hold what the system believed. To measure false rejects, a human must listen to the call and decide what the candidate actually said.

Two numbers, not one

Define them separately.

  • Reject error rate (RER): wrong rejects ÷ all rejects. Measured by auditing a sample of rejects.
  • False reject rate (FRR): wrong rejects ÷ all qualified candidates. Here, qualified means wrong rejects plus correct advances.

How do you measure false reject rate in AI screening? Audit a sample of rejects to estimate RER. Audit a smaller sample of advances to confirm they were right. Then FRR = (RER × rejects) ÷ (RER × rejects + correct advances).

Using the example above: 12,000 rejects at a 6% RER gives 720 wrong rejects. With 26,600 correct advances, FRR = 720 ÷ 27,320 ≈ 2.6%. Put FRR in employer reports. It says how many qualified people you lost.

Audit sample size

To estimate a proportion near 6% within ±2 points at 95% confidence:

n = z² × p × (1 − p) ÷ E² = 1.96² × 0.06 × 0.94 ÷ 0.02² ≈ 542

So about 540 rejects per stratum. You will not get that per employer every month. Stratify by knock-out question, language and employer tier instead. Each reject belongs to the knock-out that fired, and that question is the unit you fix. See our guide to sampling live calls for the broader method.

Audit flow for a monthly false reject review, from all rejects to a stratified sample, blind human re-review of the audio, and per-question reject error rates against pass thresholds

Reviewers must listen to the audio, because the transcript already contains the error. Our post on transcript versus audio evaluation explains why. Keep it blind: reviewers hear the answer but never see the system's disposition.

Here is a simplified script to turn audit results into per-question rates with a Wilson interval.

# Simplified: per-knock-out reject error rate with a Wilson 95% interval.
import math
from collections import defaultdict

def wilson(k, n, z=1.96):
    if n == 0:
        return (0.0, 0.0)
    p = k / n
    d = 1 + z**2 / n
    c = (p + z**2 / (2 * n)) / d
    h = z * math.sqrt(p * (1 - p) / n + z**2 / (4 * n**2)) / d
    return (max(0.0, c - h), min(1.0, c + h))

# Each row: knock-out that fired, language, reviewer verdict on the audio
audit = [
    {"knockout": "weekend_ok", "lang": "es", "should_reject": False},
    {"knockout": "weekend_ok", "lang": "en", "should_reject": True},
    {"knockout": "shift_window", "lang": "en", "should_reject": False},
    # ... ~540 rows per stratum
]

groups = defaultdict(lambda: [0, 0])  # [wrong, total]
for row in audit:
    key = (row["knockout"], row["lang"])
    groups[key][1] += 1
    if not row["should_reject"]:
        groups[key][0] += 1

for (ko, lang), (wrong, total) in sorted(groups.items()):
    lo, hi = wilson(wrong, total)
    print(f"{ko:14} {lang}  RER {wrong/total:5.1%}  95% CI {lo:.1%}-{hi:.1%}  n={total}")

Wilson intervals stay honest when error counts are small. Three wrong out of 40 shows a wide interval, which tells you to collect more first.

Matched-pair caller tests before release

Audits find past damage. Matched-pair tests stop it shipping. Keep the answer fixed, change only the condition, and watch for a flipped disposition. Build a bank of qualified-candidate answers that pass every knock-out when spoken clearly. Then replay each under different caller profiles:

Caller profileWhat changesExpected dispositionCommon flip
Quiet baselineClear speech, no noiseAdvance(none: this is the control)
Bus or streetTraffic noise, engine humAdvanceClipped "yes" becomes no answer
Break roomClatter, alarms, crosstalkAdvanceFalse endpoint mid-answer
SpanishFull answers in SpanishAdvanceWrong language model; "sí" missed
Code-switchingEnglish and Spanish mixedAdvanceCertification name dropped
Short answers"Yeah," "nah," "sí," "mm-hm"AdvanceBackchannel read as refusal
Slow responder3–5 second pause before answeringAdvanceRe-prompt timeout, question failed
Hedged answers"Around thirty hours," "a little low but fine"AdvanceLiteral rule rejects

The metric is the flip rate: the share of profile runs whose disposition differs from the quiet baseline. Run each pair several times, because LLM extraction is not deterministic. Any flip on a hard knock-out is worth fixing before release. This is accuracy under real caller conditions, not a bias audit. Group selection rates belong in the bias testing workflow.

Evalgent's caller profiles set accent, speech pace, interruption level, response delay, background noise and language. Its simulator calls the screener over PSTN, SIP or WebRTC, in English, Spanish and other languages. You can run one qualified-candidate script across every caller profile and compare outcomes judged from the audio.

Fix the knock-out logic: yes, no or unclear

Should a knock-out question reject an unclear answer? No. The single biggest structural fix is a third state. Every knock-out field should accept `yes`, `no` or `unclear`. Only a confirmed `no` should reject.

Decision tree for a three-state knock-out question where only a confirmed no rejects, and low-confidence or hedged answers get a read-back and then human review

Signals that should push an answer to `unclear`:

  • Low word confidence on the deciding words. Deepgram, for example, returns a per-word confidence score from 0 to 1. Its docs warn that confidence is only as good as the model's fit to the audio domain. Use final, not interim, results.
  • A negation word near the end of a clipped turn, such as "no," "can't" or "not."
  • A hedge, a range, or a condition: "around," "depends," "after three."
  • A language switch inside the answer.
  • An endpoint fired while background noise was high.

For `unclear`, the agent reads the answer back once: "Just to confirm, you can work Saturdays and Sundays?" A second unclear goes to a human review queue, not a reject. Apply this read-back only to knock-out questions, so the call stays short.

Per-employer knock-out config tests

The base prompt is shared. The knock-outs are not. Lint every employer config before it goes live:

  • Flag certifications that can be obtained after hire. Rewrite them as "Can you get one within your first 30 days?"
  • Flag forklift questions phrased as "certified." Ask about experience, then let the employer evaluate.
  • Check shift windows for partial overlap. Decide with the employer whether one hour short is a reject or a hold.
  • Check minimum age wording. Ask "Are you at least 18?" never "How old are you?"
  • Check that every knock-out has a pass value, an unclear path and a reason code.

Then generate one passing and one failing test call per knock-out per employer. A change that flips the passing call is a regression. Evalgent generates test scenarios from the agent's prompt and flows, including branches and hard constraints, so each employer branch gets its own starting set. For rollout, see shipping prompt changes safely.

ATS write-back checks

The employer acts on the ATS record. ATS write-back checks test what the screener writes, not what it says.

  • Disposition plus reason. Every reject carries the knock-out that fired and the audio timestamp of the answer. No reason code means no reject.
  • Unclear is its own stage. Map `unclear` to a review stage. Never map it to "rejected."
  • Hang-ups are incomplete. A call that ends before all knock-outs are answered is "incomplete." It gets a retry or a text with a callback link. It is not "not interested."
  • No-shows need a scheduled event. Only a missed confirmed interview slot is a no-show. A missed screening call is not.
  • Rejection messages wait. Send the automatic rejection only after a confirmed `no`, ideally after a review window.
  • Requisition match. Answers land on the right requisition and location, and interview scheduling invites go to the right site.

Test end to end: a call that should end "incomplete" must show "incomplete" in the employer's ATS. Our staffing agency screening post covers requisition and pay-rate write-back.

Rules to check when you change questions

This section is not legal advice. Work with employment counsel on how each rule applies to your product and customers.

  • Minimum age. The EEOC has said the ADEA does not specifically prohibit asking age, but it closely scrutinizes such requests. Ask only whether the candidate meets the minimum. Some roles have a floor. Federal Hazardous Occupations Order No. 7 covers forklifts for workers aged 16 and 17. State laws add limits.
  • NYC Local Law 144. The DCWP FAQ says employment decisions include screening. An AI tool that substantially assists that decision needs a bias audit and notices.
  • Illinois HB 3773. The amendment to the Illinois Human Rights Act took effect January 1, 2026. It bars discriminatory AI use in employment decisions and requires notice.
  • TCPA follow-ups. The FCC's February 2024 ruling treats AI-generated voices as "artificial" under the TCPA. On texts, courts differ: in July 2026 the Seventh Circuit held texts are not "telephone calls" under section 227(c)(5), per this summary. Keep consent and opt-outs for callbacks and texts regardless. See our outbound testing guide.

Monitoring false rejects in production

Watch these per employer, location, language and hour:

  • Reject rate, and its mix by knock-out question
  • `Unclear` rate and human review overturn rate
  • Re-prompt timeout rate per question
  • Calls ending in the first 30 seconds
  • Spanish and code-switched call share, and their reject rates
  • Reject rate before and after each prompt or config release

A jump in one employer's reject rate after a config change is the loudest alarm. A slow rise in Spanish rejects after an STT model update is the quietest. Evalgent's production monitoring takes pushed call recordings, transcribes them, maps them to scenarios and judges each call. It flags tool-call failures, latency spikes and policy failures with fix recommendations.

How to improve AI phone interview accuracy and cut false rejects

1. Add a third state. Change every knock-out field to `yes`, `no` or `unclear`. Only a confirmed `no` rejects.

2. Add read-back on deciding fields. Confirm availability, shift window and certification answers once before writing them.

3. Lint employer configs. Flag post-hire certifications, literal forklift questions, partial-overlap shift rules and age wording.

4. Fix write-back mapping. Map hang-ups to "incomplete," unclear answers to review, and delay rejection messages.

5. Build a qualified-candidate script bank. Write answers that should pass every knock-out for each employer template.

6. Run matched-pair profiles. Replay the bank under noise, Spanish, code-switching, short answers and slow responses. Track flip rate.

7. Audit rejects monthly. Pull about 540 rejects per stratum, re-review the audio blind, and compute RER and FRR with Wilson intervals.

8. Monitor by segment. Alert on reject-rate shifts per employer, language and knock-out after every release.

Buying instead of building? Run the same tests in a bake-off, using our recruiting screening vendor guide. The steps apply to any AI phone screening hourly workers go through, and to any knock-out-driven frontline hiring flow. They make AI phone interview accuracy a number you report.

Frequently asked questions

How accurate are AI phone interviews?

AI phone interview accuracy depends on the field and the call conditions. Exact capture of dates, times and names is hard for voice agents. One 2026 benchmark found voice setups reached only 0.14 to 0.41 exact success where a text agent passed every task. Measure your own accuracy per knock-out question, from the audio, under realistic noise and languages.

Can an AI phone screener reject qualified candidates?

An AI phone screener can reject qualified candidates without any error showing. A misheard negation, a clipped answer, a literal knock-out rule or a dropped call writes a valid reject to the ATS. The candidate gets a rejection message and the employer never hears the call. Only audio audits of rejects reveal these false negatives.

How do you measure false reject rate in AI screening?

Measure false reject rate by auditing a stratified sample of rejects and having humans re-review the audio blind. That gives the reject error rate. Combine it with confirmed advances: false reject rate equals wrong rejects divided by wrong rejects plus correct advances. About 540 audited rejects per stratum gives ±2 points at 95% confidence near 6%.

Why do AI phone screeners mishear availability?

AI phone screeners mishear availability because phone audio is narrowband and answers are short. "Weekends, no problem" clipped after "no" reads as a refusal. Endpointing cuts turns at pauses, noise lowers word confidence, and extraction prompts force a yes or no. Spoken time ranges like "two to ten" add ambiguity about a.m. and p.m.

Should a knock-out question reject an unclear answer?

A knock-out question should not reject an unclear answer. Use three states: yes, no and unclear. Low word confidence, hedges, ranges, language switches and clipped negations should route to unclear. The agent then reads the answer back once. A second unclear goes to human review. Only a confirmed no should trigger a reject.

How do you test an AI phone screener in Spanish?

Test an AI phone screener in Spanish with matched-pair calls. Speak the same qualified answers in English, in Spanish and in mixed English and Spanish. Compare dispositions against the English baseline. Include short answers like "sí" and certification names said in English inside Spanish sentences. Any flip on a knock-out question is a defect to fix.

Asking age in an AI phone screen carries risk, so ask only whether the candidate meets the minimum age. The EEOC says the ADEA does not specifically prohibit age questions but scrutinizes them. Some roles have legal floors, such as federal limits on forklift work for 16- and 17-year-olds. This is not legal advice.

Does a hang-up mean the candidate is not interested?

A hang-up does not mean the candidate is not interested. Hourly applicants often call from buses, shop floors and break rooms where calls drop. Map early hang-ups to an incomplete status, then retry or send a callback link. Never map them to not interested or no-show, because both close the application.

The bottom line

An AI phone screener's most costly errors are good hourly workers rejected with no error logged. Add an unclear state, read back the deciding answers, and audit rejects from the audio, and you will find and fix false rejects before your employers feel them.

Related Articles