Как мы устали искать работу руками, создали AI-агента на Python + Gemini, который реверс-инжинирит выдачу вакансий и «допрашивает» пользователя, чтобы улучшить резюме. Релиз версии 2.0 сегодня в 18:00.

Привет, Хабр! На связи команда стартапа Аврора.

В нашей команде объединились экспертиза IT-рекрутмента и Python-разработка. И нас, как и вас, достал современный найм.

В 2025 году поиск работы превратился во вторую работу. Бесконечный думскроллинг, фильтры HH, которые показывают сеньору вакансии стажеров, и "немые" отказы. Мы решили, что эту рутину должен делать искусственный интеллект.

Сегодня, 8 декабря, ровно в 18:00 мы релизим версию 2.0 нашего AI-агента. Ниже - рассказ о том, как мы заставили нейросеть «пытать» кандидата вопросами, чтобы вытащить цифры для резюме, как построили снайперский поиск вакансий и почему отказались от Redis в пользу чистого SQL.

Проблема №1: Почему Сеньор видит вакансии Джунов (и курсы Python)

Главная боль любого соискателя — нерелевантная выдача.

Алгоритм HH по запросу "Python Developer" часто ищет вхождение слов везде: в описании стека, в разделе "плюшки", в описании компании.

В итоге в ленте оказывается:

  1. Python Tech Lead (Ок).

  2. Стажер Python (Мусор, если ты сеньор).

  3. Преподаватель курсов Python (Мусор).

  4. HR-менеджер (в тексте было "ищем в Python-команду") (Мусор).

Обычный пользователь крутит фильтры зарплаты, но это помогает слабо. Продвинутый знает про Boolean Search (язык логических запросов), но писать вручную с телефона конструкции на 300 символов с кучей скобок AND/OR/NOT — это ад UX.

Наше решение: Reverse Engineering рынка (Smart Profile)

Мы решили не спрашивать пользователя, что он ищет. Мы решили показать ему, из чего состоит рынок под его резюме, и дать выбрать.

Как работает наш «Снайперский поиск»:

  1. Data Mining: Аврора берет resume_id и забирает через API 300-400 "сырых" вакансий, которые алгоритм площадки считает подходящими.

  2. AI-Кластеризация (Gemini Flash):

    Мы скармливаем заголовки этих вакансий в LLM с температурой 0.0 (чтобы убрать галлюцинации). Нейросеть группирует этот хаос.

    Она понимает: QA Auto и QA Manual — это разные кнопки. Java Senior и Java Junior — разные вселенные.

  3. Интерфейс в Telegram: Пользователь получает клавиатуру с "облаком тегов". Вы просто кликаете:

    [✅ QA Manual (Mid)] [❌ QA Auto] [❌ Team Lead]

  4. Компилятор запроса (The Magic):

    Самое интересное. На основе ваших кликов мы генерируем не просто список ключевых слов. Агент собирает сложнейшую логическую формулу (Boolean Query).

    Алгоритм жестко прописывает, где именно искать вхождение (только в заголовке или в скиллах) и какие слова "минусовать" агрессивно. Если вы выбрали "Manual QA", система автоматически добавит в исключения Automation, Java, Selenium (если они не выбраны явно).

Результат: Агент отсекает 90% шума. Вы видите только то, что реально подходит.

Проблема №2: "У меня есть опыт, но я не умею о нем писать"

Все знают совет: "Пиши в резюме цифры и достижения".

Но когда садишься писать, получается: "Занимался разработкой бэкенда, писал тесты, фиксил баги". Это слабое описание, которое ATS-системы и рекрутеры пролистывают.

А еще есть страх: "Если я отдам резюме нейросети, она придумает, что я работал в NASA".

Наше решение: AI-Интервьюер и методология STAR

Мы реализовали паттерн "Интервью, а не рерайт". Мы не просим нейросеть "сделать красиво" из пустоты. Мы заставляем её работать как въедливого карьерного консультанта.

Как это выглядит для пользователя:

  1. Gap Analysis (Поиск дыр):

    Ассистент читает ваше текущее резюме. Он видит строку: "Оптимизировал SQL запросы".

    Для системы это триггер: здесь не хватает контекста.

  2. Допрос (Interrogation Mode):

    Аврора приходит к вам в личку и задает конкретные вопросы:

    "Ты пишешь, что оптимизировал запросы. На сколько ускорилась выборка? Было 5 секунд, стало 0.5? Или ты сэкономил место на диске? Какие инструменты использовал (Explain, Indexing)?"

  3. Синтез (STAR Method):

    Вы отвечает�� в чате (текстом). Можно писать коротко и по фактам — "мясо" нарастит нейросеть.

    Агент берет ваш старый опыт + ваши новые ответы и переписывает блок по формуле STAR (Situation -> Task -> Action -> Result).

    Было: "Оптимизировал SQL запросы."

    Стало: "Провел рефакторинг медленных SQL-запросов (PostgreSQL), используя анализ Explain Analyze. Результат: ускорил формирование отчетов с 30 секунд до 2 секунд и снизил нагрузку на CPU на 40%."

  4. Безопасность (Immutable Source):

    Мы никогда не редактируем ваше основное резюме. Скрипт создает скрытую копию-черновик на HH.

    Вы получаете ссылку. Нравится — публикуете одной кнопкой. Не нравится — удаляете. Риск равен нулю.

Технический стек: Back to Basics

Мы делаем стартап, а не тренируем навыки девопса. Поэтому никаких Kubernetes и микросервисов. Честный асинхронный монолит.

  • Язык: Python 3.11

  • Фреймворк: Aiogram 3.x.

  • БД: PostgreSQL + asyncpg.

  • LLM: Google Gemini (Flash для быстрых задач, Pro для текстов).

Почему мы выкинули Redis?

Для очередей задач (рассылка откликов, парсинг) обычно ставят Celery + Redis. Но это лишняя инфраструктура.

Мы используем возможности Postgres: SELECT ... FOR UPDATE SKIP LOCKED.

SQL

UPDATE tasks
SET status = 'processing', updated_at = NOW()
WHERE id = (
    SELECT id
    FROM tasks
    WHERE status = 'pending'
    ORDER BY priority DESC, created_at ASC
    FOR UPDATE SKIP LOCKED
    LIMIT 1
)
RETURNING *;

Это позволяет использовать таблицу Postgres как надежный брокер сообщений. Атомарность гарантирована базой, деплой упрощается в разы, оперативной памяти потребляется меньше. Для нашей нагрузки — идеальное решение.

Building in Public: Статус и планы

Мы не продаем "успешный успех". Мы продаем математику воронки найма.

Чтобы найти работу в конце 2025 года, нужно пробивать ATS-фильтры и делать много релевантных откликов. Аврора забирает эту рутину.

Наши цифры перед запуском v2.0:

  • Пользователи: 104 (MVP).

  • Отклики: >2000 отправлено системой.

  • Результат: 1 подтвержденный оффер и десятки приглашений на интервью.

  • Очередь: ~750 человек в листе ожидания.

Релиз v2.0 — сегодня в 18:00.

Мы открываем доступ к "умным фильтрам" и AI-интервьюеру. Если вам интересно потыкать архитектуру, о которой мы рассказали, и проверить, как Gemini «прожарит» ваше резюме — присоединяйтесь.

Триал бесплатный (3 дня), карту не просим. Нам сейчас важнее всего ваша обратная связь по качеству поиска.

? Попробовать Аврору

Будем рады ответить на технические вопросы в комментариях. Особенно про боль с документацией HH API — там есть о чем поговорить.

Комментарии (0)