Как мы участвовали в Smart Data Hack. Headhunter и Труд всем

Сходили на Smart Data Hack, заняли первое место. Пока ничего не забылось, хотел бы рассказать, как всё было. Для мероприятия Headhunter сделал дамп вакансий за 2014, 2015 годы, дамп резюме без персональных данных и что-то ещё по мелочи. Минтруд пришёл с выгрузкой всех открытых вакансийсо своего Труда всем. Ещё были данные от ювелирного магазина »585», но на них я совсем не смотрел.

«Труд всем» внешне очень похож на другие сайты для поиска работы. Фильтры, выдача, резюме — всё стандартно. Наша идея заключалась в том, чтобы поискать, что отличает сайт от конкурентов, оправдано его существование или нет.
442810030b944a88b9e47c7decccd189
Для начала выгрузили оценки трафика для HH, Труд и Job.ru с Similarweb. Труд сейчас в 10 раз меньше HH, но с лета растёт. Интересно, что Job.ru последний год падает, возможно, скоро Труд его обгонит.
f10b03951a83421d8e0ce4461cc55d6c

Данные по вакансиям из HH выглядели так (15Гб):

{
  "alternate_url": "http://career.ru/vacancy/12422377",
  "code": null,
  "premium": false,
  "description": "

Должностные обязанности:

  • Обслуживание клиентов (знание ассортимента продукции, помощь покупателю в выборе)
  • Контроль приготовления заказов
  • Комплектация заказов
  • Работа с кассой
  • Работа с документацией
  • Поддержание чистоты в зале

Требования:

  • Гражданство РФ
  • Огромное желание развиваться в ресторанном бизнесе!
  • ПК- уверенный пользователь
  • Знание 1С - будет преимуществом)
  • Позитивный жизненный настрой!

Мы предлагаем:

  • Работа в динамично развивающейся компании
  • Молодой дружный коллектив
  • График работы 2/2 с 10 до 23часов
  • Заработная плата- ставка 1700-1800р + премии
  • Возможность карьерного роста в области управления ресторанным бизнесом
  • Возможно обучение
  • Работа в шаговой доступности от метро
  • Сменный график работы
", "schedule": { "id": "fullDay", "name": "Полный день" }, "suitable_resumes_url": null, "site": { "id": "hh", "name": "hh.ru" }, "billing_type": { "id": "standard", "name": "Стандарт" }, "published_at": "2015-11-05T19:19:35+0300", "test": null, "accept_handicapped": false, "experience": { "id": "noExperience", "name": "Нет опыта" }, "address": null, "key_skills": [], "allow_messages": true, "employment": { "id": "full", "name": "Полная занятость" }, "id": "12422377", "response_url": null, "salary": { "to": 40000, "from": 25000, "currency": "RUR" }, "archived": false, "name": "Продавец-кассир (кассир-администратор)", "contacts": null, "created_at": "2015-11-05T19:19:35+0300", "area": { "url": "https://api.hh.ru/areas/1", "id": "1", "name": "Москва" }, "relations": [], "employer": { "logo_urls": { "90": "http://hh.ru/employer-logo/1439461.png", "original": "http://hh.ru/employer-logo-original/249197.png", "240": "http://hh.ru/employer-logo/1439462.png" }, "vacancies_url": "https://api.hh.ru/vacancies?employer_id=1111042", "name": "ТЫ ПРОФИ", "url": "https://api.hh.ru/employers/1111042", "alternate_url": "http://hh.ru/employer/1111042", "id": "1111042" }, "response_letter_required": false, "apply_alternate_url": "http://hh.ru/applicant/vacancy_response?vacancyId=12422377", "negotiations_url": null, "department": { "id": "1111042-1111042-wokwok", "name": "Суши WOK" }, "branded_description": null, "hidden": false, "type": { "id": "open", "name": "Открытая" }, "specializations": [ { "profarea_id": "22", "profarea_name": "Туризм, гостиницы, рестораны", "id": "22.175", "name": "Начальный уровень, Мало опыта" }, { "profarea_id": "22", "profarea_name": "Туризм, гостиницы, рестораны", "id": "22.193", "name": "Официант, Бармен" }, { "profarea_id": "22", "profarea_name": "Туризм, гостиницы, рестораны", "id": "22.504", "name": "Хостес" }, { "profarea_id": "22", "profarea_name": "Туризм, гостиницы, рестораны", "id": "22.329", "name": "Управление ресторанами, Барами" }, { "profarea_id": "15", "profarea_name": "Начало карьеры, студенты", "id": "15.313", "name": "Туризм, Гостиницы, Рестораны" } ] } ...

Из Труда — так:






    http://trudvsem.ru/vacancy/card/1021801058443/2bbb11f1-3a46-11e5-a0ef-3bdbd1a6e39d
    http://trudvsem.ru/vacancy/card/1021801058443/2bbb11f1-3a46-11e5-a0ef-3bdbd1a6e39d
    2015-10-30 00:00:00 MSK
    2015-11-13 03:19:57 MSK
    от 11500 до 11500
    «руб.»
    
        Работы, не требующие квалификации
    
    Монтажник
    Полная занятость
    Сменный график
    ОПЫТ РАБОТЫ ПО МОНТАЖУ ОХРАННЫХ И ПОЖАРНЫХ СИСТЕМ
    ВЫПОЛНЕНИЕ МОНТАЖА,НАЛАДКИ И ТЕХНИЧЕСКОГО ОБСЛУЖИВАНИЯ СИСТЕМ АВТОМАТИЧЕСКОЙ ПОЖАРНО-ОХРАННОЙ СИГНАЛИЗАЦИИ
    
        
Социальный пакет

    
    
        Среднее профессиональное
        ОПЫТ РАБОТЫ ПО МОНТАЖУ ОХРАННЫХ И ПОЖАРНЫХ СИСТЕМ
Ответственность
Удмуртская республика, 427405, г. Воткинск, ул. ЛЕНИНА, д.24 53.992971 57.053191
ООО ЧОП "КОБРА" KOBRAOOO@MAIL.RU 8(34145)51001 СОЛОВЬЕВ АЛЕКСАНДР АНАТОЛЬЕВИЧ false
...

Удивительно, но факт — число открытых вакансий на Труде чуть больше, чем на HH (700Мб):
aad0a86b46b6490a8f4420a254bcf232

Может быть, на Труде вакансии никто не закрывает и они валяются там годами? Нет, 80% вакансий были открыты в прошлом месяце. У HH — 99%. Пик в прошлый понедельник на HH, возможно, связан с тем, что рекрутеры иногда пересоздают вакансии, чтобы держать их в топе выдачи. 4 ноября — праздник, вакансий мало:
17c55854801048ebafc9ce6c30ea1296

Разных работодателей на Труде даже больше, чем на HH:
6cabbc4451ba4957af62020dd1043d39

Дальше, конечно, было интересно как-то сравнить вакансии и работодателей. На HH ведётся хорошая классификация вакансий:
ae1b3a6f65fa4cbb941182c894b278ee

С помощью этих данных удалось сделать простой классификатор. Для названия вакансии он выводил распределение по категориям:
f7aeb0dee7094221923722b876b56d6f

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

Классификатор был запущен на всех вакансиях HH и Труда. Получилось, что HH — это в основном про продажи, ИТ и банки. Труд, наоборот, про нормальные профессии — про врачей, учителей, рабочих.
09d801b1201647e8afd7005137b15632

Была гипотеза, что HH рассчитан в основном на московскую аудиторию, а Труд на региона. Честно посчитали распределение вакансий по географии. Действительно, у HH ~45% вакансий приходится на Москву, Питер и Московскую область, а у Труда только ~15% (да, c Питером, какой-то косяк):
7ddb285c04254e86a946e4969890329e

В конце решили сравнить зарплаты на порталах. На Труде зарплаты в 2–3 раза ниже, и, что интересно, слабо отличаются между категориями:
ca0c435d03a2463c98a6d51fb9dd02ca

«Это всё Москва», подумали мы. И сделали срез по регионам. Но и там зарплаты на HH значительно выше. Наверное, дело в том, что на Труде представлены в основном государственные учреждения, там зарплаты ниже:
af4472a71d8a407898d084d797926500

Ещё интересно, что на Труде большая часть вакансий со сменным графиком, а не с нормальным, как на HH:
d410485c3b8f497c9e1d143acccc7553

Получается, что порталы заметно отличаются. Если человек, не программист и не менеджер, живёт не в Москве, и нормально относится к работе в государственных организациях, ему больше подходит «Труд всем».

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

© Habrahabr.ru