Rychagov S. AI Cases
AI Resume Search & Hiring

AI Resume Search & Hiring

Match talent through smart algorithms

Where It's Applied

In my practice, I developed an automated candidate screening system for HR departments searching talent in the labor market. The system automatically analyzes resumes from HeadHunter and other sources, evaluates candidate-to-job-description fit, identifies strengths and weaknesses in each profile, and ranks candidates by relevance. Results display in a unified system collecting all candidate photos with Excel export capability for further analysis and interview preparation.

Who Will Benefit

I recommend this solution to large companies and recruitment agencies regularly seeking specialists receiving hundreds of resumes per vacancy. HR departments reduce manual resume review time from weeks to hours — system auto-filters most suitable candidates. Startups and high-growth companies needing fast recruiting without large HR teams. Recruitment agencies can offer clients objective candidate assessment tools. Particularly effective for mass recruitment to standard positions (developers, support specialists, salespeople).

Technologies

HeadHunter API Integration

I use the official HeadHunter API integrating with Russia's largest resume database. The system authorizes as employer, accessing search and resume viewing history. API provides complete candidate information: work experience, education, salary expectations, profile photos, and contact data. In practice, this provides access to hundreds of thousands of resumes in real-time.

Critical: authorization happens once, I securely save tokens for all subsequent requests, enabling systematic new candidate database updates without additional user action.

N8N for Workflow Orchestration

The entire screening process organizes as N8N workflows. Core process: query HeadHunter API, receive job vacancy resumes, process each resume, send for analysis, save results. N8N enables visual process design, conditional transitions, and parallel processing. For example, I process 10 resumes simultaneously, accelerating analysis 10-fold.

Additionally, N8N handles automatic photo saving, action logging, HR manager notifications when results ready, and various format exports.

LLM Resume Analysis and Job Fit

For each resume, I send job description + resume text to LLM (GPT-4 or local models like Mistral via Ollama). Models analyze candidate-requirement fit returning structured analysis. Systems are trained on good and bad candidate examples providing reasonably objective evaluations.

In practice: for "Senior Python Developer" vacancies, systems analyze required experience (Python, Django, PostgreSQL), years of experience, level match (senior), relevant projects in resumes.

0-100 Point Scoring System

I implemented multi-criteria evaluation: work experience (0-25 points), technical skills (0-30 points), relevant projects (0-20 points), education (0-10 points), salary expectation fit (0-10 points), red flags like frequent job changes or long gaps (up to -15 point penalty). Total score 0-100 provides objective candidate ranking.

Example: 5-year Python experience candidate working on similar complexity projects but expecting above-market salary scores ~70-75. 7-year experienced ideal-stack candidate with reasonable expectations scores 90+.

Strength and Weakness Identification

LLM analyzes resumes identifying strong and weak points. Strengths: "Extensive microservices experience", "Worked at major companies", "Cloud platform experience (AWS, GCP)". Weaknesses: "Narrow specialization, may struggle adapting", "Salary expectations 30% above market", "No experience with our main stack". This helps HR managers quickly understand fit and prepare good interview questions.

Sorting and Ranking

System auto-sorts all candidates by total score (100 to 0) highlighting top-N candidates (typically top-10 or top-20 depending on vacancy size). HR managers immediately see most suitable people, contacting them rather than manually reviewing hundreds of resumes.

Photo Collection and Unified System

I download all candidate profile photos from HeadHunter saving them in unified folders named by candidate ID. I created web interface (Vue.js + FastAPI) where HR managers see candidate tables: photo, name, score, strengths, weaknesses, experience, contacts. System allows clicking candidates to open full HeadHunter profiles for detailed review.

Additionally, system supports filtering and search: "show candidates scoring above 80", "show only candidates with 5+ years experience", "exclude candidates already interviewed".

Excel Export

System generates beautiful Excel files with all candidates, scores, and analysis. I use Python openpyxl library for formatting: color-coding by score (red = low, green = high), photo insertion, HeadHunter profile hyperlinks. HR managers download files sharing with team members, hiring managers, or project leads.

Architecture and Scaling

Complete stack uses N8N orchestration, Python + FastAPI backend, Vue.js frontend. Large resume processing (500+) executes asynchronously in background — users initiate searches with real-time WebSocket result updates. I use Redis caching (avoiding repeat resume analysis) and PostgreSQL for analysis history, enabling quick candidate evaluation lookups.

In practice: 200-resume analysis takes 5-10 minutes (depending on LLM complexity). System scales horizontally by adding worker processes for parallel processing.

System Integration

I implemented Slack notifications ("Senior Developer vacancy resume analysis complete, top-5 candidates ready for review"). Possible integrations include Telegram, Email, and candidate management systems (ATS systems). HR managers get immediate notifications enabling quick best-candidate work initiation.

Important Organizational Considerations

First — personal data protection law compliance. Resumes contain candidate personal data (names, contacts, photos). I ensured data processing aligns with GDPR and local laws. Data stores securely with access limited to authorized HR staff only. After recruiting completion, data deletes per company policy (typically 30-90 days).

Second — LLM evaluation accuracy verification. Models aren't perfect and can misevaluate. I always recommend HR managers manually verify top candidates before contacting. In practice: system eliminates clearly unsuitable candidates (score < 40), and best candidates (80+) usually actually fit.

Third — evaluation criteria updates. Candidate requirements change, systems must adapt. I recommend periodic criteria review based on results: if many high-scoring candidates fail interviews, criteria may be too high.

Fourth — HeadHunter API limit management. APIs have request limits (typically 100-200 per minute). I organized queue systems and rate limiting to avoid exceeding limits and HeadHunter bans.

Fifth — candidate transparency. While system uses objective criteria, candidates may not know resumes received AI analysis. I recommend companies inform about automated analysis in job descriptions or websites, aligning with transparency and ethics principles.