Skip to content
All work

Case study 02 / 11

Public sector employment

DeliveredClient work · NDA

Explainable AI Talent-Matching Platform for the Public Sector

I led the AI and backend engineering of a talent platform for a public employment program. It builds job-seeker profiles from a CV through a short conversation, tailors resumes without inventing facts, and matches candidates and jobs with clear, explainable scores. It works in English and Arabic and runs in a locked-down, offline cloud environment.

Person

Job-seekers and employers

System

One secure gateway

  • AI

    Profile builder

  • AI

    Resume assistant

  • System

    Job matching

  • System

    Feedback loop

Clear rules decide every score. AI reads documents, holds the conversation and explains.

The challenge

A public employment program needed an AI layer for its job-seeker and employer portals. The existing experience had four problems:

  • Job-seekers filled in long forms by hand, even when they already had a CV.
  • Most existing profiles were largely incomplete.
  • Matches came with no explanation, so neither side could see why a candidate fit a role.
  • Nothing learned from what users liked or disliked.

On top of that, it had to work in English and Arabic, be fair and fully auditable for public-sector use, let each feature be licensed on its own, and be built and deployed in a restricted environment with no public internet access.

What I delivered

Four AI features, each able to run on its own:

  • AI profile builder. Job-seekers bring in their existing record or upload a CV as a PDF, Word file or photo. The AI reads it, then asks one simple question at a time about anything missing, checking every answer as it goes. People can also improve their text with one-click "Write with AI" options.
  • Resume and cover-letter assistant. It builds a resume from the profile, points out weak sections, and tailors it to a specific job without adding anything that isn't true. Automated checks make sure no new facts ever appear.
  • Explainable job matching. Candidates and jobs are scored on clear, configurable criteria, with separate rules for fresh graduates and experienced people. Employers see their best candidates, job-seekers see their best jobs, and both can see why. Candidates are also told which skills they're missing.
  • A feedback loop that learns safely. Likes, dislikes and comments are sorted into clear reasons. The system then makes small, capped adjustments to matching. Changes for one person apply automatically, while changes for everyone need an administrator's approval.

How it works

The rule behind the whole platform is simple: clear rules decide, and AI explains. Scores and rankings come from transparent, tested logic. AI is used for reading documents, holding the conversation and writing explanations. Producing a ranked list doesn't need any AI calls, so it's fast, cheap and repeatable. If the AI ever disagrees with the calculated grade, the calculation wins.

Each feature runs as its own service behind one secure gateway, with its own data. If a feature isn't licensed, the others keep working and tell the user what's available instead.

Key decisions

  • Fair by design. Nationality, gender, age and marital status are never used in scoring.
  • Honest scores. Missing information scores zero instead of a neutral middle value, which nudges people to complete their profile rather than showing inflated matches.
  • Zero trust between services. Each service checks every request on its own, and services never pass a user's login between each other.
  • Always traceable. Every AI output records which model produced it and from what instructions, so any result can be reviewed later.

Built for trust

  • Strong password protection and short-lived logins checked by every service.
  • A user who tries to open someone else's record simply sees "not found", so nothing is revealed.
  • Personal details are removed from system logs, and CV contents are never logged.
  • Uploaded files are checked for what they really are, not just their name.
  • The whole platform can run and be tested with no AI connection at all, which makes it safe to develop and verify.

The results

The program now has AI profile building that starts from an existing CV, resumes tailored to each job without invented facts, two-way matching that both job-seekers and employers can understand, and a feedback loop that improves matching within safe, reviewable limits. The matching produces exactly the results worked through in the program's own business specification.

Under the hoodShow technical details
  • AI: LangGraph conversational agents, Azure OpenAI for text, vision and embeddings, with every AI output checked against a strict format and fixed categories. The AI writes Arabic text while the system's data stays consistent.
  • Matching: a skills taxonomy plus similarity search in PostgreSQL (pgvector) to shortlist candidates before exact scoring, so cost depends on the shortlist, not the size of the database.
  • Secure delivery: I replaced sixteen separate container images with one, which also fixed a hidden bug where a service could run the wrong code. Everything builds fully offline from pre-downloaded packages, and deploys to Azure through Azure DevOps using managed identities with no stored passwords.
  • Data: I connected the program's job-seeker and vacancy systems, rebuilt a skills taxonomy from real data because none was available, and documented missing fields for the program.
  • Quality: about 1,200 automated tests, strict type checks, and a check that stops the frontend and backend from drifting out of sync.