Агрегатор вакансий за 3 месяца в одну каску: как я прошел от простого бота-парсера до полноценного сайта

Всем привет, с вами Антон Рендел — руководитель агентства ARS CREATIVE. Сегодня я расскажу, как без опыта в разработке сделал свой агрегатор вакансий с помощью вайбкодинга.

Все началось с небольшого бота-парсера вакансий для себя

Рано или поздно найм превращается в головную боль любого агентства — мое не стало исключением. По некоторым направлениям, например, SEO и копирайтингу, команда у нас работает годами. Но на позициях таргетолога или спеца по Директу была постоянная текучка, а поиск новых кандидатов быстро превращался в головную боль.

Обычно процесс найма выглядел так: сидишь в десятках Telegram-каналов, мониторишь посты, платишь за публикации вакансий то 300 рублей, где-то 1000, а где-то и по 5000 рублей, а потом пытаешься отследить результат.

Проблема в том, что кандидат сам часто не помнит с какого Telegram-канала пришел или одни каналы репостят других и эта цепочка может быть бесконечной. Помимо своих нужд, к нам периодически обращаются клиенты, чтобы мы помогли нанять маркетолога или SMM-щика в офис.

В какой-то момент я настолько зае-мучался собирать бесконечные таблички откликов для проведения собесов, что начал думать над автоматизацией этого процесса. В какой-то момент у меня появился ассистент и мы решили описать сам сценарий найма, как бизнес-процесс: откуда идут кандидаты, как мы их ищем и фильтруем. С того момента, как процессом стал заниматься не я, стало уже проще. Но проблему масштабирования верхнего уровня воронки это не решило — публикация в 2–3 каналах давала мало откликов, а при 5–7 каналах терялся контроль над статусами.

Автоматизация ручных геморройных процессов в агентстве — стала первой задачей в работе с нейронками. Встал вопрос: смогу ли я сам сделать какой-то полезный инструмент без опыта в коде?

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

Сразу возник и второй вопрос: а сможет ли нейронка? Здесь люди разделились на 2 диаметрально противоположных лагеря: одни говорят, что ИИ может за 3 секунды построить аналог Амазона, другие — что это хрень собачья, которая даже нужный адрес на карте найти не может.

А вот мнение посередине как-то не встречается, поэтому мне было интересно проверить все лично на себе.

Сначала я сделал обычный Telegram-канал и скрипт на Python, который парсил вакансии из нужных мне каналов.

Агрегатор вакансий за 3 месяца в одну каску: как я прошел от простого бота-парсера до полноценного сайта

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

Так появился d-pub.ru — агрегатор вакансий и резюме для удаленщиков.

Чем меня не устраивают привычные площадки для найма

Если посмотреть на рынок digital-вакансий с изнанки, то сейчас он устроен максимально странно:

  1. Хаос в Telegram. Все массово выкладывают объявления в мессенджере. Но там нет нормального поиска, нельзя отсортировать предложения по вилке зарплат или грейду. Если соискатель не сидит в Telegram круглосуточно, нужный пост за пару часов смывается потоком новых сообщений и теряется. Многие вакансии мигрируют из канала в канал, а по-факту уже давно устарели.
  2. Бюрократия и жадность крупных площадок. На порталах вроде hh.ru и соискателям, и работодателям приходится бесконечно заполнять дурацкие анкеты под ИИ-фильтры, а за каждый чих берут конские деньги.
  3. Закрытость нишевых сервисов. Куча нишевых сайтов прячет контакты за пейволами или не дает даже глянуть объявления без обязательной регистрации, подписки и танцев с бубном.
Агрегатор вакансий за 3 месяца в одну каску: как я прошел от простого бота-парсера до полноценного сайта

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

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

  1. На старте я нашел порядка 400 Telegram-каналов по всей сети.
  2. Отфильтровал список по уровню вовлеченности. Логика простая: чем живее аудитория в канале, тем выше вероятность, что вакансии там реальные, а не сгенерированный шлак.
  3. Зашел в каждый оставшийся канал и глазами посмотрел, что именно там публикуют.

В итоге из 400 источников я оставил всего 32 проверенных канала с живой аудиторией, из которых бот теперь регулярно парсит посты по 100+ ключевым словам.

Но даже после бота вакансии не заливаются сразу на сайт. Каждое утро мой ассистент вручную разбирает все, что скрипт наскреб за сутки. Здесь отсеивается все лишнее:

  • Убираем рекламу, системные уведомления и объявления, где суть работы описана размыто.
  • Проверяем, чтобы в вакансии была прямая ссылка на живого человека, а не редирект на сложного HR-бота или удаленный аккаунт.
  • Отдаем приоритет объявлениям с четко указанной зарплатой и адекватными условиями.

В итоге до публикации доходят только те вакансии, на которые не стыдно откликнуться самому.

Вместе с ИИ вдохнул в проект жизнь: придумал фирменный стиль, слоган и сгенерировал визуал

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

Тогда я попробовал настроить автогенерацию обложек. Не думал, что это возможно, а оказалось более чем реально: бот считывает категорию и заголовок из текста и тут же формирует брендированную картинку. Даже некое подобие логотипа мы с ИИ сделали за 3 секунды.

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

Постепенно расширяю список профессий и создаем с ИИ под них обложки, недавно добавился маркетолог  
Постепенно расширяю список профессий и создаем с ИИ под них обложки, недавно добавился маркетолог  

Вокруг этой же идеи построил логотип и сформулировал слоган всего проекта: «Место, где встречаются хорошие люди».

(и да, лого тоже полностью сгенерирован) 
(и да, лого тоже полностью сгенерирован) 

Я хочу сделать простой, как палка, сервис для поиска сотрудников/работодателей без посредников и спама. В идеале планирую вырастить этот агрегатор в полноценное digital-комьюнити, где соискатели и фаундеры смогут делиться опытом, обсуждать рынок и находить своих.

Что у меня получилось на этапе MVP и к чему пришел сейчас

Первую версию сайта собрал буквально за месяц. Это был максимально простой интерфейс, который решал одну базовую задачу — показать списком вакансии, собранные ботом. С дизайном у ИИ пока не столь хорошо, как с кодом.

Первый вариант сайта был совсем простым, но уже рабочим. Тут нужно было протестировать весь функционал связки бота с бэкендом сайта 
Первый вариант сайта был совсем простым, но уже рабочим. Тут нужно было протестировать весь функционал связки бота с бэкендом сайта 

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

Со временем я поднаторел и научился правильно промптить ИИ на удобоваримый дизайн.

После доработок визуал сайта оживился, появился новый функционал 
После доработок визуал сайта оживился, появился новый функционал 

На сегодняшний день на сайте опубликовано около 1 500 вакансий и порядка 500 резюме.

Каждая карточка висит в активном индексе около двух месяцев  
Каждая карточка висит в активном индексе около двух месяцев  

Выкладываем с ассистентом от 10 до 40 отобранных объявлений в день, кроме выходных. Благодаря двухэтапной модерации все предложения на момент публикации — живые и актуальные.

По выходным пауза — в эти дни рынок почти замирает 
По выходным пауза — в эти дни рынок почти замирает 

Я пока серьезно не ставил задачу нагнать трафик, сейчас только тестирую и допиливаю сайт, собираю обратную связь. Специально рекламу не закупал, но пробую понемногу продвигать по SEO.

Уже есть небольшой эффект 
Уже есть небольшой эффект 

По показателям скорости в PageSpeed — магия, они стабильно держатся в районе 100 баллов. А в Google Search Console нет ошибок индексации.

Агрегатор вакансий за 3 месяца в одну каску: как я прошел от простого бота-парсера до полноценного сайта
Агрегатор работает стабильно и быстро грузится 
Агрегатор работает стабильно и быстро грузится 

Посещаемость пока скромная (с этим вы как раз можете помочь) — около 100 уникальных пользователей в месяц из поиска, но динамика положительная. Примерно 2–3% посетителей сайта в итоге добавляют свое резюме в базу, где уже собралось порядка 500 анкет разных специалистов в digital.

Соискатели сами находят нашего бота и выкладывают анкеты  
Соискатели сами находят нашего бота и выкладывают анкеты  

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

Архитектура проекта и главные факапы по разработке

Это был первый полноценный бот на Python, который я написал от начала до конца. Парсер вакансий написан на обычном TypeScript. В основу агрегатора легли Next.js 15, Payload CMS и PostgreSQL. Архитектуру сделал максимально простой, чтобы весь сервисный агрегатор крутился на одном VPS и не требовал раздутого бюджета на серверы.

Сам процесс вайбкодинга — увы, не волшебная кнопка. Но нейросеть сильно упрощает жизнь, хотя регулярно и выдает странные или спорные решения. Поэтому примерно половину задач приходится перепроверять и дорабатывать вручную. Вот примеры моих факапов и работ над ошибками:

  • Чуть не убил SEO динамическим рендерингом

Сначала поставил жесткую динамику force-dynamic, чтобы страницы обновлялись на лету. В итоге сервер пересобирал HTML при каждом визите робота или пользователя. Сайт замедлился, а поисковики начали резать краулинговый бюджет. Пришлось перестроить все на ISR с On-Demand Revalidation: теперь сайт моментально отдается из статического кэша, а кэш сбрасывается по тегу ровно в тот момент, когда в базу прилетает новая вакансия.

  • Случайно снес базу данных

Самый крупный факап случился, когда нейросеть при выполнении очередного миграционного скрипта просто очистила всю PostgreSQL. После этого я сразу настроил регулярные бэкапы базы и завязал весь проект на GitHub, чтобы фиксировать изменения в ветках и не раскатывать необдуманный код напрямую на прод.

  • Внедрил микроразметку Schema.org JobPosting

Без нее поисковики видят карточку вакансии как обычный набор текста. Когда разметил зарплаты, локацию и условия по стандарту, поисковики начали подтягивать объявления в расширенную выдачу, а CTR из поиска вырос примерно на 20%.

  • Завел отдельный файл с контекстом проекта

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

Вайбкодинг дает огромную скорость на старте. Но без бэкапов, полного контроля всех шагов и зафиксированного контекста ИИ может легко разнести все, что собиралось неделями.

Что делаю сейчас и что планирую внедрить в будущем

Базовую гипотезу и MVP обкатал — сайт работает стабильно, бот активно парсит. Теперь задача — развивать функционал и постепенно нагонять трафик.

Ближайшие релизы:

  • Расширенные фильтры. Сделаю точную сортировку по вилкам зарплат, датам публикации и узким специализациям.
  • Персональные подписки. Настрою рассылку свежих вакансий под конкретный запрос соискателя — например, чтобы прилетала только удаленка для Senior-дизайнеров прямо в Telegram или на почту.

Планы на будущее:

  • Хочу сделать удобный генератор анкет прямо внутри платформы.
  • Будем и дальше заводить новые категории. Недавно, например, добавили менеджеров маркетплейсов — на них сейчас огромный спрос.
  • Также планирую сделать механику быстрых проверок, вроде коротких тестов на навыки, чтобы соискатели могли сходу подтвердить свой грейд.

Я внедряю новые фичи не ради галочки, а исходя из потребностей реальных пользователей агрегатора. Поэтому нам очень важна обратная связь от тех, кто ищет работу или нанимает специалистов в digital.

Давайте обсудим

Как руководитель агентства, я понимаю боль всех управленцев: найти толкового сотрудника с прицелом на долгосрок — тот еще квест. Для себя я этот процесс смог упростить, теперь делюсь с другими. Заглядывайте ко мне в d-pub.ru, оставляйте фидбек — готов к честным оценкам и комментариям.

22