Компания с массовым наймом пришла собрать отклики в одно место и отсеивать неподходящих до рекрутёра.
До этого кандидаты писали россыпью - в личку рекрутёру, в комментарии под вакансией, на почту.
Половина здоровалась и пропадала, вторая присылала резюме, не ответив на условия по графику и городу.
Одно и то же приходилось переспрашивать руками, а сводить было некуда: таблица заполнялась по памяти и с опозданием в пару дней.
Отдельным условием шёл мягкий отказ - вакансии массовые, и репутация в городе тут дороже скорости.
Бот на Python и aiogram 3, состояние анкеты в FSM, служебные данные в SQLite, карточки уезжают в Google Таблицу.
Анкета идёт по шагам - позиция, город, возраст, готовый график, опыт, форма оформления, контакт для связи.
Отсекающие вопросы стоят первыми: если человек не проходит по формальным условиям, бот завершает разговор спокойно, без разбора причин, и предлагает оставить контакт под будущие наборы.
Резюме принимается файлом или ссылкой, файл кладётся на сервер, в карточку идёт ссылка на него.
Прошедшие получают оценку по анкете - баллы за опыт, за подходящий график, за близость к точке. В таблице карточки сортируются по этой сумме.
Рекрутёру падает уведомление с карточкой и кнопками пригласить, отказать, в резерв. Нажатие проставляет статус в таблице и отправляет кандидату готовый текст, шаблоны ответов правятся в той же таблице.
Ломается в таких ботах одно и то же - человек бросает анкету на середине. Прогресс сохраняется по шагам, при возврате бот продолжает с последнего вопроса, через сутки молчания уходит одно напоминание и дальше бот не пишет.
Так-же повторная анкета с того же аккаунта обновляет существующую карточку и дублей не плодит.
Отклики собираются в одном месте, рекрутёр открывает список, отсортированный по оценке.
За первый месяц через бота прошло около 400 анкет, до человека дошло чуть больше половины, остальных сняли формальные условия.
Первичный обзвон почти исчез: звонят теперь тем, кого зовут на собеседование.
Кнопки статусов дали побочный эффект - воронка найма считается сама, видно сколько кандидатов дошло до приглашения и сколько до выхода на работу.
У клиента на руках исходники, права на таблицу и инструкция, как поменять вопросы и текст отказа без разработчика.
После сдачи завели вторую вакансию с отдельной веткой вопросов и выгрузку резерва по городам.