Как я отучил нейросеть писать «Я коммуникабельный» и заставил её проходить HR-фильтры. chatgpt.. chatgpt. DIY или Сделай сам.. chatgpt. DIY или Сделай сам. hh.ru.. chatgpt. DIY или Сделай сам. hh.ru. llm.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация. искусственный интеллект.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация. искусственный интеллект. карьера.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация. искусственный интеллект. карьера. Карьера в IT-индустрии.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация. искусственный интеллект. карьера. Карьера в IT-индустрии. Машинное обучение.. chatgpt. DIY или Сделай сам. hh.ru. llm. nlp. python. автоматизация. искусственный интеллект. карьера. Карьера в IT-индустрии. Машинное обучение. поиск работы.

Сейчас каждый второй джун пытается генерировать сопроводительные письма через ChatGPT.

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

Стандартный ответ LLM выглядит так:

«Уважаемый менеджер по найму! Я с большим энтузиазмом пишу вам, чтобы выразить свой интерес к позиции… Я обладаю уникальным сплавом навыков…»

Это мусор. Это «AI-slop», как пишут в комментариях. Такие письма летят в корзину, потому что они пустые.

Когда я писал своего агента для поиска работы , передо мной стояла инженерная задача: сделать так, чтобы робот звучал как уставший, но профессиональный мидл-разработчик, а не как восторженный робот.

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

Архитектура генератора

Просто скармливать текст вакансии в модель — ошибка. Модель «поплывет» и начнет лить воду.

Я разбил процесс на 3 этапа:

  1. Extraction (Выжимка фактов): Из вакансии достаем стек и боли.

  2. Matching (Сопоставление): Ищем пересечения с моим JSON-резюме.

  3. Generation (Написание): Генерируем текст по жестким правилам.

Этап 1. Чистка вакансии

Вакансии на hh зашумлены. Там куча воды про «печеньки» и «дружный коллектив». Если это подать в LLM, она начнет писать про печеньки.

Сначала я чищу HTML, оставляя только блоки Requirements и Tasks.

Python

# Псевдокод логики очистки
def clean_vacancy(html_text):
    soup = BeautifulSoup(html_text, 'html.parser')
    # Убираем все лишнее, оставляем только требования
    text = soup.get_text()
    # LLM-экстрактор достает только хард-скиллы
    key_skills = llm.extract_skills(text) 
    return key_skills

Этап 2. Промпт-инжиниринг: Убиваем «Робота»

Самое сложное — заставить модель писать сухо и по делу.

Я использовал технику Negative Prompting (запрет определенных паттернов) и Few-Shot Learning (показал ей примеры хороших писем).

Вот упрощенная версия моего системного промпта:

Role: Ты — Python-разработчик с 4 годами опыта. Ты пишешь короткое сообщение рекрутеру.

Constraints (Запреты):

  • ЗАПРЕЩЕНО использовать слова: “энтузиазм”, “уникальный шанс”, “рассмотрите мою кандидатуру”, “синергия”.

  • Не используй вводные конструкции (“Я пишу вам, чтобы…”). Сразу к делу.

  • Не используй сложные деепричастные обороты.

  • Тон: спокойный, уверенный, немного неформальный.

Task:

  1. Найди в вакансии требование X.

  2. Найди в моем резюме опыт Y, который закрывает это требование.

  3. Напиши 2-3 предложения по формуле: “Увидел, что вам нужен [X]. Я делал это на проекте [Project Name], используя [Tech Stack]”.

Борьба с галлюцинациями

Главный страх автоматизации — нейросеть припишет вам опыт, которого нет.

Вакансия: «Нужен опыт с Kubernetes».

Резюме: Docker.

Плохой бот: «Я эксперт в Kubernetes».

Мой бот: «У меня плотный опыт с Docker, с Kubernetes знаком на базовом уровне».

Как это сделано?

Я добавил шаг Fact-Checking. Перед отправкой письма второй (более дешевый) инстанс модели проверяет сгенерированный текст на соответствие исходному JSON-резюме. Если найдено несоответствие — генерация перезапускается.

Результаты: Было / Стало

Default ChatGPT:

«Здравствуйте! Меня очень заинтересовала ваша вакансия Backend Developer. Я считаю, что мой опыт работы с Django позволит мне внести неоценимый вклад в развитие вашей компании…»

(Вердикт: Вода. Скип.)

Мой агент :

«Добрый день.

Заметил в описании, что вы планируете переезд с монолита на микросервисы.

На прошлом месте в Fintech-проекте я как раз занимался распилом легаси на FastAPI + RabbitMQ, процесс занял полгода.

Готов обсудить детали, если этот опыт релевантен для вас сейчас.»

(Вердикт: Конкретика. Приглашение.)

Чтобы автоматизация работала, нужно потратить 80% времени не на код отправки запросов, а на тю��инг лингвистической модели.

Рекрутеры банят не ботов. Рекрутеры банят скучных спамеров.

Если бот пишет по делу лучше, чем 90% живых кандидатов — его зовут на собеседование.

Код, конечно, я полностью не выложу (коммерческая тайна), но логи работы системы и примеры генерации под разные стеки (Java, JS, PM) показываю в своем канале.

Сейчас там идет открытый бета-тест.

[Ссылка на канал]

Автор: developer_22

Источник

Rambler's Top100