Как стать автором
Обновить

Data Science в рекрутинге: как структурировать хаос резюме и находить лучших кандидатов. (часть 1)

Время на прочтение3 мин
Количество просмотров374

Подбор персонала — это поиск иголки в стоге сена, с одной оговоркой: иголка должна хотеть работать именно у вас. Когда на входе — сотни резюме с 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 лет в корпорации").

  • Как учитывать "мягкие" факторы (участие в хакатонах, открытые исходники, рекомендации).

Главное: автоматизация подбора — это не про замену рекрутера, а про то, чтобы дать ему лазерное зрение в этом стоге сена.

(Надеюсь вы оцените данную статью, что бы я скорее написал продолжение. Продолжение следует...)

Теги:
Хабы:
+1
Комментарии0

Публикации

Работа

Data Scientist
48 вакансий

Ближайшие события