Inspiration

corporate job opening attracts ~250 applications, and eye-tracking research shows recruiters spend about 7 seconds on the first scan of each resume. Worse: in Harvard Business School's Hidden Workers study, 88% of executives admitted their automated screening filters out qualified candidates because ATS keyword filters can't see that "K8s" means Kubernetes or that "led a 4-person platform team" is leadership. Six-figure hiring decisions are made in seconds, on unverified self-reported claims, with weeks lost to scheduling email ping-pong.

We asked: what if screening wasn't a tool a recruiter operates, but a colleague who does the work and checks in before anything that matters?

What it does

RecruitFlow AI is an AI employee for recruiting teams, not another screening tool. Given a hiring goal, it:

  1. Compiles the job description into a weighted rubric — and if the JD contradicts itself ("Senior" but "2+ years required"), it asks the recruiter one targeted question and remembers the answer.
  2. Screens every applicant with a Plan → Act → Reflect loop. For each candidate it computes evidence gaps and dynamically decides which external tools to consult: GitHub for engineers with a profile, licensed enrichment data when work history is gapped, portfolio analysis for designers. No two candidates take the same path tool selection is part of the reasoning, not a fixed pipeline.
  3. Verifies claims instead of trusting them. Every claim in the evidence graph is labeled Verified / Corroborated / Self-reported / Contradicted. "5 years of React" against a GitHub history that started 14 months ago becomes a cited risk flag never a silent auto-reject.
  4. Scores with an explicit confidence model. Below 80% confidence, it loops back for more evidence or escalates with a specific question instead of guessing.
  5. Pauses at a genuine human control point. The Approval Inbox shows the recommendation, the full evidence chain, risk flags, and the exact pending actions (email preview, calendar slot, ATS stage move). The recruiter can Approve, Override (with a reason the agent learns from), Redirect ("re-score with leadership weighted double"), or Ask ("why is Maria ranked above Raj?").
  6. Then executes: books the interview, sends the email, updates the ATS, notifies the hiring manager idempotently, with a full audit trail. Our operating principle: automate the reading, gate the acting. ## How we built it

We designed the agent as a goal-driven state machine, not a prompt chain: the LLM provides judgment inside each state, while the state machine controls execution, retries, and approval gates. The architecture is modular and failure-tolerant six external tools (document parsing + OCR, GitHub REST API, a licensed people-data enrichment API, Greenhouse/Lever ATS APIs, Resend/SendGrid email, Cal.com scheduling) each sit behind an isolated adapter with schema-validated I/O, retry with exponential backoff, rate limiting, and a circuit breaker. A multi-provider LLM fallback chain plus JSON-schema-validated outputs means a provider outage or a malformed response never corrupts the evidence graph. Our team has shipped production agent systems with these exact patterns before, so Phase 2 is an execution plan, not an experiment.

Challenges we ran into

Avoiding the "linear script" trap. Our first workflow draft was a fixed pipeline. We redesigned it around evidence-gap analysis with a value-of-information heuristic, so the agent genuinely decides what to do next per candidate and can loop, escalate, or halt a batch when it detects a systemic failure pattern (e.g., >30% parse failures = corrupted export, not 75 bad resumes).

  • LinkedIn has no public profile API. Instead of pretending (or scraping against ToS), we designed around licensed enrichment providers and GitHub as the primary verification source which turned a limitation into a compliance feature.
  • Making HITL real, not theater. An "approve" button that people click blindly is not oversight. We added Override-with-reason (which recalibrates the rubric the agent learns each company's hiring taste), Redirect, and evidence-cited Ask, and we refused to add "auto-approve after timeout."

Accomplishments that we're proud of

A reasoning design where the tool sequence is chosen at runtime from evidence gaps demonstrably not a chatbot and not a script.

  • A fairness and compliance posture by design: evidence-only scoring, no inference of protected attributes, human approval on every adverse action, and an append-only audit trail hiring AI is a high-risk category under the EU AI Act, and we treat that as a purchasing requirement, not fine print.
  • An ROI story we can defend: ~25 recruiter-hours per requisition today - ~2 hours, with verification that currently never happens at all.

What we learned

The hard part of autonomous agents isn't calling tools it's knowing when not to (value-of-information), admitting uncertainty (confidence gating, "insufficient evidence" flags), and placing the human gate where judgment adds the most value per second.

  • Error recovery has to be structural (adapters, circuit breakers, idempotency keys), not prompt-level wishful thinking.

What's next for RecruitFlow AI - Autonomous Recruitment Agent

Phase 2 (6 weeks): the orchestrator and evidence graph (weeks 1–2), GitHub + enrichment adapters and the confidence engine (3–4), the recruiter workspace with the live activity stream and Approval Inbox (5), ATS sync, audit log, and a full demo on anonymized resumes (6). Stack: TypeScript/Node.js, React, PostgreSQL + vector store, multi-provider LLM layer. Long-term: rubric memory that compounds across hiring rounds, and distribution through ATS marketplaces.

Built With

Share this project:

Updates

Submission history