Бизнес-логика пайплайна «со стрелочками»
Вся система работает в полностью асинхронном режиме. Парсеры извлекают сырой поток сообщений и карточек организаций, Gemini 3.6 Flash на лету отделяет реальный спрос от предложений услуг и спама, DaData подтягивает официальные данные ФНС, а менеджер получает готовое досье за 60 секунд.
[Открытые источники] (Чаты TG / 2ГИС / Карты / Вакансии HH)
│
▼ (Парсинг сырых данных через HTTP / Playwright / Telethon)
[Сырой поток данных] (Тексты сообщений, карточки компаний, сниппеты)
│
▼ (Обработка Gemini 3.6 Flash: фильтрация спама + извлечение ЛПР)
[Структурированный лид] (ФИО, Должность, Компания, Телефон, Telegram, Боль)
│
▼ (Обогащение через DaData / Checko по ИНН: выручка, штат, суды)
[Квалифицированное досье] (Оценка соответствия ICP: от 1 до 10)
│
▼ (Запись в базу и доставка в отдел продаж)
[Google Таблица / CRM / Telegram-чат] ➔ [Менеджер берет в работу за 60 сек]
Roadmap реализации сервиса (Шаги 1–6)
Настройка окружения на компьютере
mkdir -p ~/Automations/lead_scraping_engine cd ~/Automations/lead_scraping_engine python3 -m venv venv source venv/bin/activate
Правила Harness проекта (.agents/AGENTS.md)
.agents/AGENTS.md, чтобы агент Antigravity:
- Хранил все секреты и токены строго в
.env. - Не перезаписывал рабочие базы данных без бэкапа.
- Использовал Pydantic для строгой валидации структуры контактов.
Сбор необходимых доступов и API-ключей
- GEMINI_API_KEY — ключ Google AI Studio (тариф Free / Pay-as-you-go).
- TG_API_ID & TG_API_HASH — с портала my.telegram.org.
- ALERT_BOT_TOKEN & ALERT_CHAT_ID — бот от @BotFather для оповещений.
- DADATA_API_KEY — бесплатный ключ DaData.ru на 10 000 запросов/сутки.
Конфигурация .env
.env и проверит валидность подключений перед запуском парсинга.
Генерация архитектуры в Google Antigravity
scrapers/, ai_filter.py, enricher.py, storage.py и bot_notifier.py.
Тестовый запуск и калибровка фильтров
leads.db.
Copy-Paste Промпт для сборки в Google Antigravity
Ты — Lead Scraping & AI Automation Architect в Google Antigravity.
Твоя задача — создать под ключ модульный асинхронный микросервис на Python для автоматического парсинга, обогащения и скоринга целевых контактов ЛПР (Лиц, Принимающих Решения) из открытых источников:
1. Тематические Telegram-чаты и каналы (сообщения о поиске подрядчиков/услуг).
2. Гео-сервисы и открытые каталоги (Яндекс Карты, 2ГИС — карточки компаний, телефоны, сайты, email).
3. Сайты вакансий (HeadHunter — вакансии компаний, где ищут специалистов под расширение бизнеса).
ПЕРВЫМ ШАГОМ:
1. Проверь наличие файла `.env` в текущей директории.
2. Если файла нет или в нем отсутствуют переменные, выведи пользователю вежливый и четкий запрос:
"Для запуска парсера мне понадобятся следующие доступы:
1. GEMINI_API_KEY (ключ Google AI Studio)
2. TG_API_ID и TG_API_HASH (с my.telegram.org, если нужен сбор из Telegram)
3. ALERT_BOT_TOKEN и ALERT_CHAT_ID (Telegram-бот для отправки готовых лидов)
4. DADATA_API_KEY (по желанию, для автоматического пробива выручки и ИНН)
Пожалуйста, пришли их или укажи, какие источники мы подключаем в первую очередь."
3. Создай шаблон `.env.example`.
ТРЕБОВАНИЯ К АРХИТЕКТУРЕ КОДА:
1. Модуль парсинга (scrapers/):
- telegram_collector.py: использует Telethon для безопасного мониторинга публичных чатов по ключевым словам ("ищем", "нужен подрядчик", "посоветуйте", "куплю").
- web_collector.py: парсер карточек организаций (название, категория, город, телефон, сайт, email).
2. Модуль AI-анализа и фильтрации (ai_filter.py):
- Используй Gemini 3.6 Flash через официальный google-generativeai или прямой REST API.
- Промпт для Gemini:
"Ты — квалификатор B2B-лидов. На входе текст сообщения/карточки.
Задача:
1. Определи тип: РЕАЛЬНЫЙ СПРОС (клиент ищет услугу) или СПАМ (продавец предлагает услуги / резюме). Если спам — верни ignore: true.
2. Извлеки: суть потребности, контактное лицо, название компании, контакты.
3. Оцени теплоту лида от 1 до 10."
3. Модуль обогащения (enricher.py):
- По сайту или названию компании находит ИНН, ФИО генерального директора и выручку через API DaData.
4. Модуль сохранения и уведомлений:
- Сохраняет валидных лидов в локальную базу SQLite (leads.db) с защитой от дублей по contact_id/phone/username.
- Отправляет горячие лиды (оценка 7+) в Telegram-чат отдела продаж:
🔥 НАЙДЕН ЦЕЛЕВОЙ ЛПР (Оценка: {score}/10)
🏢 Компания: {company} | ИНН: {inn} (Выручка: {revenue} млн ₽)
👤 ЛПР: {director_name} ({position})
📞 Контакты: {phone} | {telegram} | {email}
💡 Потребность: {need_summary}
📍 Источник: {source}
[💬 Написать в Telegram] [📞 Позвонить]
Сделай код чистым, модульным, добавь обработку ошибок сети и подробное логирование. Начни выполнение с анализа окружения и создания структуры проекта.
Чек-лист проверки работоспособности
.env заполнен, переменные и API-ключи проверены.python main.py --source test.leads.db и Google Таблице.