Сделали бота, который переводит первичные собеседования для рекрутеров и HR-специалистов на новый уровень — ★ автоматизированный ★
Наш генеральный директор BotCreators Ахмад Боков за последние шесть лет провёл почти 500 собеседований. А это несколько месяцев беспрерывного общения, если умножить рабочее время на количество людей, с которыми нужно было созвониться и поговорить.
Напрашивался продукт, который помог бы переосмыслить рутинные процессы — так появился Кружок.
Как мы планируем с его помощью сэкономить тысячи часов на собеседовании и каких уже результатов удалось достичь с совершенно новым продуктом на рынке, рассказываем в этом кейсе.
Задача проекта
— Сделать дизайн для мини-приложения и добавить его в чат-бота
— Создать две пользовательские роли: рекрутер и кандидат
— Подготовить тексты для сообщений в Телеграме и интерфейса мини-приложения, в том числе инструкции по использованию чат-бота
— Добавить функции записи видеокружочков и сохранения дополнительных материалов от рекрутера
— Настроить отправку уведомлений для рекрутера о прохождении интервью нового кандидата
— Реализовать функцию сохранения видео от рекрутера и кандидатов в формате ссылки в объектном хранилище
— Создать административную панель с функцией отображения статистики в формате параметр-число
— Настроить в мини-приложении функции просмотра, отбора, оценки и переноса кандидатов в архив
— Добавить возможность оставлять комментарии для профиля кандидата
— Реализовать функцию по включению и выключению вакансии по желанию рекрутера
— Создать видеоплеер для воспроизведения видеокружочков с возможностью включать их на скорости х1,5 и х2
Цель проекта
Создать чат-бота с функцией записи видеокружочков для создания и прохождения первичного собеседования
Технологии
Продукт
Если после появления идеи сразу приступить к реализации, можно потерять впустую и время, и деньги.
Чтобы такого не допустить, сначала нужно провести кастдевы. Это когда ты находишь потенциальную аудиторию своего продукта, задаёшь им открытые вопросы, а затем анализируешь всё, что люди наговорили.
После этого появляется понимание — нужен ли твой продукт людям на самом деле и если нужен, то чего они ждут от него в первую очередь.
Ахмад провёл 39 таких кастдевов с сотрудниками рекрутинговых агентств и с рекрутерами, работающими на себя. Среди его вопросов были такие: «Сколько обычно у вас уходит времени на одного кандидата?», «Приходится ли вам повторять одну и ту же информацию из раза в раз?», «Попробовали бы вы новый инструмент, который мог бы автоматизировать эти процессы?».
Опыт Ахмада срезонировал с опытом опрашиваемых людей: даже на первичное собеседование одного человека уходит от 30 минут до часа; одно и тоже приходится повторять так часто, что уже даже перестаёшь считать; просто принесите что-то новое, мы готовы пробовать разные варианты.
Вывод однозначный: разработке бота быть.
В BotCreators собрались энтузиасты-профессионалы, поэтому вопроса, с кем можно было разработать продукт, у Ахмада не возникло.
Сначала он просто познакомил свою идею с ребятами — сделать чат-бота с возможностью записывать вопросы для интервью и отвечать в формате видеокружочков.
Затем все вместе обсудили, как видят этот продукт и на какие этапы можно поделить разработку. От подхода в работе — разрабатывать по спринтам — решили не отходить. А ещё поставили конкретную цель с чётким сроком — что должен уметь наш бот и когда мы можем выкатить MVP-версию в прод.
MVP — это минимально жизнеспособный продукт. Для нас это означает, что продукт должен иметь такие функции, без которых он сам по себе просто не имеет смысла.
Как мы разрабатывали бота
Сначала проджект-менеджер обсудила с продакт-менеджером список задач для разработки. После этого распределила их в команде между ответственными за разработку продукта.
Системный аналитик продумал вместе с командой дополнительные фичи, а затем оформил первоначальные пожелания и новые функции в подробный юзкейс.
Также он визуализировал пользовательские сценарии: нарисовал прототипы экранов чат-бота, оформил диаграммы последовательности для рекрутера и кандидата, а также составил карту пользовательских историй.
Всё это помогло разработчикам сосредоточиться сначала на самых важных функциях, а ещё ни разу не откатывало всю команду назад в уже сделанной работе в целом.
Практически параллельно с системным аналитиком начал работать дизайнер. Ему нужно было разработать интерфейс мини-приложения, в которое мог зайти рекрутёр после того, как создал новую вакансию.
Для этого он сначала подготовил прототипы экранов, затем предложил несколько вариантов дизайн-концепции и уже после их согласования разработал дизайн-макет.
Уже после этого два наших Python-разработчика стали писать код для бота, они же помогли написать кастомный API и разработать административную панель. Фронтендер тем временем занялся вёрсткой мини-приложения, а когда кастомный API был готов, помог его подключить.
Пара слов про кастомный API и админ-панель. Кружок — это внутренний бот: интеграция с внешней системой для него не требовалась. Но подружить бэкенд и фронтенд нам всё-таки было необходимо, поэтому какое-то время ушло на написание дополнительного кода.
А с админ-панелью всё было ещё проще — она нужна нам для сбора статистики по четырём параметрам: Количество созданных вакансий, Количество пройденных интервью, Количество рекрутеров и Количество кандидатов.
Эти параметры позволяют нам наглядно видеть, пользуется ли наш продукт спросом в режиме реального времени.
После того как были готовы прототипы для мини-приложения, а бот уже вовсю работал на тестовом сервере, подключился копирайтер, который подготовил тексты для чат-бота и мини-приложения.
Каждый раз, когда на тестовый сервер выкатывалась новая функция, её тестировал наш QA. Он же проводил исследовательское тестирование по каждой из трёх уже завершённых итераций проекта.
Основное же тестирование началось примерно за две-три недели до запуска. Так как продукт был новым не только для нас, но и для рынка в целом, мы дополнительно протестировали бота внутри команды, а ещё пригласили тестировщиков с аутсорса — ребята как раз приходят в такие моменты, когда нужен быстрый новый взгляд со стороны.
За два дня до официального запуска мы выкатили бота на прод и ещё раз хорошенько его протестировали. Тестировщик не стеснялся предлагать какие-то безумные сценарии — никогда точно не знаешь, с чем потом предстоит столкнуться пользователям.
Но всего бы этого не было без наших архитектора и девопса. Первый помог выстроить элегантную систему базы данных, а второй настроил серверы и задеплоил тестовую и продовые версии.
Чат-бот не сразу строился
Всего у проекта было три итерации. В первой бот был без инлайн-кнопок — запросы для него отправляли через ввод команд. Данные при этом выгружались в эксель-файл, а статистику бот не собирал вовсе — ещё не было админки.
Во второй итерации появилась привязка данных к Гугл Таблицам, а видеокружочки стали загружаться в облачное хранилище.
В третьей итерации появились админка и мини-приложение. Наконец-то бот получил завершённую логическую реализацию.
Итак, что же такое мини-приложение, и почему нам было недостаточно одного бота? Чтобы ответить на этот вопрос, нужно объяснить логику сценарного использования. Но не волнуйтесь, сложно не будет.
Всего у чат-бота есть две роли: пользователь-рекрутер и пользователь-кандидат. Сразу после приветствия бот попросит выбрать подходящую роль, а уже потом присылает инструкцию по работе с ним.
Если выбрать роль рекрутера, бот расскажет, как подготовить вопросы для первичного собеседования, и предложит дополнить его вспомогательными материалами — презентацией о компании и ответами на часто задаваемые вопросы.
После этого бот сохранит интервью и пришлёт на него постоянную ссылку — именно её рекрутер может отправить кандидатам, чтобы те сразу могли проходить интервью.
Вторым сообщением бот открывает рекрутеру доступ к двум кнопкам — по первой можно перейти в профиль Кружка, а по второй создать ещё одну вакансию, если в этом есть необходимость.
Профиль Кружка — это как раз то самое мини-приложение, которое мы уже упоминали выше. Выглядит оно просто: если нажать на кнопку, открывается новое окно прямо поверх чат-бота в Телеграме. Фактически, это сайт внутри чат-бота. Но, конечно, это очень грубое обобщение.
В профиле Кружка рекрутер может просматривать отклики кандидатов, оценивать их профиль и оставлять заметки с важной для себя информацией. Здесь же можно управлять вакансиями: открывать и закрывать для них отбор кандидатов. В последнем случае соискатели больше не смогут записывать свои ответы по привязанной к вакансии ссылке.
Возвращаемся к выбору роли. Если выбрать роль кандидата, то бот попросит указать ID — номер интервью, который указывается в конце ссылки на вакансию.
Чтобы не вводить номер вручную, можно перейти по ссылке от рекрутера, тогда бот не будет спрашивать ID и сразу перейдёт к следующему шагу: пришлёт кандидату инструкцию, как проходить интервью.
Если рекрутер во время создания интервью загрузил презентацию и FAQ, тогда бот также покажет их кандидату. После этого первичное собеседование считается завершённым — бот об этом тоже обязательно сообщит.
Сложности или нюансы?
За простой функциональностью скрываются тысячи мелочей. Так как такой продукт мы раньше не разрабатывали, с некоторыми багами и проблемами встретились впервые.
Например, непостоянность ссылок.
Вспомним первую и вторую итерации чат-бота. На первой стадии бот выгружал данные в эксель-файл, тогда как на второй уже мог делать это напрямую в Гугл Таблицы.
В таблице видео загружается в формате ссылки, причём для каждого вопроса есть свой порядковый номер — так точно не запутаешься.
Во второй итерации ссылки на видео копировались из облачного хранилища Яндекса, а не из Телеграма напрямую, и вот почему. В Телеграме у каждой ссылки — не той, что ведёт на сообщение, а именно корневой — есть свой срок хранения. Как только он истекает, дальше адрес ссылки меняется на новый. Если кандидаты запишут свои видео сегодня, а рекрутер захочет посмотреть их завтра, то он уже не сможет это сделать — видео по указанным в таблице ссылкам будут недоступны. С облачным хранилищем же такой проблемы не было. Но появилась другая.
Нам нужно было добавить в чат-бота мини-приложение, в котором видео бы подгружались в автоматическом режиме, а не вручную, как это было раньше.
Решений у этого два. Либо мы скачиваем каждое видео и храним где-то у себя, либо загружаем их в какое-то промежуточное место — объектное хранилище.
Мы выбрали второй вариант, и тем самым решили сразу несколько вопросов: мы не превышаем свой объём хранения, у нас появляются постоянные ссылки; сервер объектного хранилища не пересекается с сервером, на котором находятся чат-бот и мини-приложение.
Так данные стали подгружаться в мини-приложение автоматически. Именно там удобнее всего следить за откликами: на экране в формате слайдера отображаются как вопросы рекрутера, так и ответы кандидата.
Решив одну проблему, переходим к решению второй и третьей. На устройствах с iOS некорректно работало окно с заметкой кандидата — клавиатура перекрывала кнопку с сохранением заметки. А ещё отдельно на маках не свайпался слайдер с ответами из FAQ. С этим мы тоже быстро справились.
Если на начальных этапах хорошо проявляется экспертность продакт-менеджера — он в ответе за анализ ЦА, стратегию продукта и приоритеты по работе с бэклогом, — то во время самой разработки практически бесценной становится роль проджект-менеджера — именно он распределяет задачи, контролирует сроки и вовремя «тушит» пожары.
Наши планы
К этому моменту, пока вы читаете этот текст, в чат-бот приходят новые пользователи: рекрутеры записывают вопросы для интервью, а кандидаты отправляют ответы по открытым вакансиям.
Наш следующий шаг после выпуска MVP — разработать версию 1.2. Сейчас в нашем бэклоге есть идеи и по доработке интерфейса, и новые фичи, и дополнительные функции.
Есть и амбициозные цели — сэкономить тысячи рабочих часов специалистам, которым ежедневно приходится собеседовать людей. Для этого мы будем рассказывать о продукте нашей потенциальной аудитории и предлагать им попробовать новый инструмент.
Первые результаты
Ещё до релиза у продукта уже началась «обкатка» системы.
Основатель HR-консалтингового агентства HR Grow Виктор Ширяев стал одним из первых пользователей, который открыл вакансию «Операционный директор» в нашем чат-боте.
Пара фраз из его отзыва:
«Думал о найме еще одного рекрутера, но его с легкостью заменяет бот…»
«…это экономит и нервы тоже, потому что к концу недели уже устаешь работать с людьми по несколько часов в день»
Также ботом воспользовалась сеть стоматологических клиник, которая как раз искала имплантолога и администратора. Но самый показательный результат получился у нас в BotCreators. Мы себе так Python-разработчика и стажёра по Java нашли. По-моему, это уже успех!
Команда
- Боков Ахмад
- Цепаева Анастасия
- Ребров Михаил
- Новиков Николай
- Хрущёва Петра
- Авдеев Сергей
- Ершов Валерий
- Гогорян Даниил
- Кочанов Андрей
- Савельев Вадим
- Кочанова Александра
Итоги
Совсем скоро ИИ станет нашим персональным помощником, а средняя скорость домашнего интернета приблизится к одному терабайту в секунду.
Мы в BotCreators разработали Кружок, чтобы тоже внести свой вклад в развитие современного мира. Пусть рекрутеры больше не устают, проверяя отклики от кандидатов, а кандидаты с интересом и удовольствием проходят даже первичные собеседования.
Наша техническая статистика:
Один чат-бот
Одно мини-приложение
Три итерации
1,5 месяца ушло на аналитику, прототипы и дизайн
2 месяца на разработку и вёрстку
2 недели на тестирование
С Кружком уже сэкономили:
— другие компании 18 часов
— наши HR 20 часов