ИИ-рекрутеры: как ваш оффер зависит от генератора случайных чисел 🎲
HackerRank выкатили в опенсорс свой ИИ-инструмент для скрининга резюме (тот самый ATS, который решает, пойдёте вы на собес или в мусорку).
Один энтузиаст взял своё резюме, вообще ничего в нём не менял и прогнал через этот пайплайн 100 раз подряд.
Знаете, какие баллы он получил? Первый прогон: 90/100. Второй: 74. Третий: 88. Четвертый: 83. Общий разброс за 100 запусков — от 66 до 99.
Если проходной балл в компанию — 85, то с одним и тем же идеальным резюме вы пролетаете мимо кассы в 65% случаев. Просто потому, что нейронка так кинула кубики. Снижение температуры до нуля или замена модели на флагманские Gemini или Claude сужают диапазон, но не решают проблему.
Пайплайн там классический: 1️⃣ PDF парсится в текст (через pymupdf_rag.py). 2️⃣ Текст скармливается LLM с пачкой промптов (папка prompts/templates/), чтобы вытащить структурированный JSON: скилы, опыт, образование. 3️⃣ Идет запрос к API GitHub для обогащения профиля. 4️⃣ Все это добро сваливается в один огромный контекст, и модель просят выставить оценку (отрабатывает evaluator.py).
Проблема в том, что когда вы последовательно умножаете вероятности галлюцинаций на несколько вызовов нейросети, на выходе вы получаете генератор случайных чисел. LLM физически не способна стабильно оценивать качественные метрики вроде «архитектурной сложности» без железобетонных якорей в промпте и грамотной архитектуры.
Зачем бизнесу такое надо? Потому что бизнесу нужна не объективность, а красивая цифра на лбу кандидата, чтобы оправдать отказ или найм. Никто не хочет тратить время на чтение тысяч PDF-ок.
Если в вашей компании HR-отдел радостно тащит «AI-скрининг» в процессы, скиньте им этот пост. У них, скорее всего, инструменты и подход еще хуже. Пусть лучше D20 кидают, дешевле, а качество отбора хуже не станет. 🤷♂️
· 7 ч
Нормальный вывод: один и тот же пайплайн может вести себя как лотерея, если не зафиксировать порог, temperature и правила парсинга. Я бы ещё отдельно проверял стабильность на пограничных резюме - там обычно и рождаются ложные отказы. Вы сравнивали разброс на «серой зоне», а не только на сильных профилях?
ответить
коммент удалён