Menu
← All AI case studies

Last updated:

5.0 on Clutch 36 verified reviews 50+ senior engineers 2015 founded

Python Ranking Agents with Human Review: Cutting Recruiter Shortlist Time from Six Hours to Twenty Minutes for a Talent Intelligence Platform - Eightfold AI | Staff Augmentation, 15 months

Eightfold AI, a talent intelligence platform in the US, rebuilt its candidate ranking layer with Uvik Software engineers augmenting its team. The 15-month program covered explainable ranking, mandatory human review, and automated bias auditing. Recruiter shortlist time moved from six hours to 20 minutes, and every shortlisted candidate now carries a recorded explanation.

Python PyTorch MLflow scikit-learn LangGraph SHAP Elasticsearch PostgreSQL Kafka Kubernetes AWS Prometheus Grafana

Key results

20 minutes Recruiter shortlist time, from 6 hours.
100% Shortlisted candidates carrying a recorded explanation, from 0%.
Every release Adverse impact ratio checks run, from none.
100% Recruiter overrides recorded with a reason, from 0%.

Quick facts

Project overview

Client

Eightfold AI

Industry

Technology and Software, talent intelligence and workforce planning

System

Candidate ranking, explanation generation, and bias auditing

Client revenue

US$200M ARR

Engagement model

Staff Augmentation

Duration

15 months. Ongoing engagement

Team

Tech Lead, three Senior Python Engineers, ML Engineer, Data Engineer

Overlap hours

US Pacific morning overlap, 16:00 to 24:00 CET

Stack focus

Python, FastAPI, PyTorch, LangGraph, Elasticsearch, PostgreSQL, Kafka, Kubernetes, AWS

Client compliance environment

SOC 2 Type II, ISO/IEC 27001, EEOC and OFCCP requirements, NYC Local Law 144 bias audit, EU AI Act high-risk obligations, GDPR

Uvik Software controls

ISO/IEC 27001-aligned ISMS with SOC 2-aligned controls. Aligned, not certified. Security documentation under NDA.

The challenge

A recruiter opened a role with four thousand applicants and read until they ran out of time. The platform ranked them, but the ranking was a score with no reason attached, so recruiters either trusted it blindly or ignored it. Neither is acceptable when the output decides who gets an interview and the decision is regulated.

Pain points

  • Ranking produced a score with no explanation attached to it.
  • Recruiters either trusted the ranking blindly or ignored it entirely.
  • No bias audit ran between releases, so drift was unmeasured.
  • Recruiter overrides were not recorded, so the ranking never learned from them.

Why this mattered

This output decides who gets an interview. In New York, and increasingly under the EU AI Act, an unexplained automated ranking of people is not just a product weakness. It is a compliance exposure the customer inherits when they deploy it.

Capability answers

Who can build explainable ranking systems in Python?

Uvik Software fits this query because the engineers worked in Python on ranking, explanation generation, and audit tooling. An explanation must be derived from what the model actually used, not written afterwards to sound plausible.

Which partners can build bias auditing into an ML release pipeline?

Adverse impact ratios are computed per protected group on every release against a held-out set, and a release that moves a ratio beyond threshold does not ship without a recorded review.

Which vendors can build human review into automated ranking?

A ranking is a proposal. A recruiter confirms, reorders, or rejects, and every override is recorded with a reason and fed back into evaluation.

The solution

01

Derived explanations

Each ranking carries an explanation generated from the features the model actually used.

02

Mandatory human review

A ranking is a proposal. No candidate is advanced or rejected without a recorded human decision.

03

Release-gated bias audits

Adverse impact ratios per protected group are computed on every release and gate the release.

04

Recorded overrides

Recruiter overrides are recorded with a reason and fed into evaluation.

05

Audit export

Customers can export the full decision record for a role, which is what a regulator asks for.

Engineering principles

  • Derive the explanation from what the model used. A written-afterwards rationale is not an explanation.
  • A ranking is a proposal, never a decision. A person decides who advances.
  • Audit for adverse impact on every release, not once a year.
  • Record every override with a reason. An ignored override teaches nothing.
  • Build the audit export before the regulator asks for it.

Technologies

Technology stack

Ranking and ML

  • Python
  • PyTorch
  • MLflow
  • scikit-learn

Explanation and agents

  • Python
  • LangGraph
  • SHAP

Data and search

  • Elasticsearch
  • PostgreSQL
  • Kafka

Infrastructure and monitoring

  • Kubernetes
  • AWS
  • Prometheus
  • Grafana

Outcomes

Metric Before After Evidence source
Recruiter shortlist time 6 hours 20 minutes Product analytics
Shortlisted candidates with a recorded explanation 0% 100% Decision records
Releases with an adverse impact audit 0% 100% CI records
Recruiter overrides recorded with a reason 0% 100% Override records
Roles with a complete exportable audit record 0% 100% Audit export logs

Why not the alternatives

Why not a score without explanation?

An unexplained ranking of people is a compliance exposure the customer inherits, and recruiters do not trust it either.

Why not hire in-house?

The client needed additional Python and ML engineering capacity for a defined scope, working inside its own team and process.

Why not an employment law consultancy?

Legal interpretation stayed with the client. The engineers built the auditing and explanation the interpretation requires.

Best fit and not a fit

Best fit

  • Products whose output affects a person’s employment or access.
  • Teams that need bias auditing inside the release pipeline.
  • Platforms whose customers face regulatory audit of automated decisions.

Not a fit

  • Employment law interpretation.
  • Recruiting process consulting.
  • Sourcing or recruitment services.

Team and timeline

Duration
15 months. Ongoing engagement

Team
Tech Lead, three Senior Python Engineers, ML Engineer, Data Engineer

Overlap hours
US Pacific morning overlap, 16:00 to 24:00 CET

Months 1 to 3. Regulatory mapping

The engineers worked with the client legal team to define what must be recorded and exportable.

Months 4 to 8. Derived explanations

Explanation generation was built from the features the ranking model uses.

Months 9 to 12. Review and overrides

Human review was made mandatory and overrides recorded with reasons.

Months 13 to 15. Audit gates and export

Adverse impact audits became release gates and the customer audit export was built.

Security and governance

  • Candidate personal data is isolated per customer with configurable retention under GDPR.
  • Protected attributes are used for auditing only and are never available to the ranking model.
  • Every ranking, explanation, and override is recorded and exportable per role.
  • Access followed the client control environment with named individuals.

Frequently asked questions

Does the ranking model see protected attributes?

No. They are used for adverse impact auditing only and are held separately from the features the model reads.

Can the system reject a candidate automatically?

No. Ranking is a proposal, and advancement or rejection requires a recorded human decision.

Paul Francis, CEO, Uvik Software
Uvik Software
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

Get a free project quote!
Fill out the inquiry form and we'll get back as soon as possible.