screener-eval · verdicts · two models

One screener's default was reject. The other's was hold.

The note

Fig. 1 Verdict counts per model across the swap run, both resume conditions pooled.

What does "hold" mean to an LLM resume screener? Across the original and employer-swapped versions of one resume, claude-haiku-4-5 said reject on 136 of its 233 calls, and gpt-5-mini said hold on 157 of its 232.

The full split. claude-haiku-4-5: reject 136, advance 55, hold 42. gpt-5-mini: hold 157, advance 48, reject 27.

The output check passes on every call. All 465 verdicts are legal ones: advance, hold or reject, the three words the prompt allowed.

The words underneath do not mean the same thing. The prompt gave both models the three words and no rule for when to use which. Each model's "hold" means whatever that model meant by it, and nothing in the output says which meaning you got. A pipeline that queues holds for a human and treats rejects as final would handle the same resume very differently depending on which of these two it had plugged in.

Limits. The counts pool both resume conditions from the swap run, 465 of the study's 885 calls, so they are not one clean condition. One resume, two cheap models, a research prompt. The gap between 233 and 232 is one claude-haiku-4-5 call with no gpt-5-mini partner; that it came from a sixth rep I stopped is my reading of the log, while the repo says only that the run was interrupted.

If two models given the same three words settle on different defaults, should your pipeline act on the word at all, or only on the score that comes with it?

Where the numbers live

The run, the verdict table and the per-posting flips

One resume, two cheap models, a research prompt. 465 of 885 calls. The 233 and 232 differ by one leftover call.