Magnum HR Agent
AI for mass hiring in retail across hundreds of stores. The agent runs the entire first hour of recruiting on its own — the interview, the nearest-store match, the trial-shift booking — right inside WhatsApp, in Russian and Kazakh.
- 01 An application from the internal HR system → a WhatsApp conversation within minutes.
- 02 A custom geocoder finds the nearest store from any address.
- 03 Every update is checked on real questions, so quality never slips.
Too many candidates, not enough recruiters.
The internal HR system brings in a steady flow of applications. The HR team cannot reply to everyone in time — part of the pipeline drops out before the first contact. Candidates wait, get an offer from a competitor, and the role stays open.
On top of that, every candidate has to be sent to a specific store. Doing it by hand for a network this size is slow and accidental: the right person ends up assigned to a store on the other side of the city.
- Applications arrive faster than recruiters can process them.
- The same opening questions eat hours of HR time every day.
- Stores are assigned by hand — the closest one to the person is rarely found.
And every one brings a pile of questions.
The first hour of recruiting, automated end to end.
An application lands in the internal HR system. From there the agent runs the candidate itself: it messages on WhatsApp as the recruiter, references the exact vacancy the person applied to, runs the interview, matches the nearest store, states precise terms, and books a paid trial day. The recruiter joins an already-triaged candidate, not a raw stream.
- 01
Pick up the application
An application lands in the internal HR system, and the agent opens a WhatsApp conversation within minutes — in Russian or Kazakh, down to mixed speech.
- 02
Run the interview
Not a three-field form. The agent asks about age and education, walks through the terms for the specific role and explains the duties — the way a live recruiter would.
Employment & paySchedule & shiftsMeals · health card · uniformTrainingAdvance before paydayRules for minors - 03
Find the nearest store
An address in any form — district, microrayon, intersection — becomes coordinates. The agent offers 2–3 nearest stores with an open role and the distance in kilometres.
- 04
State terms and book the trial
For the chosen store the agent states the exact salary and bonus, answers questions, and books the candidate onto a paid trial day: time, what to bring, dress code.
- 05
Hand off to the recruiter
The status is written back to the internal HR system. The recruiter sees a triaged candidate with ready answers and a proposed store — and takes the next step.
- 06
Keep it editable
Through the admin panel HR changes vacancies, salaries, priority branches and routing rules without engineers.
A geocoder we had to build ourselves.
The "address" field means anything: a district, a microrayon, a village, a piece of a street, an intersection, a slang name. We started on an open geocoder — but branch addresses with house numbers broke the parse, and it did not recognise districts or intersections. We moved to Yandex Maps: it has the most accurate data for the region.
On top sits our own layer. The agent fills in context (the city, "the intersection of …"), asks clarifying questions, computes the distance to branches, and offers only stores with an open mass-hiring role. Branch, salary and vacancy data syncs from the internal HR system once a day and is cached locally.
Agent quality is not "sounds smart" — it is a measurable number.
You cannot swap the model or the prompt and just promise it did not get worse. So the agent has evals — regression tests for the LLM. We read real conversations, build a golden dataset with reference answers out of the failures, and a separate judge model scores every answer against clear criteria. The dataset runs on every change — that is how we compared model versions on one set — and we work the misses until they are gone.
- 01 Read the conversations We read real chats and label the first mistake in each.
- 02 Golden dataset Reference answers: 100 questions in Russian and Kazakh.
- 03 LLM judge A separate model scores the answer against criteria, aligned to human labels.
- 04 Run on every change n+1: we feed the history and the next candidate line, comparing models and prompts.
- 05 Regressions → 0 We hold passed tests at 100%; a score drop blocks the release.
And we do not measure a single match against the reference. A separate judge model scores every answer on criteria — tone, correctness of terms, naturalness; we check whether the agent walked the candidate down the funnel to a trial booking and called the right tools (geocoder, store search). The judge itself is under control: we check it against manual labels before trusting it. Plus stability on repeats, holding regressions at 100%, and the cost of a run — in time and money.
What changed
Candidates get a reply in minutes
The first conversation starts before the application goes cold. Fewer people drop out between applying and the interview.
The first hour runs without a recruiter
The interview, the terms, the store match and the trial-day booking — the agent closes them itself, in two languages. The recruiter joins the decision, not the chat.
The store actually fits
Geocoding turns "nearest store" into a property of the system. People are offered what is convenient to travel to.
We change the model and prompts without fear
A new prompt or model goes through the golden dataset first. Quality is a measurable property, not a hope.
Hiring at the scale where every reply has to be near-instant?
We help retail and operations teams put the first hour of recruiting on rails: an agent in the chat, an admin panel for HR, and the routing logic that puts each candidate in front of the right role.