CI-CD для карьеры: как я написал бота, который проходит HR-фильтры вместо меня. python.. python. искусственный интеллект.. python. искусственный интеллект. Исследования и прогнозы в IT.. python. искусственный интеллект. Исследования и прогнозы в IT. карьера в it.. python. искусственный интеллект. Исследования и прогнозы в IT. карьера в it. Мессенджеры.. python. искусственный интеллект. Исследования и прогнозы в IT. карьера в it. Мессенджеры. Поисковая оптимизация.. python. искусственный интеллект. Исследования и прогнозы в IT. карьера в it. Мессенджеры. Поисковая оптимизация. разработка ботов.

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

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

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

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

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

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

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

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

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

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

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

Мое резюме техлида выглядело как 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

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

Автор: motrni

Источник

Rambler's Top100