AI-система ранжування кандидатів

AI-система ранжування кандидатів

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

AI-система ранжування кандидатів

Ми розробляємо AI-систему ранжування кандидатів, яка вирішує задачу багатокритеріального відбору: технічні навички, релевантний досвід, культурна відповідність, кар'єрна траєкторія. Традиційні методи на кшталт пошуку за ключовими словами дають точність ~50% на реальних даних. Ми використовуємо multi-vector scoring з окремими компонентами під кожен критерій і зваженою агрегацією, яка налаштовується під конкретну роль. Це дозволяє не тільки підвищити точність, а й дати пояснення кожному скору.

Типова ситуація в рекрутингу: 400 резюме на позицію, HR-менеджер встигає прочитати 30. Інші відсіюються за поверхневими ознаками — заголовком посади, назвою університету, наявністю ключових слів. Це не відбір найкращих — це відбір перших-ліпших. Наша AI-система ранжування дає зважений скор кожному кандидату щодо конкретної вакансії, пояснює цей скор у термінах, зрозумілих HR-у, і не втрачає сильні профілі з нестандартним бекграундом. Це і є справжній AI рекрутинг та автоматизація рекрутингу.

Де ламається наївний підхід?

Найпростіший варіант — keyword matching або TF-IDF між описом вакансії та резюме — дає precision 0.45–0.55 на реальних даних. Кандидат із 10-річним досвідом у «розробці програмного забезпечення» програє тому, хто написав точну фразу з JD. Семантика втрачається.

Наступний крок — embedding similarity через sentence-transformers. Тут проблема інша: моделі загального призначення (all-MiniLM-L6-v2, text-embedding-3-small) погано працюють з HR-специфічною семантикою. «Python» у JD і «Python» у резюме дата-аналітика та backend-розробника — різні контексти, але embedding не розрізняє. Семантичне зіставлення резюме без урахування контексту неефективне.

Ще складніше — імпліцитні вимоги. JD вимагає «досвід управління командою», кандидат написав «керував групою з 5 аналітиків» — semantic match спрацює, але нечіткий поріг за cosine similarity (< 0.72) зріже. Наш підхід із cross-encoder долає це обмеження.

Як працює багатовимірний scoring?

Не один скор, а вектор оцінок за ключовими вимірами:

  • Hard skills match — семантичний збіг технічних навичок. Використовуємо bi-encoder для первинного відбору (FAISS, топ-100), потім cross-encoder для точного скорингу (ms-marco-MiniLM-L-12-v2 або fine-tuned на HR-даних MS MARCO).
  • Experience level — вилучаємо з резюме кількість років релевантного досвіду через NER + regex. Зіставляємо з вимогою з JD.
  • Career trajectory — аналізуємо прогресію: зростання відповідальності, релевантність попередніх позицій. LLM-виклик із structured output.
  • Education & certifications — rule-based вилучення + нормалізація назв вишів і сертифікатів.

Фінальний ранг — зважена сума з вагами під конкретну роль. Для junior-розробника education важить більше, для senior — experience trajectory.

Fine-tuning моделей на історичних даних

Якщо є історичні дані з найму (хто був найнятий, хто пройшов співбесіду, хто провалився) — це gold для навчання. Будуємо ranking model: на вході (вакансія, резюме), на виході — ймовірність успішного найму. LambdaRank або ListNet поверх embedding-ознак.

Обережно з bias: якщо історичні дані містять упередженість (наприклад, 90% найнятих — чоловіки на технічних позиціях), модель її відтворить. Обов'язковий крок — fairness audit до деплою. Ми проводимо fairness audit із використанням бібліотеки AIF360.

Пояснюваний AI для HR

Скор без пояснення — чорний ящик, який HR ігнорує. Для кожного кандидата генеруємо:

  • Топ-3 збіги з вимогами вакансії (з цитатою з резюме)
  • Топ-2 розбіжності (що потрібно, чого немає)
  • Одну рекомендацію щодо додаткової перевірки на співбесіді

Це робить ранжування інструментом, а не заміною судження. Пояснюваний AI — ключова перевага нашої системи.

Практичний кейс: як ми скоротили час відбору в 3 рази

Наш клієнт — аутсорсингова IT-компанія, 200+ відкритих позицій одночасно. Існуючий процес: ручний перегляд в ATS (Huntflow). Час обробки воронки: 8–12 днів до першого дзвінка.

Побудували систему: парсинг резюме (PDF/DOCX → структурований JSON через LLM extraction + regex) → bi-encoder індексація в Qdrant → cross-encoder реранкінг топ-50 per vacancy → LLM-генерація пояснень → інтеграція через Huntflow API, скори відображаються прямо в картці кандидата.

Результат після 3 місяців: середній час до першого дзвінка скоротився з 9.4 до 3.1 дня (в 3 рази швидше порівняно з ручним відбором). HR-менеджери стали переглядати в середньому топ-15 замість топ-30 (менше нерелевантних). Оффер-рейт по найнятих через систему: +22% порівняно з історичним baseline. Зв'яжіться з нами, щоб обговорити схожий проєкт.

Технічний стек

Компонент Інструменти
Парсинг резюме LlamaParse, Docling, кастомний LLM extraction
Embedding text-embedding-3-large, E5-mistral-7b, jina-embeddings-v3
Vector store Qdrant, pgvector
Reranker cross-encoder ms-marco, Cohere Rerank
Ranking model LightGBM, LambdaRank (якщо є історичні дані)
Пояснення GPT-4o-mini, Claude Haiku (structured output)

Порівняння методів ранжування (precision@10 на наших даних):

Метод Precision@10 Час обробки 100 резюме Пояснюваність
Ключові слова 45% 2 сек Низька
Embedding similarity 62% 5 сек Середня
Наша система 83% 12 сек Висока

Наш підхід на 34% точніший за embedding similarity і дає повну пояснюваність. Це рішення для HR Tech та ML для HR.

Що входить у роботу

  • Аудит поточного процесу рекрутингу та якості даних
  • Розробка прототипу за 2 тижні: bi-encoder + скалярне ранжування
  • Калібрування ваг спільно з HR-відділом
  • Fairness audit і деблаінг моделі
  • Інтеграція з ATS (Huntflow, Lever, Greenhouse, Workday)
  • Документація та навчання команди
  • Підтримка 3 місяці після запуску

Етапи роботи

  1. Аудит даних — якість резюме в базі, наявність історичних даних найму, структура JD. Це визначає підхід.
  2. Прототип за 2 тижні — bi-encoder + просте скалярне ранжування, демо на 50 вакансіях.
  3. Ітерації з HR — калібрування ваг, валідація на кейсах «добре відомих» кандидатів. Без участі рекрутерів якість не налаштувати.
  4. Fairness audit — обов'язково перед деплоєм, особливо якщо використовуються історичні дані.
  5. Інтеграція в ATS — через API Huntflow, Lever, Greenhouse або Workday. Або standalone інтерфейс.

Терміни: MVP за 4–6 тижнів, повноцінна система з fine-tuning та ATS-інтеграцією — 3–4 місяці.

Технічні деталі щодо fine-tuning Для fine-tuning ми використовуємо LambdaRank із loss-функцією NDCG. Навчаємо на парах (вакансія, резюме) з міткою успішного найму. Застосовуємо early stopping та dropout для запобігання перенавчанню.

Отримати консультацію щодо впровадження AI-ранжування можна, зв'язавшись з нашою командою. Ми маємо 5+ років досвіду в AI та понад 50 успішних проєктів у галузі NLP та рекрутингу. Замовте демо, щоб побачити систему в дії.