Кейс с Habr: фрилансер устал тратить два-три часа в день на ручное обновление бирж и Telegram-каналов. Он собрал агрегатор, который сводит заказы с четырёх площадок в одну ленту с фильтрами, шлёт уведомления в Telegram и пересылает ответы заказчиков прямо в чат. Стек — Python 3.13, FastAPI, Vue 3, PostgreSQL, всё в одном asyncio event loop. Ниже — что из этого можно взять на вооружение, а где стоит быть осторожным.
Сначала измерьте, а потом автоматизируйте
Самое ценное в кейсе — не код, а предварительный замер: сколько времени реально уходит на мониторинг. Прежде чем что-то писать, заведите простой лог на неделю: площадка, время проверки, сколько заказов просмотрено, сколько релевантных, сколько откликов отправлено. Это даст критерий окупаемости: если рутина съедает 2 часа в день, а на сборку и поддержку агрегатора уйдёт условно 20 часов, станет понятно, за какой срок это окупится и окупится ли вообще.
Что именно автоматизировать, а что оставить руками
- Сбор и дедупликация. Единая лента с фильтрами по ключевым словам, бюджету и типу задачи — разумный минимум.
- Уведомления. Telegram-бот с порогом релевантности, чтобы не превратить ленту в шум.
- Ответы заказчиков. Пересылка в чат удобна, но требует аккуратной авторизации на каждой площадке.
- Отклики. Отправку заявок лучше оставить ручной: шаблонный отклик снижает шансы, а автоматическая отправка часто нарушает правила бирж.
Технические решения: что взять из стека
FastAPI и PostgreSQL — предсказуемый выбор для небольшого сервиса с регулярным сбором данных. Единый asyncio event loop упрощает работу с сетевыми запросами, но накладывает требования: блокирующие вызовы нужно выносить в отдельные потоки или процессы, иначе сбор с одной площадки затормозит остальные. Vue 3 для интерфейса оправдан, если лентой пользуетесь вы сами и вам нужны фильтры; для старта хватило бы и Telegram-бота.
Отдельно про SMTP и пересылку писем: если площадка присылает уведомления на почту, их можно разбирать и пересылать в Telegram. Но здесь важны два критерия — стабильность формата писем и легальность обработки. Формат может измениться без предупреждения, поэтому парсеру нужны тесты на реальных примерах и алерт при падении разбора.
Риски, о которых стоит помнить
- Правила площадок. Автоматический сбор и тем более отправка откликов могут нарушать пользовательское соглашение. Проверяйте условия до запуска.
- Хрупкость парсеров. Вёрстка и API меняются; закладывайте время на поддержку, иначе агрегатор тихо перестанет работать.
- Безопасность данных. Хранение логинов и токенов площадок требует аккуратности: минимум прав, шифрование, отсутствие доступа извне.
- Иллюзия преимущества. Скорость уведомления не заменяет качественный отклик. Автоматизация экономит время на поиске, но не повышает конверсию сама по себе.
Пошаговый план, если хотите повторить
1) Неделю фиксируйте рутину и составьте список площадок и типов уведомлений. 2) Начните с одного источника и Telegram-бота: сбор, дедупликация, фильтр по ключевым словам. 3) Добавьте логирование и алерты на сбои парсинга. 4) Только после стабильной работы первого источника подключайте остальные. 5) Раз в месяц пересматривайте фильтры: слишком широкие дают шум, слишком узкие — пропускают заказы.
Вывод: агрегатор — рабочий способ вернуть часы на саму работу, если относиться к нему как к внутреннему инструменту с поддержкой, а не как к «настроил и забыл». Начинайте с малого, измеряйте эффект и не автоматизируйте то, что площадки прямо запрещают.