---
title: "The Team Recruitment Benchmark: How LFORLA Tests AI Agents"
description: "An agentic benchmark where LLMs query an oracle of anonymous resumes via function calling to assemble teams under budget, seat and skill constraints — scored by a deterministic oracle, no single right answer."
updated: 2026-08-21
url: https://lforla.org/blog/team-recruitment-benchmark-ai-agents
---
# The Team Recruitment Benchmark: How LFORLA Tests AI Agents

**The Team Recruitment benchmark (Oracle) is an agentic evaluation in which an AI model must assemble a hiring team by querying an "oracle" of candidate résumés through function calling, then satisfy budget, seat and skill constraints. It measures whether a model can gather information before deciding — the core skill of any AI agent.**

Unlike multiple-choice benchmarks, there is no single correct team. Each scenario defines required roles, a salary cap, seat limits and candidate profiles; scoring rewards *any* composition that satisfies the constraints.

## How a run works

1. **Scenario**: the model receives a hiring brief (company, mission, number of seats, optional salary budget).
2. **Oracle queries**: using function calling, the model can list candidates (`get_candidates`), inspect individual résumés (`get_candidate`) and read the task context (`get_context`).
3. **Decision**: it must return `{"team": [{"id": ...}, ...], "justification": "..."}` — a JSON team with reasoning.
4. **Scoring** (0–100), deterministic oracle:
   - **Role coverage** — every required role filled?
   - **Skill match** — do chosen candidates cover required skills?
   - **Budget compliance** — total expected salaries within cap?
   - **Seat limit** — exactly the requested team size?
   - **Seniority balance** — healthy senior/junior mix?
   - **Minimum seniority** on critical roles.

## What this benchmark reveals about models

Across runs, three failure patterns dominate:

- **Skipping the oracle**: models that answer without querying candidates routinely miss skill requirements — proof that tool-use discipline matters more than parametric knowledge here.
- **Seat overruns**: weaker models add extra members "to be safe", violating the seat constraint.
- **Budget blindness**: summing salaries correctly is surprisingly common a failure point for small models.

[chart:recruit-equipe:radar]

## Why synthetic scenarios?

All scenarios are synthetic and candidates are anonymous ("Candidate C-01"…) — no real people or companies. This removes training-data contamination: a model cannot have memorized the answer key because none existed on the public internet before publication.

## Try it yourself

```bash
lforla-eval pull recruit-equipe
lforla-eval run --model <your-model>
lforla-eval report
```

The full system prompt is published at [/prompts/recruit-equipe.md](/prompts/recruit-equipe.md).

[benchmark:recruit-equipe]

## Frequently asked questions

**Is Team Recruitment a multiple-choice test?**
No. It is open-ended: many valid teams exist, and the deterministic oracle scores whichever one the model justifies.

**Does it require function calling?**
Yes — that is the point. Models must query the oracle via tools before answering, which tests agentic information gathering.

**What does a good score look like?**
Scores above 85 typically mean all roles covered, budget respected and strong skill matches. Check the [live leaderboard](/leaderboard/recruit-equipe) for current numbers.
