Подбор персонала — это поиск иголки в стоге сена, с одной оговоркой: иголка должна хотеть работать именно у вас. Когда на входе — сотни резюме с hh.ru, а на выходе нужно выбрать топ-5 кандидатов, без автоматизации не обойтись. Но как научить алгоритм отличать будущего топ-менеджера от человека, который в графе «Опыт работы» указал «10 лет в Minecraft»?
Разберёмся, как ранжировать резюме, чтобы не тратить часы на бессмысленные собеседования.
«Когда я впервые попробовал автоматизировать отбор резюме, то наивно полагал, что всё просто: бери ключевые слова — и фильтруй. Реальность оказалась сложнее. После 20 итераций, сотен ручных проверок и десятков часов обсуждений с HR я понял: автоматизация — это не про «заменить рекрутера», а про то, чтобы дать ему суперспособность видеть сквозь стог сена. В этой статье (поделённой на несколько частей) — только проверенные на практике решения, а не абстрактная теория».
Часть 1: Трезвый взгляд на данные
Прежде чем учить машину ранжировать кандидатов, нужно понять, как она их «читает». Резюме — это неструктурированный текст, где важная информация размазана между:
-
Опытом работы (от «10 лет в Minecraft» до «Создал отдел продаж с нуля»).
-
Навыками (от «уверенный пользователь Excel» до «Python (на уровне пет проектов)»).
-
Образованием (от «неоконченное высшее» до «MBA INSEAD»).
-
Скрытыми маркерами (например, «участвовал в хакатоне» vs.«опыт управления командой 5+ лет»).
Если просто искать ключевые слова, алгоритм пропустит перспективных кандидатов с нестандартными формулировками и отберет тех, кто хорошо копирует шаблоны из интернета.
Проблема: хаос в данных
На примере парсинга с HH.ru мы собрали 1000 резюме по направлению «Разработка». В итоге получилась таблица с 183 столбцами — почему так много?
-
Разный уровень опыта
-
У junior-разработчиков может не быть столбцов с опытом работы, зато много строк о курсах.
-
Senior-специалисты, наоборот, заполняют детальные описания проектов, но могут пропускать раздел «Дополнительное образование».
-
-
Изменчивость платформ
-
HH.ru может в любой момент поменять структуру данных или добавить экспериментальные поля для отдельных групп кандидатов.
-
Названия столбцов нестабильны: сегодня это «Опыт работы: Компания», а завтра — «Работа: Организация».
-
Решение: классификация и очистка данных
Прежде чем анализировать резюме, нужно привести их к единой структуре.
Шаг 1. Классификация столбцов
Вместо того чтобы полагаться на исходные названия, мы обучаем алгоритм определять тип данных в каждом столбце.
Как это работает?
-
Берем 20-30% случайных строк из каждого столбца.
-
С помощью NLP-модели (например, BERT или простого Word2Vec + классификатора) предсказываем, к какой категории относится столбец:
-
Опыт работы
-
Образование
-
Навыки
-
Контактные данные
-
и т. д.
-
-
Присваиваем столбцу тег (например, Education) и объединяем схожие данные.
Пример:
Есть разрозненные поля:
-
«Образование 1: Учреждение»
-
«Образование 1: Факультет»
-
«Образование 1: Год окончания»
После классификации все они получают тег Education, и мы объединяем их в один осмысленный текст.
Шаг 2. Фильтрация бесполезных данных
Не все столбцы стоит учитывать. Отбрасываем:
-
Пустые или почти пустые (более 50% пропусков).
-
Содержащие мусор (например, столбец «Новое», где в каждой строке написано «Новое»).
-
Несущественные для анализа (например, «Пол» — если только вы не набираете актеров для роли в историческом фильме).
Шаг 3. Использование регулярных выражений
Здесь всё просто, мы обрабатываем, ссылки, даты, цифры так как в 90% случаев анализа резюме они не важны.
Что дальше?
После очистки и классификации данных мы получаем структурированный датасет, с которым можно работать. В следующих частях разберем:
-
Как выделять ключевые навыки (и отличать «знакомство» от «профессионального владения»).
-
Как оценивать релевантность опыта (потому что «5 лет в стартапе» ≠ «5 лет в корпорации»).
-
Как учитывать «мягкие» факторы (участие в хакатонах, открытые исходники, рекомендации).
Главное: автоматизация подбора — это не про замену рекрутера, а про то, чтобы дать ему лазерное зрение в этом стоге сена.
(Надеюсь вы оцените данную статью, что бы я скорее написал продолжение. Продолжение следует…)
ссылка на оригинал статьи https://habr.com/ru/articles/905434/
Добавить комментарий