Recruitment / ATS Platform
Full-cycle development of an AI-powered recruitment & ATS platform: intelligent candidate matching, semantic search, and automated pre-screening.

Industries
Country
Estonia
What we did
HR Tech
·Recruitment
·ATS
Stack
Python
·LiteLLM
·Elasticsearch
·Node.js
·Fastify
·Next.js
·Temporal
·RabbitMQ
·PostgreSQL
·Redis
·Docker
·AWS
·Microservices
Client
The client is a fintech company that needed an AI-powered recruitment platform to manage hiring end to end, from candidate tracking to matching, scoring, screening, and recommendations.
Their main challenge was reducing manual candidate review and improving visibility across recruitment and CRM-related workflows.
We developed a custom AI-powered ATS platform with a built-in CRM core, helping recruiters shortlist candidates faster, manage contacts and companies, and make hiring decisions more efficiently.
Key Highlights
5 AI capabilities in one platform — candidate-to-job matching, semantic search, AI scoring & ranking, competency analytics, and automated pre-screening.
AI matching at 90%+ confidence — candidates scored and ranked against each role.
Semantic search engine powering candidate discovery beyond keywords.
Provider-flexible AI layer routed through one interface (LiteLLM).
Challenge
Recruitment is where companies lose the most time to manual work: reading through hundreds of CVs, matching them to roles by hand, and screening candidates one by one. Traditional applicant tracking systems digitize this — they store applications and move them through stages — but they don't make it intelligent. The client wanted the opposite: a platform where the AI does the first-pass reading and matching, so recruiters start from a ranked shortlist rather than a pile of CVs.
Building that as an intelligent platform set several demanding requirements:
- Make matching and search actually intelligent. Candidate-to-job matching and search had to understand meaning and fit — skills, competencies, context — not just match keywords, or the "AI" would be automation in name only.
- Automate screening without losing judgment. AI scoring and pre-screening had to surface and rank strong candidates to save recruiter time, while leaving the hiring decision with people.
- Stay flexible across AI models. The AI capabilities couldn't be hard-wired to a single provider, since models, quality, and costs shift quickly.
- Run hiring as a reliable process. Multi-step hiring pipelines couldn't stall silently between stages, and candidate relationships had to be managed like the high-value connections they are.
Because recruiters run their daily work here, responsiveness and reliable, explainable results mattered from the start: an AI recruiting tool that's slow, or that recommends candidates the recruiter can't trust, doesn't get used.
Solution
We built the platform on a modular, microservices architecture with a dedicated AI layer — each choice made to serve intelligence, speed, and trust:
- Python for the AI/ML layer. The matching, scoring, and competency-analysis logic runs in Python, giving direct access to the ML tooling these capabilities depend on.
- LiteLLM for a provider-flexible AI layer. Routing AI features through LiteLLM lets the platform work across language models through one consistent interface, instead of hard-wiring to a single provider — so the AI can evolve as models and costs change, without rebuilding the feature.
- Meilisearch for semantic candidate search. A dedicated search engine powers semantic search over candidates, so recruiters find people by relevance and fit rather than exact keyword matches — fast, even across large candidate pools.
- AI scoring & automated pre-screening that assist, not decide. The platform scores and ranks candidates against a role and automates first-pass screening, structured to shortlist and surface strong matches while the hiring decision stays with the recruiter.
- A full CRM core for candidate and client relationships. Around the AI, the platform runs a complete CRM — contacts, companies, deals, and activity (calls, meetings, tasks, calendar) with BI reporting — so candidate and client relationships are managed in the same place hiring happens, not a separate tool.
- Durable hiring workflows via Temporal. Multi-step recruitment processes run as durable workflows that complete reliably and recover from failures mid-process, so pipelines don't stall silently between stages.
- RabbitMQ for decoupled, reliable internal flow. Combined with a modern Next.js frontend, Fastify/Node APIs, and Redis caching, the recruiter experience — pipelines, candidate profiles, search — stays responsive under daily use.
Integrations: Dribbble Jobs · Behance · Telegram · LinkedIn · Gmail · Google Drive · OpenAI · Sentry · Anthropic · PostgreSQL + pgvector · Docker Compose.
Process
- Recruitment workflow & data modeling. We mapped the hiring process end to end and modeled candidates, roles, and stages so the platform could support both a clean ATS pipeline and the AI layer on top of it.
- The AI matching & scoring layer — the platform's core value. We implemented candidate-to-job matching, AI scoring, and competency analytics in Python, structured to produce recommendations recruiters can act on and understand.
- Semantic search. We integrated Meilisearch to power meaning-based candidate discovery, tuned to stay fast as the candidate pool grows.
- Provider-flexible AI routing. We routed AI features through LiteLLM so the platform isn't locked to one model provider.
- CRM core & workflow orchestration. We built the contact/company/deal and activity layer with BI reporting — the Candidates and Dashboard views that give recruiters one workspace and an at-a-glance overview — and used Temporal to keep multi-step hiring workflows durable and recoverable.
- Frontend, QA, deployment & support. We built the Next.js recruiter interface, wired services over RabbitMQ, tested, deployed via CI/CD on cloud infrastructure, and continue to support the platform as it evolves.
Result
- Recruitment is intelligent, not just digitized. Candidate-to-job matching, semantic search, AI scoring, and automated pre-screening cut the manual reading and matching that slows hiring and surface stronger candidates earlier — with top matches ranked at 90%+ confidence.
- Recruiters keep the decision. The AI shortlists, ranks, and screens to save time, while hiring judgment stays with people — the balance that makes the automation trustworthy enough to actually use.
- Candidates and clients managed in one place. A full CRM core with reporting keeps every relationship, deal, and activity alongside the hiring pipeline, instead of split across separate tools.
- Built to evolve with AI. Because the AI runs through a provider-flexible layer, the platform can adopt better models over time without being rebuilt.
- A platform built to grow, not be replaced. A modular, microservices architecture lets it scale with candidate volume and add capabilities without a rebuild.
Technologies: Python · LiteLLM · Elasticsearch · Node.js · Fastify.js · Next.js · Temporal · RabbitMQ · PostgreSQL · Redis · Docker · AWS · Microservices.

Related services
Explore more case studies
Explore allHave a product that needs to impress from the first second?
Premium look and speed don't have to compete. ZentixSoft builds sites that convey the full value of your product - and open instantly on any device.



