.reveal{opacity:1!important;transform:none!important}

От отклика до выхода на работу

Отклики, переписка и этапы найма собраны в одной системе. Кандидат может посмотреть свой статус в личном кабинете.

Отклики приходят с разных площадок. Рекрутеру нужно не потерять кандидата, избежать дублей и понимать, кто с ним уже общался.

Кандидаты, переписка и этапы подбора собраны в одном месте. За каждым кандидатом можно закрепить менеджера и проследить путь до найма.

  • Отклики с hh.ru и Авито

  • Поиск повторных кандидатов

  • Этапы собеседования, пробного дня и найма

Обезличенный список вакансий и откликов на синтетических кандидатахОткрыть полный экран ↗
Back office: вакансии и отклики (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Ещё экраны продукта
Карточка кандидата с выдуманными контактными даннымиОткрыть полный экран ↗
Карточка кандидата: контакты и история статусов (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Экран мессенджера с синтетической перепискойОткрыть полный экран ↗
Мессенджер: переписка рекрутера и кандидата (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
Портал кандидата с примером статуса откликаОткрыть полный экран ↗
Портал кандидата: статус отклика и уведомления (реконструкция экрана, синтетические данные)На телефоне показан увеличенный фрагмент. Полное изображение откроется в новой вкладке.
  1. Собрать отклики

    Отклики с площадок приходят в одну систему. Она проверяет, есть ли кандидат в базе, чтобы не создавать дубликат.

  2. Связаться с кандидатом

    За откликом закрепляют менеджера. Переписка доступна рядом с данными кандидата.

  3. Этапы найма

    Интервью, стажировка и решение о трудоустройстве фиксируются с историей статусов и причинами отказа.

  4. Обновить данные

    Новый статус передаётся на площадку. Если связь прервалась, система повторяет попытку.

Для технической команды: как устроено решение

Слой коннекторов принимает события с внешних площадок и передаёт их в фоновые задачи, которые обновляют модель кандидата и вакансии; back office и портал кандидата используют общие данные с разными правами доступа, а живые обновления идут через отдельный канал сообщений.

  • Слой коннекторов к внешним площадкам
  • Фоновые задачи приёма и синхронизации
  • Back office
  • Портал кандидата
  • Канал живых обновлений
Общая модель кандидата, вакансий и статусов

Надёжность

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

Решения и ограничения

Необработанное событие сохраняется целиком и может быть повторно обработано позже, а не отбрасывается.

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

Отклик не теряется из-за временной проблемы синхронизации данных.

Дедупликация учитывает не только идентификатор события, но и совпадение кандидата по контактным данным.

Внешняя площадка может повторно доставить одно и то же событие с новым идентификатором.

Один и тот же кандидат не создаётся в системе повторно.

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

Изменение статуса нужно синхронизировать с внешней площадкой надёжно, а не в рамках одного HTTP-запроса пользователя.

Временная недоступность внешней площадки не приводит к потере изменения статуса.

Идентифицирующие поля анонимизируются автоматически по истечении настроенного срока хранения.

Персональные данные кандидата нельзя хранить неограниченно после завершения процесса.

Жизненный цикл персональных данных заложен в продукт, а не оставлен на ручной регламент.

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

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

Переписка не задваивается даже при задержке подтверждения от внешней площадки.

Каждая исходящая операция синхронизации хранит собственное состояние и обрабатывается независимо от остальных.

Синхронизация статуса на площадку и автоответ кандидату — разные операции, и обе не должны зависеть от результата друг друга.

Сбой одной операции не блокирует и не откатывает другую.

Технологии

  • Python
  • Django
  • PostgreSQL
  • Celery
  • Redis
  • Channels / WebSocket
  • Docker Compose

Похожая задача у вас?

Что мешает работать?

Расскажите в двух словах. Техническое задание и готовый бюджет не нужны для первого разговора.

Андрей прочитает сообщение и уточнит задачу. Если видим, чем помочь, предложим следующий шаг.

Написать Андрею напрямую

Отправляя форму, вы принимаете условия обработки данных.