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

от автора

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


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *