Skip to main content
Elaxion

Using AI to turn 1M+ employment records into a searchable map of who can do what

Staffing & Workforce

What shipped

  • AI pipeline reads and classifies new employment records automatically, every fifteen minutes
  • Cut evidence noise 76%, from 218,087 records to 52,542, across 9,856 workers
  • Full pipeline runs end to end in 35 seconds
  • Roughly $0.50 per day in model cost to keep the capability map current
  • Removed 517 incorrectly credited qualifications caught by verification

The situation

The company is a staffing firm. It places skilled workers with client companies that need them on site, often within a day or two of asking. A client describes the job and the qualifications it requires; a recruiter then has minutes, not hours, to find the right person among thousands on the roster.

The system they had could answer who is available. It could not answer who can actually do this job. So recruiters filled requests from memory and personal relationships — which works until the request is unusual, the office is busy, or the person who knew everybody retires.

How we framed the problem

The company was not short of data. It held roughly a million+ employment records — work history, past assignments, résumés, and everything recruiters had written down about how placements went. What it lacked was any structured record of capability.

That distinction is the whole problem. Knowing a worker was placed at a particular site for six months tells you where they were, not what they demonstrated. The capability was described, in plain language, scattered across a million records nobody could search.

So we made capability something the system understands directly. There is an official list of skills, tools and qualifications. There is the wording that actually appears in the records, which is rarely the official term. There is the link between the two, with a confidence score. And critically, the source record stays attached — so when the system says a worker can do something, it can show the specific record that proves it, dated and attributed. A recruiter putting their name on a placement needs to see why, not just be told.

We kept formal qualifications separate from skills on purpose. A qualification is a fact — an issuing body granted it or it did not. A skill is an inference drawn from evidence. Blurring the two would let a guess wear the authority of a credential, and in work where the wrong qualification on the wrong site is a safety and liability problem, that is not an acceptable failure mode.

The system we built

An automated pipeline that reads every new employment record as it arrives and keeps the capability map current without anyone maintaining it by hand.

It runs inside the client's existing data warehouse rather than on servers we would have to build and operate. That kept costs down and, more importantly, meant their workforce data never left their own environment.

Every fifteen minutes it picks up whatever is new, works out which official skills the language is describing, and updates each worker's profile. The automation is deliberately layered so that AI is used where it earns its cost and nowhere else. Clear matches resolve automatically with no model call at all. Genuinely ambiguous wording — and only that — goes to an AI model to judge. Anything still uncertain lands in a queue for a person to decide, rather than being guessed at and quietly written into someone's record.

That review queue is what makes the automation durable. When a reviewer makes a call, the system learns it immediately, so the same wording is understood the next time it appears and never reaches a human twice. The business improves its own vocabulary without an engineer in the loop. And before any large batch runs, the pipeline reports what it will cost, so nobody discovers the bill afterward.

What was hard

The system was matching against the wrong thing. When it met unfamiliar wording, it asked the AI to expand it into a formal description, then compared that description against the official list. The effect was that a common phrase stopped matching the entry named after it, and lost out to a related but different one. The fix was to compare both the original wording and the expansion, and keep whichever scored better.

One overly strict filter distorted thousands of profiles. A rule about which kinds of terms could match which kinds of entries funnelled 177 different phrases into a single equipment qualification, crediting 163 workers with something they had never claimed. The number looked like a data problem and was not — the data was fine, the filter was wrong. Finding that meant tracing the count back through every stage rather than trusting the output.

We measured the AI instead of assuming it. Running the same 25 terms through both paths, the deterministic rules were right 6 times out of 6; the AI judge roughly 2 out of 6. That result changed the design: push work out of the judge, not into it. The AI is now reserved for the genuinely ambiguous middle, which is both more accurate and dramatically cheaper.

Stack

.NET 10, Entity Framework Core over a cloud data warehouse, in-warehouse language models and vector search, React 19, Kubernetes on Azure, GitHub Actions.

Where it stands

The capability map is live and updating on its own. Recruiters search by what a job needs and see ranked candidates with the evidence behind each match. New records feed in continuously, and the review queue gives the business a way to correct the system directly — which matters, because a vocabulary of skills is never finished.

  • AI Engineering
  • Automation
  • Data Platform
All engagements