AmazingHiring это инструмент для сорсинга (sourcing - поиск) кандидатов в сфере IT.
Идея people aggregators не нова и появилась больше 5 лет назад. Современная проблема сорсинга в IT объясняется тем, что только 10-15% кандидатов находятся в активном поиске работы и этого не хватает для текущих потребностей рынка (а потребность только растёт). К примеру, Яндекс сейчас нанимает больше сотни специалистов в месяц - и учитывая их требования к уровню кандидатов - для закрытия такого количества позиций активных кандидатов недостаточно.
Как сейчас выглядит процесс поиска кандидатов у IT рекрутера:
- забрасывание вакансии в соцсети и рекрутинговые платформы
- поиск по внутренней базе кандидатов компании
- поиск на HH (тут только горячие кандидаты)
- поиск на спец ресурсах - linkedin, moikrug и т.п.
- сложные методы поиска - google x-ray search, поиск на github, различные сорсинговые хаки и т.п.
- платные методы (Linkedin Recruiter - 9000$ в год на 1 место), и сервисы поиска (AmazingHiring)
Проблема в том, что рассчитывать на удачу (первые варианты) не работает, бесплатный поиск на Linkedin обычно не попадает в нужных людей, а все модные варианты, которые продвигают на HR конференциях - довольно сложные.
Тут на сцену и выходят people aggregators. В чём здесь плюсы:
- поиск в одном месте - не надо искать на 5 различных сайтах -> сильно экономит время
- возможность поиска по сложным критериям - навыки/должность/специализация/локация и т.п.
- найденные профили состоят из нескольких соцсетей. часто бывает так, что Linkedin профиль мало заполнен - Software Engineer с 8 летним стажем, но непонятно какими технологиями владеет кандидат. в AmazingHiring к этому профилю может быть добавлена github информация - получаается win win
- возможность писать напрямую на емейл - отклик выше чем сообщение через linkedin/moikrug
Самые известные игроки на рынке:
- Entelo. Работает в основном в usa и покрывает не только IT сферу
- Hiretual. +/- похож, но как то скис после GDPR
- TalentBin. Несколько лет назад был норм, но после покупки компанией Monster затих
- локальные сервисы (работают только в пределах своей страны) - типа TalentWunder - обычно прошигрывают нам по качеству данных
- В команде около 25 человек, 50/50 R&D и Sales&Marketing
- Продажи через sales manager, поиск потенциальных клиентов + маркетинг -> демо системы -> продажа
- Рост по выручке/клиентам примерно х2 в год
В продукт входит:
- поисковый сервис. доступ по подписке
- chrome extension https://chrome.google.com/webstore/detail/amazinghiring/didkfdopbffjkpolefhpcjkohcpalicd?hl=ru
Chrome extension есть в платной и бесплатной версии. В бесплатной не видно контактов и скрыта часть инфы. Обе версии требуют регистрации.
Платформа AmazingHiring состоит из нескольких частей:
- Поисковый сервис, которым пользуются рекрутеры:
- Frontend-1: JavaScript (React.js)
- Frontend-2: Chrome extension
- Middleware: Python, Django, PostgreSQL. Отвечает за авторизацию, права доступа, статистику работы клиентов, интеграции с внешними системами, лимиты, админку и данные относящиеся к клиентам - историю запросов, настройки и т.п.
- Backend: Java, Spring, Apache Solr, HBase, PostgreSQL, Hadoop, RabbitMQ. Отвечает за поиск, профили и другие бизнес фичи
-
Crawler - распределенная система, отвечающая за получение данных из различных источников.
Состоит из сервера планировщика и серверов спайдеров, всё написано на Java и Kotlin. Есть отдельная система, отвечающая за realtime обновление профилей, которых рекрутеры просматривают на production - они скачиваются и пересобираются в приоритетном порядке. Используется Java, JavaScript; Spring, Netty, HBase, RabbitMQ, Selenium -
MapReduce/BigData платформа для обработки данных
Кластер серверов, на котором хранятся и обрабатываются данные. Система отвечает за хранение и обработку информации о профилях. Конвейер для изготовления БД пригодной для отправки на production из сырых данных из интернета (html страниц). Процесс сборки БД состоит из нормализации данных, приведения профилей с разных сайтов к одному виду, склейки подпрофилей одного человека в один, рассчёт рейтингов и прочей вспомогательной информации, индексацию и многое другое. Процесс сборки сейчас идет около 30ч. БД 150TB, около 700млн изначальных профилей и 150млн конечных. Есть unit и интеграционные тесты на алгоритмы и сам процесс сборки. Тест имитирует процесс сборки на ~200 профилях. Есть возможность сборки мини базы за несколько часов (пара млн профилей) для быстрого тестирования каких то фич. Есть метрики снимаемые в процессе сборки для раннего детектирования ошибок (например видно что после импорта github профилей счётчик показал 15млн, а в прошлой сборке было 35млн - ктото что-то сломал - процесс останавливается, ищется ошибка, откатывается на один шаг и перезапускается. Используется: Java, Bash, Python; Hadoop, Spark, HBase, Zookeeper; Machine Learning (OpenFace, OpenCV, XGBoost, PyTorch, SparkML) -
Система аналитики
Набор сервисов, отвечающих за сбор, хранение, мониторинг и отчёты по метрикам продукта и данных. Используется: Java, RabbitMQ, HBase/Hadoop/Spark, InfluxDB, Grafana
Помимо этого есть несколько небольших вспомогательных сервисов.
В цифрах:
- Более 70 открытых источников, из которых собирается информация
- В базе более 700 млн исходных (одиночных) профилей, и около 100млн комплексных профилей
- Объем БД порядка 100ТБ
- Pipeline обработки данных для production БД составляет около 40ч
- До 10млн страниц в день скачивается в Crawler
- Десятки продуктовых метрик
Обзор системы: https://www.youtube.com/watch?v=ORZG7Rha_Sk
Работаем по Scrum, двухнедельные спринты, планирование спринта всей командой, синкапы через день. Раз в квартал планируются глобальные цели. Релизы бэкенда раз в 2 недели, релизы фронтенда раз в неделю.
- Экспертное знание java
- Алгоритмы и структуры данных
- Умение разбираться в сложных технических проблемах
- Архитектура систем
- Работа с BigData
- Работа с распределёнными сервисами
- Работа поисковых систем / индексации
- Хорошие навыки коммуникации
- Базовые навыки управления проектами и командой
- Составление поискового запроса по описанию вакансии
- Рекомендации кандидатов на основе вакансии и отобранных в неё кандидатов
- Реализация отдельного спайдера для скачивания аватарок профилей
- Реализация поиска кандидатов в радиусе от выбранной геолокации
- Определение аномалий в метриках БД между релизами
- Кластеризация сервиса поискового бэкенда
- Реализовывать новые фичи и технические задачи
- Внедрять новые практики в процесс разработки
- Отвечать за работоспособность и развитие одного из компонентов системы
- Управление личными проектами: сбор требований, разработка, внедрение, сбор обратной связи
- Участвовать в технических обсуждениях, планировании, проектировании архитектуры и т.п.
- Участвовать в проработке продуктовых задач, генерации идей, валидировании гипотез
Я 15 лет назад написал Систему поиска по смыслам - среди текстов - планировал что-то подобное сделать
Сейчас написал блокчейн платформу Erachain - поидее тоже полезное как база данных