Screen 115 job candidates with parallel agents
We ran 125 AI agents in parallel to screen 115 candidates against a consistent rubric, producing a ranked, reasoned, and fully auditable shortlist for $65. Task: We ran 125 AI agents in parallel to screen 115 candidates against a consistent rubric, producing a ranked, reasoned, and fully auditable shortlist for $65. This post is about a small experiment: hooking our Notion hiring database up to Claude Code and running a dynamic workflow that dispatches 100+ AI agents in parallel to read resumes, score them against a consistent rubric, and cross-check each other's judgments, producing a ranked shortlist we could act on immediately. The whole thing cost $65 and ran in about 13 minutes across 115 candidates. But more interesting than the cost were the methodological questions it surfaced: when to use a fleet of agents instead of one, how to prevent AI score inflation, and what it means to encode "excellence" into something a machine can actually execute. 1. What Is a Dynamic Workflow Let's start with the concept, because it's the foundation everything else rests on. Most AI use today follows a prompt-and-reply pattern: send a message, get an answer, iterate. This works well for one-off tasks, but it gets awkward when you need to do the same thing to 115 objects: you're either copying and pasting 115 times, or asking a single conversation to process them sequentially, which gets slower and noisier as it goes. A dynamic workflow is a different model: code that orchestrates a fleet of AI agents. Its defining properties are: Deterministic control flow + AI judgment, kept separate. Loops, dispatch, aggregation, and quota enforcement are handled by code (reproducible, auditable); subjective judgment (is this resume strong enough?) is delegated to AI agents. Fan-out parallelism. A single parallel(...) call can spin up dozens or hundreds of independent agents simultaneously, each working on its own slice without contaminating the others. Multi-stage pipelines. The output of one stage feeds the next. Code handles filtering, ranking, and deduplication between stages. Structured output. Each agent returns JSON conforming to a schema, not freeform chat text, so downstream code can consume it directly. An analogy: a single conversation is like consulting one expert for an afternoon. A dynamic workflow is like assembling a 125-person review panel, issuing each member a rubric and one candidate file, running all reviews in parallel, cross-checking the top results, and aggregating into a ranked list, with the assembly, dispatch, and aggregation logic baked into the script. Resume screening is a natural fit for this pattern: high volume, uniform criteria, subjective judgment, fairness requirement. For a deeper technical introduction: A harness for every task: dynamic workflows in Claude Code 2. The Hiring Workflow: Goals and Design The problem We had a concrete pain point: over a hundred candidates sitting in "initial review" status in our Notion hiring database, with no realistic way to process them manually without standard drift: the bar you apply at resume 80 is almost never the same as the bar at resume 5. I wanted to test one specific idea: can we abstract "what great looks like in the AI-agent era" into a machine-executable, human-readable rubric, and then run all 115 candidates through it at the same calibration? The goal was explicitly not to have AI make hiring decisions. The goal was: Compress 115 candidates into a ranked, justified shortlist so human attention goes to the people who actually deserve it. Make the criteria transparent and iterable: if the output is wrong, you change a Markdown file, not code or instinct. Three key design decisions Evaluation criteria live in standalone Markdown files (criteria/), not embedded in the workflow code. Anyone, including non-technical teammates, can change screening behavior by editing these files: These four dimensions are our "excellence standard for the AI-agent era, v0.1". The thinking behind each: AI-native capability carries the highest weight (35%). In 2026, whether someone genuinely uses agentic tools like Claude Code as a core part of how they work is a major productivity divider. We specifically penalize keyword-stuffing: listing "Claude Code" without verifiable project evidence is treated as a weak signal. Hard evidence of problem-solving (30%). We look for "scar tissue": things built independently from scratch, narratives of overcoming real obstacles, not tutorial-level reproductions.; tools: Claude Code. Human role: The original post does not say how a person stayed involved.; limitations: The source is a self-reported blog post, so metrics like cost and runtime are unverified. The workflow requires a Notion database and Claude Code access. High costs are driven by cache writes for parallel agents. The strict rubric resulted in zero top-tier candidates, suggesting the thresholds may be too high for the current pool. Human approval is critical before any hiring decisions, as AI should not make final selections..
Tools
Published on Agent Work Atlas:
Overview
We ran 125 AI agents in parallel to screen 115 candidates against a consistent rubric, producing a ranked, reasoned, and fully auditable shortlist for $65.
Workflow
We ran 125 AI agents in parallel to screen 115 candidates against a consistent rubric, producing a ranked, reasoned, and fully auditable shortlist for $65. This post is about a small experiment: hooking our Notion hiring database up to Claude Code and running a dynamic workflow that dispatches 100+ AI agents in parallel to read resumes, score them against a consistent rubric, and cross-check each other's judgments, producing a ranked shortlist we could act on immediately. The whole thing cost $65 and ran in about 13 minutes across 115 candidates. But more interesting than the cost were the methodological questions it surfaced: when to use a fleet of agents instead of one, how to prevent AI score inflation, and what it means to encode "excellence" into something a machine can actually execute. 1. What Is a Dynamic Workflow Let's start with the concept, because it's the foundation everything else rests on. Most AI use today follows a prompt-and-reply pattern: send a message, get an answer, iterate. This works well for one-off tasks, but it gets awkward when you need to do the same thing to 115 objects: you're either copying and pasting 115 times, or asking a single conversation to process them sequentially, which gets slower and noisier as it goes. A dynamic workflow is a different model: code that orchestrates a fleet of AI agents. Its defining properties are: Deterministic control flow + AI judgment, kept separate. Loops, dispatch, aggregation, and quota enforcement are handled by code (reproducible, auditable); subjective judgment (is this resume strong enough?) is delegated to AI agents. Fan-out parallelism. A single parallel(...) call can spin up dozens or hundreds of independent agents simultaneously, each working on its own slice without contaminating the others. Multi-stage pipelines. The output of one stage feeds the next. Code handles filtering, ranking, and deduplication between stages. Structured output. Each agent returns JSON conforming to a schema, not freeform chat text, so downstream code can consume it directly. An analogy: a single conversation is like consulting one expert for an afternoon. A dynamic workflow is like assembling a 125-person review panel, issuing each member a rubric and one candidate file, running all reviews in parallel, cross-checking the top results, and aggregating into a ranked list, with the assembly, dispatch, and aggregation logic baked into the script. Resume screening is a natural fit for this pattern: high volume, uniform criteria, subjective judgment, fairness requirement. For a deeper technical introduction: A harness for every task: dynamic workflows in Claude Code 2. The Hiring Workflow: Goals and Design The problem We had a concrete pain point: over a hundred candidates sitting in "initial review" status in our Notion hiring database, with no realistic way to process them manually without standard drift: the bar you apply at resume 80 is almost never the same as the bar at resume 5. I wanted to test one specific idea: can we abstract "what great looks like in the AI-agent era" into a machine-executable, human-readable rubric, and then run all 115 candidates through it at the same calibration? The goal was explicitly not to have AI make hiring decisions. The goal was: Compress 115 candidates into a ranked, justified shortlist so human attention goes to the people who actually deserve it. Make the criteria transparent and iterable: if the output is wrong, you change a Markdown file, not code or instinct. Three key design decisions Evaluation criteria live in standalone Markdown files (criteria/), not embedded in the workflow code. Anyone, including non-technical teammates, can change screening behavior by editing these files: These four dimensions are our "excellence standard for the AI-agent era, v0.1". The thinking behind each: AI-native capability carries the highest weight (35%). In 2026, whether someone genuinely uses agentic tools like Claude Code as a core part of how they work is a major productivity divider. We specifically penalize keyword-stuffing: listing "Claude Code" without verifiable project evidence is treated as a weak signal. Hard evidence of problem-solving (30%). We look for "scar tissue": things built independently from scratch, narratives of overcoming real obstacles, not tutorial-level reproductions.
Reported result
The workflow completed in approximately 13 minutes at a cost of $65. It produced a ranked shortlist with 6 candidates in the 'Qualified' (B) band, 26 in 'Average' (C), and 83 in 'Not recommended' (D). No candidates reached the 'Strong' (A) or 'Exceptional' (S) tiers due to strict scoring thresholds. Adversarial review successfully reduced inflated scores for top candidates by identifying lack of verifiable evidence or originality.
Human role
The original post does not say how a person stayed involved.
Limitations
The source is a self-reported blog post, so metrics like cost and runtime are unverified. The workflow requires a Notion database and Claude Code access. High costs are driven by cache writes for parallel agents. The strict rubric resulted in zero top-tier candidates, suggesting the thresholds may be too high for the current pool. Human approval is critical before any hiring decisions, as AI should not make final selections.
Try it
I need to screen [replaceable number] candidates from my [replaceable source, e.g., Notion/CSV] hiring database using Claude Code. Create a dynamic workflow that dispatches parallel agents to score each resume against a rubric stored in [replaceable path] Markdown files. The rubric must include weights for AI-native capability, problem-solving evidence, and foundation. Instruct agents to verify GitHub links for evidence. After scoring, run a second pass with adversarial agents to challenge high scores. Aggregate results deterministically to produce a ranked shortlist in [replaceable output format]. First, run this workflow on a sample of 5 candidates and show me the JSON output and reasoning for confirmation before processing the full list. Do not send any emails or update statuses without my explicit approval.
Source reports are not independently verified. Publication date is the catalog publication date, not the original article date.