---
Конкретний момент у співпадінні кандидатів
У нещодавньому потоці в Slack з'явився терміновий баг-репорт: наша система співпадіння кандидатів за допомогою ШІ повертала результати, які не мали сенсу. Кандидат з десятьма роками досвіду в програмній інженерії був ранжований нижче, ніж молодший розробник. Фрустрація була відчутною, і ставки були високі — наші рекрутери покладалися на цю систему, щоб приймати обґрунтовані рішення про найм. Нам потрібно було глибше розібратися, як насправді працює наше співпадіння кандидатів за допомогою ШІ.
Чому ця проблема важлива
Надійність нашого алгоритму співпадіння є критично важливою як для наших рекрутерів, так і для кандидатів. Неправильно підібраний кандидат може призвести до витраченого часу, поганих наймів і, зрештою, до втрачених бізнес-можливостей. Рекрутери відчували тиск, намагаючись представити кваліфікованих кандидатів своїм клієнтам, тоді як розробники ризикували бути проігнорованими через недоліки в механізмах оцінки. У конкурентному ринку праці кожен відсоток співпадіння може означати різницю між отриманням роботи чи залишенням у пулі кандидатів.
Аналіз проблеми
Після розслідування ми виявили кілька режимів несправності в нашій системі співпадіння. Однією з очевидних проблем були синоніми навичок. Наприклад, терміни “програмний інженер” та “розробник” розглядалися як абсолютно окремі сутності, хоча часто описують схожі ролі. Це призводило до недооцінювання кандидатів, якщо їх резюме використовувало різну термінологію. Крім того, ми зіткнулися з інфляцією старшинства — коли кандидати, позначені як “старші”, отримували завищені позиції в рейтингу лише на основі звання, а не фактичного рівня навичок. Це ускладнювалося перенасиченням ключовими словами, коли кандидати оптимізували свої резюме для алгоритму, а не точно відображали свій досвід.
Наші початкові спроби
Спочатку ми розглянули простий детерміністичний підхід до фільтрації, де кандидати підбиралися на основі суворого набору заздалегідь визначених критеріїв. Цей метод виявився мертвою точкою; хоча він покращував специфіку, йому бракувало нюансів, необхідних для ефективного ранжування. Крім того, він був негнучким і погано адаптованим до різноманітної мови, що використовувалася в резюме. Ми зрозуміли, що нам потрібен більш динамічний підхід, який міг би розуміти контекст і семантику, що призвело нас до розгляду великих мовних моделей (LLM) для повторного ранжування.
Наш технічний підхід
Ми переключилися на систему повторного ранжування на основі LLM. Наш новий підхід включав алгоритм співпадіння вакансій, який спочатку отримував широкий набір кандидатів на основі детерміністичних фільтрів, а потім застосовував LLM для повторного ранжування їх на основі контекстуальної релевантності. Ось спрощена версія нашої логіки співпадіння:
# Псевдокод для процесу співпадіння кандидатів
candidates = retrieve_candidates(filters)
ranked_candidates = llm_re_rank(candidates, job_description)
return ranked_candidates
Цей двошаровий підхід дозволив нам використовувати як суворі критерії, так і більш гнучке розуміння мови, яке надають LLM. Ми виявили, що це значно покращило нашу точність співпадіння та задоволеність кандидатів.
Спостережувані зміни в продукті
Після впровадження цих змін ми спостерігали помітні покращення на нашій платформі. Рекрутери повідомили про значне збільшення релевантності співпадінь кандидатів, що призвело до швидших процесів співбесід та вищих рівнів задоволеності. Кандидати також відчули більш прозорий процес, де їхні навички краще відображалися в оцінці співпадіння. Це безпосередньо вплинуло на нашу сторінку /jobs, оскільки оголошення про вакансії почали отримувати більш якісні пулі кандидатів, що в кінцевому підсумку покращило користувацький досвід для всіх учасників.
Ключові уроки
У процесі ми отримали кілька неочікуваних уроків:
- Гнучкість має значення: суворі критерії співпадіння можуть не помічати кваліфікованих кандидатів.
- Мова має значення: синоніми та жаргон можуть спотворювати результати; контекст є критично важливим.
- Старші звання не означають старші навички: об'єктивна оцінка навичок необхідна для забезпечення якісних співпадінь.
- Безперервні цикли зворотного зв'язку: регулярний перегляд логіки співпадіння на основі зворотного зв'язку від користувачів є важливим для підтримки точності.
- Прозорість алгоритму: кандидати цінують розуміння того, як оцінюються їхні навички, що може покращити довіру до процесу.
Наслідки для кандидатів
Для кандидатів покращена система співпадіння означає більш точне відображення їхніх навичок і досвіду. Замість того, щоб бути відсунутими через термінологічні розбіжності, їхній справжній потенціал визнається. Ця нова система дозволяє їм зв'язуватися з можливостями, які дійсно відповідають їхнім кваліфікаціям, роблячи процес пошуку роботи більш ефективним і винагороджуючим.
Наслідки для рекрутерів
З точки зору рекрутера, вдосконалений алгоритм співпадіння зменшує час, витрачений на перегляд невідповідних кандидатів. Вони можуть представити короткий список високорелевантних кандидатів, що підвищує задоволеність клієнтів і покращує їхню загальну ефективність. Це також означає менше витрачених співбесід і кращу відповідність між кандидатами та потребами компанії, в кінцевому підсумку зміцнюючи процес найму.
Наступні кроки
Дивлячись вперед, ми моніторимо кілька аспектів нової системи співпадіння. Ми хочемо ще більше вдосконалити налаштування нашого LLM для покращення розуміння контексту та дослідити інтеграцію зворотного зв'язку користувачів більш безшовно в алгоритм. Одна з областей, на якій ми особливо зосереджені, — це зменшення впливу перенасичення ключовими словами через кращий семантичний аналіз. Якщо б нам довелося скасувати один аспект, це була б надмірна залежність від детерміністичних фільтрів, оскільки ми спостерігали значні переваги від гнучкості LLM. ---