- BrainTools - https://www.braintools.ru -

CI-CD для карьеры: как я написал бота, который проходит HR-фильтры вместо меня

Любой разработчик знает: если действие нужно повторить больше двух раз — его надо автоматизировать. Мы настраиваем пайплайны для деплоя, пишем автотесты, используем линтеры.

Но когда дело доходит до поиска работы, мы превращаемся в биороботов.

Заходим на hh. Вбиваем фильтры. Читаем описание (которое на 90% копипаста). Пишем сопроводительное (которое никто не читает). Жмем кнопку. Повторить 100 раз.

Меня хватило на два дня. Потом я понял, что трачу часы на работу, которую должен делать скрипт.

Попытка №1: Тупой парсер (Python + Requests)

Сначала я решил задачу в лоб. Написал воркер, который:

  1. Мониторит новые вакансии по API (да, у hh оно есть, хоть и капризное).

  2. Фильтрует совсем мусор (галеры, неадекватные вилки).

  3. Шлет стандартный отклик.

Это работало, но плохо. Конверсия в просмотр была, конверсия в ответ — около нуля.

Проблема оказалась не в коде, а в “человеческом факторе” на той стороне. HR-ы и их ATS (Applicant Tracking Systems) не смотрят на сухие факты. Им нужно “шоу”. Им нужны ключевые слова, релевантный опыт [1] именно под их стек и “продающее” био.

Мое резюме техлида выглядело как json с перечислением технологий. Для машины норм, для HR — скучно.

Попытка №2: Подключаем LLM (RAG + Prompt Engineering)

Я понял, что узкое горлышко — это контент. Нужно генерировать уникальный контент под каждую вакансию.

Архитектура изменилась:

  1. Parser: Забирает текст вакансии, чистит от html-тегов и воды (“дружный коллектив”).

  2. Analyzer: LLM матчит мое резюме с вакансией.

  3. Generator: Самое интересное.

Я не стал просто просить GPT “напиши письмо”. Я скормил ей методологию STAR (Situation, Task, Action, Result).

Теперь бот не просто пишет “Я знаю Python”. Он пишет: “На прошлом месте оптимизировал легаси-код на Python (Action), что снизило затраты на инфраструктуру на 20% (Result)”.

Фича, которая взорвала конверсию: PDF Re-writer

Самым сложным было научить бота переписывать сам файл резюме.

Пришлось повозиться с генерацией PDF на лету. Бот берет “сырую” фактуру (ваш опыт), смотрит на вакансию и пересобирает резюме так, чтобы подсветить именно то, что ищет конкретный работодатель.

Если ищут Team Lead — подсвечиваем менеджмент. Если ищут Senior Backend — подсвечиваем архитектуру.

Технически это работает на связке Python-backend (FastAPI) + Telegram Front. Очереди разгребаем через Celery/Redis, чтобы не упереться в рейт-лимиты API.

Результаты и мораль

Я тестировал систему на себе и паре друзей.

— Время на поиск работы: 0 минут (только ответы на входящие).

— Конверсия в собес: выросла в 3 раза за счет гипер-персонализации.

Конечно, кто-то скажет, что это нечестно. Что боты засоряют рынок.

Но давайте честно: рынок уже засорен вакансиями-дублями и автоотказами. Мы просто уравниваем шансы.

Если HR использует софт для фильтрации нас, мы имеем полное моральное право использовать софт для прохождения их фильтров.

Где потыкать

Проект вырос из пет-проджекта в полноценный сервис “Аврора”.

Сейчас мы готовим релиз версии 2.0 с тем самым “умным переписыванием” резюме.

Код закрыт (SaaS), но API телеграма открыто для всех.

Если интересно посмотреть, как это работает в проде — велком в бота.

Ссылка на бота: https://t.me/auroracareer [2]

Буду рад ответить на технические вопросы в комментах: про обход капчи, работу с контекстным окном LLM и генерацию PDF.

Автор: motrni

Источник [3]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/24892

URLs in this post:

[1] опыт: http://www.braintools.ru/article/6952

[2] https://t.me/auroracareer: https://t.me/auroracareer

[3] Источник: https://habr.com/ru/articles/990438/?utm_source=habrahabr&utm_medium=rss&utm_campaign=990438

www.BrainTools.ru

Rambler's Top100