- 100%
- Определение (500 / 500)
- 0.88
- Средняя уверенность
- 30
- Определённых ATS-провайдеров
- 1,651
- Размерность признаков
Технологии
- Python
- scikit-learn
- XGBoost
- RandomForest
- SHAP
- Playwright
- Selenium
- BeautifulSoup
- pytest
Задача
Компании размещают карьерные страницы на десятках разных ATS-платформ — Workday, Greenhouse, Lever и многих других. Надёжно определить, какая именно используется, и сделать это в масштабе — сложная задача: страницы крайне неоднородны, часто защищены от скрейпинга и не содержат стандартного сигнала, называющего платформу.
Подход
Я построил четырёхуровневый каскад определения, который останавливается на первом уверенном совпадении: (1) выверенная таблица известных соответствий «компания → ATS», (2) регулярные выражения по URL с 75+ отпечатками провайдеров, (3) анализ HTML-сигналов на правилах (скрипты, формы, мета-теги, хосты ресурсов) и (4) ML-классификатор RandomForest на объединении признаков размерностью 1 651 с объяснимостью через SHAP. Карьерные страницы всех 500 компаний Fortune 500 загружаются через устойчивый каскад Playwright / Selenium / BeautifulSoup с кэшированием HTML, поэтому заблокированная или тяжёлая по JavaScript страница не ломает процесс, а корректно переходит к резервному способу.
Результаты
100% определения (500 / 500) по 30 ATS-провайдерам при средней уверенности 0,88. Система проверена 90 пройденными модульными тестами, k-fold кросс-валидацией, сверкой с эталонной разметкой и циклом активного обучения, который выносит образцы с низкой уверенностью на проверку человеком. Анализ также дал ясный рыночный вывод: на Workday и Greenhouse вместе приходится около 70% использования ATS в Fortune 500 — дуополия.
Инженерные решения
- Четырёхуровневый каскад, который останавливается на первом уверенном совпадении — известные соответствия → регулярные выражения по URL (75+ отпечатков) → анализ HTML-сигналов на правилах → ML-классификатор RandomForest.
- Устойчивый слой загрузки каскадом Playwright → Selenium → BeautifulSoup с кэшированием HTML выдерживает антибот-защиту на неоднородных карьерных страницах.
- Объяснимость через SHAP на объединении признаков размерностью 1 651 делает каждое ML-предсказание проверяемым.
- Проверено 90 пройденными модульными тестами, k-fold кросс-валидацией, сверкой с эталоном и циклом активного обучения, который ставит неуверенные образцы в очередь на проверку.
- Рыночный вывод: Workday и Greenhouse образуют дуополию (~70% ATS в Fortune 500).
Скриншоты и схемы
Реальные снимки интерфейса и графики — исходный код закрыт, бренды клиентов не показаны.
Подробный разбор
В диссертации определение ATS рассматривается как многоуровневая задача принятия решений, а не как одна модель. Сначала работают дешёвые и высокоточные сигналы (точные известные соответствия и отпечатки URL), и только действительно неоднозначные страницы доходят до более дорогого ML-классификатора. Это делает систему быстрой, дешёвой и — что важнее всего — объяснимой: большинство ответов сопровождается понятной человеку причиной, а ML-уровень для остальных даёт атрибуции SHAP.
Объединение признаков охватывает структуру URL, сигналы HTML/DOM, встроенные скрипты и хосты ресурсов, эндпоинты форм и текстовые отпечатки, образуя 1 651 измерение, которые сокращаются и подаются в классификатор RandomForest. Цикл активного обучения постоянно ставит предсказания с наименьшей уверенностью в очередь на проверку, поэтому эталонный набор — и сама модель — со временем улучшаются.