ПО «Магуча»
машинное чтение вакансий и резюме

Как настроить аналитику рынка труда

Уважаемые коллеги, аналитики, специалисты, эйчары и их руководители!

Если перед вами стоит задача исследовать рынок труда — скорее всего вас интересуют зарплаты, тренды, емкость рынка и т.д., — а не структура рынка, сегментация профессий, общий социальный портрет российского работника и другие научно-исследовательские темы по социологии. Нам нравятся последние, поэтому давайте поможем вам помочь нам избавить нас от первых.

Как мы и договорились выше, рассмотрим задачи исследования рынка труда с утилитарно-прикладных задач работодателя или консалтинг-центра, которому важно знать, что происходит с их пулом профессий.

Что стоит узнать по каждой профессии?
(минимальный «джентельменский» набор)

  • Какая заработная плата у такой-то профессии:
    • В России
    • В конкретном городе
    • В регионе конкретного города

При этом:

  • В сравнении со средней зарплатой по стране
  • В сравнении со средней зарплатой по конкретному городу
  • В сравнении со средней зарплатой по группе смежных профессий
  • Какая «конкурентность» профессии: сколько соискателей на какое количество рабочих мест?
    • По всем профессиям по всей России
    • По конкретной профессии по всей России
    • По всем профессиям в конкретном городе
    • По конкретной профессии в конкретном городе
  • Какие особенности вакансий по изучаемой профессии у лидеров рынка? (анализ конкурентов)
    • Какие бонусы и няшечки предлагаются крупными работодателями сверх зарплаты?
    • Чем отличаются их собственные предложения по той же профессии (позиции) в разных городах?
    • Какие требования к сотруднику они предъявляют (образование, навыки, компетенции, опыт, …)
    • Какие условия труда, график и тип занятости предлагаются в вакансиях
  • Какой портрет соискателя?

Кто эти люди: распределение по полу и возрасту, образованию, опыту (стажу), навыкам, зарплатным ожиданиям, предпочитаемому графику работ и так далее:

  • По профессии в целом по России
  • По профессии в конкретном городе
  • Какая скорость закрытия вакансий по этой профессии?

Как быстро закрываются подобные вакансии:

  • По этой профессии по стране в целом
  • По этой профессии в конкретном городе
  • Какая скорость трудоустройства по этой профессии?

Как быстро «закрываются» резюме:

  • По этой профессии по стране в целом
  • По этой профессии в конкретном городе

Это далеко неисчерпывающий список вопросов, но остановимся для начала на нем, а если хотите еще, то пишите нам и расскажем о большем.

Например, про индекс изменений у конкретного крупного работодателя, то есть анализ изменений содержимого его вакансий — это относится к категориям «скрытых показателей», которые помогают понять, что реально происходит в отрасли….

А сейчас все вышеперечисленные вопросы рассматриваем в новом разрезе:

Как меняются эти данные в динамике?

То есть нам надо сравнить эти данные в срезах за вчера, за неделю назад, за месяц, квартал, полгода, год, два и далее.

  • Какая динамика у предлагаемой и ожидаемой заработной платы?
    • По месяцам за несколько лет
    • Проверка на сезонность
    • Проверка по городам (где динамика выше/ниже)

При этом:

  • Сравнить с общей динамикой по России
  • Сравнить с общей динамикой зарплат по конкретной городу
  • Сравнить с общей динамикой зарплат по другим, смежным профессиям
  • Ёмкость этой профессии в структуре рынка труда: растущая или сокращающаяся?
    • Смотрим на направление, скорость и силу изменений (трендов) по всем профессиям в целом по стране
    • По конкретной профессии по всей стране
    • По конкретной профессии в конкретном городе
  • Анализ динамики численности вакансий и резюме
    • В целом по всем профессиям в стране
    • По конкретной профессии в стране
    • По всем профессиям в конкретном городе
    • По конкретной профессии в конкретном городе

И так далее – смотрим на динамику изменений всех параметров.

Так мы увидим:

  • Направленность изменений (снижение или рост)
  • Скорость изменений
  • Силу изменений

Сравнивая направленность, скорость c силой изменений у разных профессий мы сможем оценить значимость тренда для конкретной, изучаемой нами. А держа в голове правила Генри Хэззлитта (например, «когда в одном месте прибывает – значит есть место, где убывает» и др.), вы можете получить целостное представление о ситуации на рынке труда и о «тектонических» изменениях на оном.

Двухнедельные срезы за промежуток в три года позволят нам вычленить цикличность (или сезонность) в профессии, а значит учесть это и в прогнозах. Выведенную вами синусоиду цикличности для ваших профессий важно учитывать в предиктивных моделях.

Достоверность модели прогнозов предварительно стоит обкатать на срезах за предыдущие периоды: например, оценить, сбывались ли предсказанные прогнозы на этот год, если скормить модели два-три предыдущих, и так далее.

Ну, а общее правило для анализа динамики:

  Формируйте индексы и посмотрите внимательно там, где числа «выпадают» из общего ряда.  

Поверьте, вас ждут глубокие инсайты и откроются тонкие нюансы экономической ситуации в стране и в отрасли, о которых не пишут в новостных и даже в тематических пабликах.

Различия источников данных: лайфхак и «засада» в одном флаконе

А теперь источник высшего наслаждения для аналитика — еще один разрез данных, который резко увеличивает объем интерпретируемой информации — но при этом дико увеличивает точность данных, а также, что главное, помогает выработать «хакер-стратегии» для работодателей и соискателей.

Дело в том, что на разных job-сайтах все ответы на вышеперечисленные вопросы (и динамика, и индексы в том числе) будут сильно отличаться. По состоянию на сегодня (начало зимы 2022) в России есть два явных лидера среди job-сайтов: это Trudvsem и HeadHunter.

И самое удивительное, что на сегодняшний момент их аудитории пересекаются весьма незначительно (хотя уже с лета мы фиксируем отчетливый тренд на взаимную диффузию данных). В какой-то момент кто-то окажется явно лишним…

Соответственно, у каждого из этих двух job-сайтов свои данные по зарплатам, индексу конкурентности и так далее, и динамике этих данных.

Trudvsem не так давно обогнал hhru по количеству вакансий, размещенных в России (мы недавно писали в цифрах об этом здесь: https://rutrud.com/number-of-jobs-2022/).

Многие эксперты рынка труда склоняются к тому, что сервис Trudvsem имеет административный (да и в какой-то мере финансовый тоже) ресурс явно больший, чем публичная компания HeadHunter, несмотря на свои миллиардные обороты.

А так как при этом Trudvsem предлагает абсолютно бесплатный сервис как для работодателей, так и для соискателей, то будущий лидер российского job-рынка явно предопределен.

Но в прошлом это было не так, и следует учитывать это при анализе данных прошлых лет…. (вам будет нужен корректирующий коэффициент для работы с данными за 2020 год и ранее).

В чем суть лайфхака?

Есть ряд профессий, по которым больше вакансий на одном ресурсе и существенно меньше на другом. Условно говоря, на trudvsem – 100 вакансий, а на hhru – 10. А по другой профессии – всё наоборот.

И есть данные по резюме, которые точно также могут отличаться для одной профессии на trudvsem и на hhru.

А это означает, что вы точно знаете, где искать вакансии по этой профессии, а где искать соискателей.

Ну или где вам выгоднее размещать вакансии, а где выгоднее размещать резюме.

Но вас, уважаемого аналитика, ждет незначительная сложность, если руководство попросит представить «консолидированные данные». Например, какая реальная картина по стране со всеми предлагаемыми и ожидаемыми зарплатами со всех job-сайтов, а также какой реальный в стране уровень конкурентности профессий: сколько всех уникальных вакансий и сколько всех уникальных резюме?

Немного о нюансах расчета индекса конкурентности профессий есть на https://rutrud.com/indeks-konkurentnosti-professii/

Встречный ход конем для аналитика: для подсчета консолидированных данных вам нужны нехилые вычислительные ресурсы: ведь вам предстоит идентифицировать все вакансии и все резюме как минимум на двух топ-сайтах, при этом не нарушая закона о персональных данных, чтобы свести эти множества в одно. Скорее всего этот бюджет вам не выделят, и проблема снята.

Диспропорция между вакансиями и резюме на разных ресурсах как по количеству, так и по условиям зарплаты — очень «мощная» информация; рекомендуем обратить на нее внимание в первую очередь. Но будьте осторожны «балуясь» с предсказательной аналитикой на ее основе: еще пару лет назад структура рынка job-сайтов (а значит источников информации и их баланса) была иной. Поэтому без упомянутых выше «поправочных коэффициентов» прогнозы могут получаться «лживыми». Как вариант – загрузить этим нейросетку, но там свои нюансы…

Итак, постановку задачи мы обсудили, перейдем к методологии.

Что надо учесть при сборе данных и какие параметры настраивать?

Всё самое сладкое в жизни подневольного аналитика только начинается: начальство определило цели — вам к ним двигаться.

Источники данных

О них уже написано выше. Минимальная планка: обработка двух главных источника информации: трудвсем и хахару. Но! Это если вы «общими мазками» и замеряя «среднюю температуру в больнице».

Если у вас узкосегментированные профессии (специфичные IT-шные и т.п.), то вэлкам в анализ вакансий в телегах, закрытых ватсап-чатах и профильных сайтах. Это нестрашное, но проблема в идентификации сообщений, чтобы не считать одну и ту же вакансию (или резюме) дважды, как это делали в сборщике вакансий от Яндекса.

Справка. Проект «Яндекс.Работа» был похоронен года полтора-два назад, хотя какие-то славные corpse-reviver пытались осуществить обряд реинкарнации, но умерла, так умерла. «Перед смертью больной потел» и это хорошо выражалось в результатах: этот агрегатор нашел вакансий больше, чем всего работоспособного населения в России. Всё бы ничего, если бы не дикий кринж Аркадия Воложа на тему, «сколько в России нужно программистов». Данные дал сервис Яндекс.Работа, а цитату Воложа тиснули все ВШЭ-ные редакторы без критического мышления, а за ними вся остальная пишущая по IT-теме рать) — по данным Я.Р программеров нужно было примерно столько же, сколько водителей. Впрочем, не будем судить строго: учитывая глюки сервиса Я. Такси, возможно, Волож был прав.    

Возникает вопрос: что делать с данными superjob (ответ: сейчас они практически совпадают с сервисом hhru, но старые базы – нет!) или avito (сейчас вакансии в авито от крупного и среднего бизнеса, если там редко и встречаются, то они всегда* есть в hhru или trudvsem), или другими job-сайтами. Ответ: все зависит от целей и локализации ваших задач. Если вы шерстите по крупным городам или интересуетесь ситуацией в стране в целом, то «потери» незначительные. Если вы вдоль и поперек изучаете конкретный небольшой город – то прочие ресурсы стоит учитывать, а алгоритмы для консолидации данных придется прописывать в каждом отдельном случае под локальные источники.

* практически всегда, если умело использовать функцию округления

Сами данные

Зарплата

Нынешняя мода заставляет указывать в вакансиях минимальную и максимальную. В соответствии с вашими задачами обычно выбор такой:

  • Берем только минимальную
  • Берем только максимальную
  • Берем среднюю между минимальной и максимальной
  • Ведем учет и той, и другой одновременно

Но это поверхностный подход. Круто, если вы обратите свое пристальное внимание:

  • На вакансии с большим разрывом между минимальной и максимальной. Большой – это в 2 и более раз. Прочтите внимательно десяток таких вакансий вручную, чтобы составить алгоритм – какие данные стоит еще подтягивать (и как, черт подери, их учитывать).
  • На «Социальные пакеты» и их состав. А еще лучше подсчитайте и учтите индекс профессий, где социальные пакеты предлагают чаще всего.
  • На бонусы и премии в конкретных цифрах (в процентах или рублях), которые сейчас появились отдельной строкой в данных trudvsem.
  • На фразы про «процент от …», которые встречаются в тексте вакансии.

Сами зарплаты лучше считать не только средние, но и медианные. И тут же ввести новый индекс, сигнализирующий о разнице между средней и медианной заработной платами: чем больше разрыв – тем пристальнее стоит посмотреть на прецедент. Для точечных исследований профессий (или анализа конкурентов) – это кладезь данных.

Более сложный индекс – это отклонения в корреляции между средней и медианной с учетом коэффициента численности вакансий (например, когда число вакансий меньше ста, то разрыв часто бывает большим – это не будет вас отвлекать, если все профессии проранжированы с новым индексом, учитывающим не только разрыв, но и численность вакансий).

Прилетело НЛО и оставило эту надпись здесь:Просим простить корявый язык наших разработчиков, ни разу ни филологов, когда они описывают свои собственные мытарства, тихо хихикая при этом. Если что-то совсем не понятно, черкните нам, мы напишем на примерах.

Трудвсем кроме числа вакансий предлагает и число рабочих мест. Мы уже обмусолили их липовость здесь: https://rutrud.com/number-of-jobs-2022/. Обратите внимание, когда мы учитываем число рабочих мест, то тогда рассчитываем показатели «средневзвешенной заработной платы», а не средней. Опять же посмотреть на корреляционный индекс не помешает – можно «выловить» что-то значимое для ручной аналитики.

Гора открытий ждет исследователей, обращающих внимание как на разрывы корреляций между средневзвешенной, средней и медианной заработной платой, так и в других индексах, вами созданных.

Но чаще всего руководители коммерческих организаций не нуждаются в этих данных и порой даже не видят разницы между средним и медианным, то присылайте монографии (статьи, заметки) со своими находками нам, для нас это дико интересно.

Еще парочку зарплатных особенностей, перечислим галопом (но это не весь их список, увы):

  • Есть оригиналы среди работодателей и соискателей, которые в графе «зарплата» явно ставят неадекватные цифры. Например, единицу или миллион.

    Вам нужна методика, какие из них игнорировать, как и почему. Рекомендованный способ – ввести рейтинг (индекс) работодателей. Если «химичит» Магнит, то занести вакансию «в ручной список» при массовой обработке, а если шалит ИП Хамитдинов, то игнорировать.

    «Индекс адекватности работодателей» мы используем для оценки валидности данных.

    Помимо неадекватности источников данных есть еще отдельный сюрприз – ошибки в «сырой» базе данных, полученной от job-сайта, где некорректные цифры (или символы, ага) в зарплате (и иных полях) возникают при ошибках парсинга или в распространенных time crash ошибках БД job-сайта.

    (А способы получения этих баз— отдельная песня «по запросу»).

  • При обработке зарплаты обратите внимание на график работы и тип занятости.

    Кесарю – кесарево, а неполный рабочий день не стоит ставить в ряд с полным. Иногда ожидаемая / предлагаемая зарплата в 10 000 рублей в месяц подразумевает профессиональный доход существенно больше, чем 30 000 рублей в месяц (ну или сто для москвичей), если она всего за 5-6 часов труда за весь месяц.

Title – название профессии в вакансиях и резюме

Здесь должен быть многостраничный кусок текста о тяжести идентификации профессий:

  • Кто есть «инспектор» с описанием должных действий «согласно инструкции»?
  • А многочисленный «оператор оборудования», включающий в себя от «оператора заправочной станции» и «оператора машинного доения» до «оператора нефтегазового оборудования» и «оператора ПК».
  • А свыше 300 разнообразных наименований, сводящихся в итоге к одной функции «продажа товара/услуги»?

Но мы эти стенания Ярославны частично описали в статье про «конкурентность профессий» и описали найденное решение с помощью программного обеспечения «Магуча».

Актуальность вакансий и резюме

Хорошая новость — почти 99,9% вакансий трудвсем и хахару актуальны. Немножко статистики есть в статье «вакансии второй свежести».

Но, блин, вакансии бывают «множественны»: некоторые из работодателей публикуют одну и ту же вакансию несколько раз без изменений. А количество вакансий от этого растет, а если еще считать и рабочие места — то растет в разы. Подробнее об этом мы писали в «липовых вакансиях».

Плохая новость — более 50% резюме можно смело отнести к категории «умершие» или «спящие». Писали про «миражные резюме» здесь и здесь, и здесь.

При «средних настройках» обычно аналитики берут все вакансии и резюме за последние 100 дней. Но последнее некорректно, вам требуется подсчитать «индекс закрытия вакансии» и «скорость трудоустройства» для каждой конкретной профессии, затем скоррелировать эти данные для каждой профессии (должности), и вот на этом основании вывести свой индекс актуальности резюме. Без него подсчеты индекса конкурентности профессий будут больше похожи на гадания по кофейной гуще в кружке с растворимым кофе.

Напомним, что и у резюме, и у вакансии есть три «говорящих» о многом даты (если их сравнивать и понимать, зачем вы это делали): дата создания, дата публикации и дата модификации.

Сообразительный исследователь-аналитик обратит внимание на частоту модификаций и составит «индекс модификации», а затем проанализирует список профессий по частоте модификаций (и поразится инсайтам). А если среди рабочих задач аналитику необходим «портрет соискателя» — то обратит внимание на разницу между созданием резюме и его публикацией (как долго над резюме работали?) и на ту же частоту модификаций. А еще наложит эти данные на календарные дни и оценит паттерны поведения соискателей… по полу, возрасту и образованию…

Но где умные, а где мы, красивые?

Обработка данных

Для обработки подготовленных данных мы используем язык Питон (в отличии от задач парсинга или работы с сырыми массивами данных).

Большую часть данных обрабатываем машинным путем, не заглядывая внутрь. Но используем «стоп-лист» в случае проблем, чтобы программа обращалась к оператору для ручной обработки.

Это касается только тех проблем, которые возникли с «крупным работодателем» (для этого мы составили топ-лист организаций и учреждений с массовым подбором) или интересующей нас редкой профессией, или если цифры (зарплаты или число рабочих мест) заведомо нереалистичны. «Нереалистичность» определяется экспертами на глазок, каждый раз процентовка отклонений от среднего задается вручную конкретным экспертом-аналитиком, проводящим исследование, в зависимости от поставленных целей и задач.

Для построения среза «Цифровой модели рынка труда» эксперт настраивает порядка 1000 параметров.

При построении среза формируется многомерная таблица, где данные разделяются на:

  • Города
  • Профессии
  • Источники информации

При этом речь идет отдельно о вакансиях и резюме.

Когда это переводится в двухмерный формат обычного Excel – получается таблица с миллионами ячеек. Пытаться в ней разобраться человеку абсолютно бесполезно.

Рабочие процессы обработки и подготовки данных:

Обработка данных и аналитика рынка труда
Общая схема обработки данных

Чтобы обратить внимание на все «необычности» используется цветовая маркировка в соответствии с заранее определенными параметрами. Программа обработчик «подсвечивает» (или раскрашивает в различные цвета) те области, в которых обнаружена повышенная (заранее указываем число в настройках) активность работодателей, быстро растущий тренд или тому подобное. Ага, смотрим на все красненькие, оранжевые, желтые ячейки – это явные отклонения от нормы.

Но чтобы руководитель или сторонний от аналитики пользователь мог разобраться, «что с чем и где», все данные загоняются в таблицы для визуализации, в соответствии со срезами. Например:

  • Срез по городам
  • Срез по профессиям
  • Срез по датам
  • Срез по источникам

И так далее.

На диаграммах в таблицах показываются различные соотношения вакансий и резюме:

Визуальная аналитика рынка труда
Пример реализации в power BI анализа 25 профессий в 10 городах за 4 среза дат

Power BI это наглядно, но лучше excel может быть только excel на большом экране.

Ну, а вообще, не так важна красота диаграммы, сколько наша (или ваша) способность ее понять. Обработка и визуализация не заменяют этапа интерпретации данных.

Интерпретация данных

Вот если вы подумали, что вышеописанное имеет хоть какое-то отношения к легким сложностям, то ваша наивность нас поражает! Всё рассказанное выше – это дело техники, времени и денег на вычислительные ресурсы.

Основная «проблема анализа рынка труда» — это перевести информацию в знания. Что означает тот или иной тренд или отклонения от среднего? Чем объясняется спад или подъем зарплаты на рынке или у конкретного крупно-отраслевого работодателя? Как это отразится на евреях на наших вопросах, целях и задачах? Куда бежать и что будет завтра?

В рамках жизни нашего проекта мы соприкасались с ~ сотней разных сторонних экспертов: и каждый из них имел свою собственную картину мира, в которую легко вписывал полученные данные по рынку труда. Только вот картины мира и итоговые выводы были у всех разными. Более того — чаще всего альтернативными (взаимоисключающими).

Особенно помогли нам в понимании простого факта, что одинаковых интерпретаций не бывает, два наслаивающихся события: COVID и СВО.

 До этого рынок был более-менее спокойным и казался всем «предсказуемым и понятным».

Анализируя статистику последних двух лет, каждый эксперт легко жонглировал цифрами исследования в пользу своего описания реальности, несмотря на то что эти же данные его коллега приводил как контрдоводы. Инструментов формальной логики, аргументации, «закона исключенного третьего» (A Ú Ø A) — для экспертов просто не существует. Это всё, что нужно знать об аналитике. Кисмет у нас такой, коллеги.

Поэтому в нашем проекте мы решили скакать в две разные стороны: получать данные и не пытаться их интерпретировать вообще, а молча ими делиться. И параллельно обучать нейросеть интерпретировать данные на основе «дискретных сущностей». Но об этом — в другом материале.

20 Ноября 2022 года