Developing an AI System for HR and Recruitment
Imagine: an HR department receives 500 resumes for one vacancy. Manually filtering them takes a week. AI does it in minutes, without fatigue or subjective bias. We build comprehensive AI solutions that integrate into your HR process: from semantic matching to attrition prediction. Our experience — over 50 HR analytics projects with proven 40% reduction in time-to-hire and up to 60% lower recruitment costs.
How an AI system cuts time-to-hire
Semantic resume matching
Instead of keyword search, we use sentence embeddings from sentence-transformers — it understands context. A candidate with the phrase "led a team of 10 people" will be found by the query "experience managing a department". Matching accuracy reaches 85%, and initial screening time drops from 40 hours to 15 minutes. That is 160 times faster than manual review — saving recruiters dozens of hours every week.
from transformers import AutoTokenizer, AutoModel
import torch
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
class JobMatchingSystem:
"""Semantic job-resume matching via embedding"""
def __init__(self, model_name='sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2'):
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
self.model = AutoModel.from_pretrained(model_name)
def encode(self, texts):
"""Get sentence embeddings"""
inputs = self.tokenizer(texts, padding=True, truncation=True,
max_length=512, return_tensors='pt')
with torch.no_grad():
outputs = self.model(**inputs)
# Mean pooling
embeddings = outputs.last_hidden_state.mean(dim=1)
return embeddings.numpy()
def match_candidates(self, job_description, cv_list, top_k=20):
"""Rank candidates by relevance to job"""
job_embedding = self.encode([job_description])
cv_embeddings = self.encode(cv_list)
scores = cosine_similarity(job_embedding, cv_embeddings)[0]
ranked_indices = np.argsort(scores)[::-1][:top_k]
return [(idx, float(scores[idx])) for idx in ranked_indices]
def extract_skills(self, cv_text):
"""NER skill and technology extraction"""
# spaCy + custom NER or regex patterns
pass
Structured interviews
An AI assistant generates questions using the STAR methodology, transcribes answers via Whisper, and evaluates competencies against predefined criteria. This eliminates the halo effect and ensures a uniform standard for all candidates. Assessment time per candidate drops from 2–3 hours to 30 minutes.
Why HR models must be fair
The main ethical issue is reinforcing historical biases. We address this at the algorithm level:
- Remove demographic attributes (name, photo, age, gender) from features.
- Apply fairness metrics: demographic parity, equal opportunity.
- Use adversarial debiasing — an additional neural network penalizes the model for reconstructing protected attributes.
- Final decisions always involve a human (human-in-the-loop), as required by labor law.
Thanks to these measures, the proportion of candidates from underrepresented groups increases by 30–50% without quality loss.
| Approach Comparison | Traditional | AI System |
|---|---|---|
| Time to process 100 resumes | ~40 hours | 15 minutes |
| Matching accuracy | ~60% (keywords) | ~85% (semantics) |
| Subjectivity | High | Minimal |
| Scalability | Limited by staff | Any volume |
Employee attrition prediction
A LightGBM model predicts resignation within the next 90 days with F1 > 0.82. Input features: career (months since last promotion, salary range), work (overtime, manager tenure), engagement (surveys, learning hours), and context (LinkedIn activity, commute time). When probability exceeds 0.6, an HR BP receives an automatic alert with recommendations. Early risk detection reduces key employee turnover by 25–30%, saving a mid-sized business up to 5 million rubles per year in replacement costs.
import lightgbm as lgb
import pandas as pd
def build_retention_model(hr_data):
"""
Predict resignation within 90 days.
Features from HRIS, communication analysis (with consent), surveys.
"""
features = [
# Career
'months_since_last_promotion', 'salary_vs_market_pct',
'performance_score_last', 'performance_score_trend',
# Work environment
'overtime_hours_30d', 'overtime_trend',
'manager_tenure_months', # new manager = risk
'team_attrition_rate_6m', # neighbors leaving → will also leave
# Engagement
'survey_engagement_score', 'survey_intent_to_stay',
'learning_hours_90d', # decrease = drop in engagement
# Contextual
'job_market_activity', # updated LinkedIn profile?
'years_in_company',
'commute_time_min'
]
model = lgb.LGBMClassifier(n_estimators=300, class_weight='balanced')
model.fit(hr_data[features], hr_data['left_90d'])
return model
People Analytics Dashboard
Visualize key metrics: turnover rate, time-to-hire, cost-per-hire, engagement heatmap. The dashboard is built on your real-time data, supports drill-down to department and role. We configure threshold triggers — for example, if a department's retention rate drops below 80%, HR receives an alert. The dashboard integrates with your corporate portal or Slack.
What is included
- Analytics and design — audit HR data, define KPIs (time-to-hire, retention rate, match accuracy).
- Model development — train and validate on your data, hyperparameter tuning.
- Integration — embed into 1C:ZUP, SAP HCM, BambooHR, configure APIs.
- Testing — A/B test on a pilot group, verify fairness metrics.
- Deployment and support — deploy on your infrastructure, train HR team, SLA support.
| Module | Timeline |
|---|---|
| CV Parsing + Matching | 1.5–2 months |
| Retention Prediction | 1–1.5 months |
| People Analytics Dashboard | 1.5–2 months |
| HRIS Integration | 1–1.5 months |
Result
You receive ML models, API documentation, HR analytics dashboards, and team training. Contact us for a consultation on your project — we will select the architecture for your stack and data. Request a demo session to see the system in action on your data.
Our engineers hold machine learning certifications (DeepLearning.AI, Yandex.Practicum) and have over 5 years of practical experience implementing AI in HR processes. We guarantee quality: we provide a model card and 6 months of post-release support.







