All projects

Agentic AI · Workforce planning

Talent Estimation Agent

Validate talent requests from a WBS, with numbers you can trace.

Role
Author & developer
Year
2026
Status
Live · open source (MIT)
Talent Estimation Agent: FTE summary screen
  • 6specialised agents
  • 2independent estimation methods
  • 94%test coverage
  • 0files or keys stored on the server

Overview

Why it exists, and what it does

The problem

Validating a talent request means reading a WBS, deciding which roles every work package needs, and estimating FTE per role. Done by hand it is slow, and the numbers are hard to trace back to a reason.

The approach

An agentic system reads the WBS and the request document, decides the roles per work package with a written reason, estimates FTE with two independent methods, and reviews its own output before handing a workbook to a person.

Design principle

Language models judge and explain. Deterministic code calculates.

Every number comes from a tested calculation engine, never from the model. That keeps the results repeatable and lets a reviewer trace each figure back to an input and a reason.

Walkthrough

Don't just read about it. See each screen.

10 real screens from the app. Pick a tab to see what each one is for.

Start here screen
1/10 · Start here

A plain-language start page: a sample result card, the three steps, and a quick checklist for the model, the capability catalog and the WBS file. A demo with fictional data runs without any API key.

Screenshots are from the built-in demo mode, which uses a fictional project.

How it works

Three steps for the user, rules you can read

  1. 1

    Upload

    A WBS in Excel, plus optional request documents (PDF, Word, text) and meeting notes.

  2. 2

    Agents assess and calculate

    Each item is judged per role, then calculated with Use Case Points and bottom-up estimation. Disagreements are re-checked.

  3. 3

    Review and export

    Check and correct any flagged rows, approve the result, then download the Excel workbook and a draft reply to the requester.

How the numbers are calculated

Use Case Points (UCP)

  1. Each WBS item per role is classed Simple (5), Average (10) or Complex (15) from the number of steps involved.
  2. Roles that only support an item count for part of it (default 25%).
  3. Actor weights, then technical (TCF) and environmental (EF) factors. Ratings start at 3 and change only with evidence.
  4. Points are multiplied by hours per point (15 by default), then converted with hours per day, days per month and project length into average FTE.

Based on Karner (1993), Resource estimation for objectory projects.

Bottom-up

  1. Working days for each item come straight from the WBS schedule.
  2. The agent proposes a fair FTE allocation for the workload, following allocation guidance rather than copying the requested headcount.
  3. Person-days = working days × allocation × headcount, summed per role and converted into FTE.

Both methods run separately. When they agree within ±15% the figure is more reliable; when they differ, the Reviewer Agent re-checks the row.

Architecture

Six agents, each with one job

Every language-model step has a rule-based fallback, which also powers the demo mode and the tests.

  1. Intake
  2. Estimator
  3. Reviewer re-judges up to 2×
  4. Augmentation optional
  5. Report
  • Code

    Orchestrator

    Controls scope, ordering, retries, review rounds and the run trace.

  • Code + LLM

    Intake Agent

    Reads the WBS in any reasonable layout (leaf work packages only) and the requested FTE per role from the request document.

  • LLM + code

    Estimator Agent

    Decides primary or supporting role, UCP class and FTE allocation per item with a written reason, then calculates both methods.

  • Code + LLM

    Reviewer Agent

    Compares the two methods and sends rows that disagree back for another judgement, up to two rounds. Flags gaps, overlaps and work that appears only in meeting notes.

  • LLM + code

    Augmentation Agent

    Optional. Maps tasks to capabilities and shows an AI-assistance scenario without touching the baseline numbers.

  • LLM + code

    Report

    Drafts the reply message and fills the Excel workbook with live formulas.

Stack

Agents
Python 3.12 · LangGraph · LangChain chat models
Contracts
Pydantic v2, structured output with schema validation
API
FastAPI on Vercel Python Functions (stateless)
Excel
openpyxl, formulas recalculated by Excel on open
UI
Next.js · React · Tailwind CSS · Recharts (Indonesian interface)
Evaluation
Kedro pipeline (offline)
Tooling
uv · Ruff · mypy · pytest · pre-commit · GitHub Actions
Models
Gemini, Claude, OpenAI, Azure OpenAI or any OpenAI-compatible gateway, with custom headers and token limits

Quality & privacy

Built to be checked, and to forget

Checked on every push

  • Ruff lint and format
  • mypy type checks
  • pytest with 94% coverage
  • Excel formulas recalculated in LibreOffice and compared with the engine
  • Tests for the model client: endpoints that refuse certain settings, and budget or quota errors that must not be retried
  • Kedro evaluation pipeline
  • Dependency lock check with uv
  • TypeScript checks on the UI
  • Next.js production build

Documented along the phases of the Unified Process (planning, analysis, design, implementation), following Dennis, Wixom and Tegarden, Systems Analysis and Design.

Privacy by design

  • No database, and the server writes no files. Every request stands alone.
  • Uploaded files are parsed in memory; the API key stays in browser memory.
  • E-mail addresses, phone numbers and 16-digit ID numbers are masked before text reaches a model.
  • Results live in the browser tab and disappear when it closes.
  • The repository holds no real project data. The demo project is fictional.

Want to see it run?

The demo works without an API key. It runs the agents on a fictional project in about 15 seconds.

Let's Connect

Let's build something meaningful together.

Let's connect to discuss how AI and innovation can drive real-world impact.

“AI and innovation for real-world impact.”