Агрегатор вакансий за 3 месяца в одну каску: как я прошел от простого бота-парсера до полноценного сайта
Всем привет, с вами Антон Рендел — руководитель агентства ARS CREATIVE. Сегодня я расскажу, как без опыта в разработке сделал свой агрегатор вакансий с помощью вайбкодинга.
Все началось с небольшого бота-парсера вакансий для себя
Рано или поздно найм превращается в головную боль любого агентства — мое не стало исключением. По некоторым направлениям, например, SEO и копирайтингу, команда у нас работает годами. Но на позициях таргетолога или спеца по Директу была постоянная текучка, а поиск новых кандидатов быстро превращался в головную боль.
Обычно процесс найма выглядел так: сидишь в десятках Telegram-каналов, мониторишь посты, платишь за публикации вакансий то 300 рублей, где-то 1000, а где-то и по 5000 рублей, а потом пытаешься отследить результат.
Проблема в том, что кандидат сам часто не помнит с какого Telegram-канала пришел или одни каналы репостят других и эта цепочка может быть бесконечной. Помимо своих нужд, к нам периодически обращаются клиенты, чтобы мы помогли нанять маркетолога или SMM-щика в офис.
В какой-то момент я настолько зае-мучался собирать бесконечные таблички откликов для проведения собесов, что начал думать над автоматизацией этого процесса. В какой-то момент у меня появился ассистент и мы решили описать сам сценарий найма, как бизнес-процесс: откуда идут кандидаты, как мы их ищем и фильтруем. С того момента, как процессом стал заниматься не я, стало уже проще. Но проблему масштабирования верхнего уровня воронки это не решило — публикация в 2–3 каналах давала мало откликов, а при 5–7 каналах терялся контроль над статусами.
Автоматизация ручных геморройных процессов в агентстве — стала первой задачей в работе с нейронками. Встал вопрос: смогу ли я сам сделать какой-то полезный инструмент без опыта в коде?
Да, я могу поправить баннер на сайте или собрать простого бота в конструкторе. Но написать сервис или заверстать кодом с нуля — вообще не про меня. Я управленец до мозга костей, а всякая монотонная рутина меня ужасно бесит.
Сразу возник и второй вопрос: а сможет ли нейронка? Здесь люди разделились на 2 диаметрально противоположных лагеря: одни говорят, что ИИ может за 3 секунды построить аналог Амазона, другие — что это хрень собачья, которая даже нужный адрес на карте найти не может.
А вот мнение посередине как-то не встречается, поэтому мне было интересно проверить все лично на себе.
Сначала я сделал обычный Telegram-канал и скрипт на Python, который парсил вакансии из нужных мне каналов.
Когда поток окончательно настроился, я решил проверить, как поведет себя парсер, если увеличить количество каналов и поисковых запросов. В какой-то момент вакансий стало так много, что стало понятно: из этого может вырасти полноценный и открытый сервис для всей digital-сферы.
Так появился d-pub.ru — агрегатор вакансий и резюме для удаленщиков.
Чем меня не устраивают привычные площадки для найма
Если посмотреть на рынок digital-вакансий с изнанки, то сейчас он устроен максимально странно:
- Хаос в Telegram. Все массово выкладывают объявления в мессенджере. Но там нет нормального поиска, нельзя отсортировать предложения по вилке зарплат или грейду. Если соискатель не сидит в Telegram круглосуточно, нужный пост за пару часов смывается потоком новых сообщений и теряется. Многие вакансии мигрируют из канала в канал, а по-факту уже давно устарели.
- Бюрократия и жадность крупных площадок. На порталах вроде hh.ru и соискателям, и работодателям приходится бесконечно заполнять дурацкие анкеты под ИИ-фильтры, а за каждый чих берут конские деньги.
- Закрытость нишевых сервисов. Куча нишевых сайтов прячет контакты за пейволами или не дает даже глянуть объявления без обязательной регистрации, подписки и танцев с бубном.
Когда стало понятно, что из обычного парсера вырисовывается полноценный сервис, я решил сделать его полностью открытым. Идея была простой — создать место, где встречаются хорошие люди: без ботов-посредников, платных подписок за контакты и сложной бюрократии. Чтобы работодатель получал прямой отклик, а соискатель — понятный список проверенных вакансий с живыми контактами.
На первый взгляд все выглядит просто: натравливаешь бота на сотню каналов и выгружаешь посты на сайт. На практике такая схема моментально превращает ресурс в помойку со спамом и мусором. Чтобы на выходе получался нормальный контент, пришлось выстроить пару фильтров:
- На старте я нашел порядка 400 Telegram-каналов по всей сети.
- Отфильтровал список по уровню вовлеченности. Логика простая: чем живее аудитория в канале, тем выше вероятность, что вакансии там реальные, а не сгенерированный шлак.
- Зашел в каждый оставшийся канал и глазами посмотрел, что именно там публикуют.
В итоге из 400 источников я оставил всего 32 проверенных канала с живой аудиторией, из которых бот теперь регулярно парсит посты по 100+ ключевым словам.
Но даже после бота вакансии не заливаются сразу на сайт. Каждое утро мой ассистент вручную разбирает все, что скрипт наскреб за сутки. Здесь отсеивается все лишнее:
- Убираем рекламу, системные уведомления и объявления, где суть работы описана размыто.
- Проверяем, чтобы в вакансии была прямая ссылка на живого человека, а не редирект на сложного HR-бота или удаленный аккаунт.
- Отдаем приоритет объявлениям с четко указанной зарплатой и адекватными условиями.
В итоге до публикации доходят только те вакансии, на которые не стыдно откликнуться самому.
Вместе с ИИ вдохнул в проект жизнь: придумал фирменный стиль, слоган и сгенерировал визуал
Когда я запустил бота, быстро уперся в проблему с визуалом: монотонная лента из сплошного текста выглядела уныло и тяжело читалась. При этом клепать пусть даже шаблонные обложки вручную под сотни вакансий в день — слишком затратно по времени.
Тогда я попробовал настроить автогенерацию обложек. Не думал, что это возможно, а оказалось более чем реально: бот считывает категорию и заголовок из текста и тут же формирует брендированную картинку. Даже некое подобие логотипа мы с ИИ сделали за 3 секунды.
В итоге у каждой специальности появился понятный визуальный маркер. Соискатель листает ленту и сразу считывает контекст: вот обложка про дизайн, вот про копирайтинг, а вот про разработку.
Вокруг этой же идеи построил логотип и сформулировал слоган всего проекта: «Место, где встречаются хорошие люди».
Я хочу сделать простой, как палка, сервис для поиска сотрудников/работодателей без посредников и спама. В идеале планирую вырастить этот агрегатор в полноценное digital-комьюнити, где соискатели и фаундеры смогут делиться опытом, обсуждать рынок и находить своих.
Что у меня получилось на этапе MVP и к чему пришел сейчас
Первую версию сайта собрал буквально за месяц. Это был максимально простой интерфейс, который решал одну базовую задачу — показать списком вакансии, собранные ботом. С дизайном у ИИ пока не столь хорошо, как с кодом.
Следующие два месяца докручивал интерфейс, логику каталога и фильтры. Сейчас сайт работает как полноценный каталог, где можно за пару кликов отсортировать предложения по направлениям, грейдам и формату работы.
Со временем я поднаторел и научился правильно промптить ИИ на удобоваримый дизайн.
На сегодняшний день на сайте опубликовано около 1 500 вакансий и порядка 500 резюме.
Выкладываем с ассистентом от 10 до 40 отобранных объявлений в день, кроме выходных. Благодаря двухэтапной модерации все предложения на момент публикации — живые и актуальные.
Я пока серьезно не ставил задачу нагнать трафик, сейчас только тестирую и допиливаю сайт, собираю обратную связь. Специально рекламу не закупал, но пробую понемногу продвигать по SEO.
По показателям скорости в PageSpeed — магия, они стабильно держатся в районе 100 баллов. А в Google Search Console нет ошибок индексации.
Посещаемость пока скромная (с этим вы как раз можете помочь) — около 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, оставляйте фидбек — готов к честным оценкам и комментариям.