Partner Search System

Чистая система поиска партнёров и клиентов по email · настрой с нуля · работает как на основном сервере
Папка системы: /home/user/partner-search-platform — пустая база, без чужих проектов. Заполни по инструкции в «Настройка с нуля».

Статус

Таймер автоматизации:

Скачать CSV

Чеклист перед запуском

  1. Домен (DuckDNS или свой) → A-запись на IP сервера
  2. Почта: docker exec mailserver setup email add support@домен пароль
  3. DNS: MX, SPF, DKIM + верификация отправителя в Brevo
  4. automation.yaml — domain, from_email, web_search_query, enabled: true
  5. cp .env.outreach.example .env.outreach — GITHUB_TOKEN, OUTREACH_OWNER_EMAILS
  6. Шаблоны в templates/services_generic_*.txt
  7. systemctl --user enable --now partner-search-outreach.timer
  8. Тест: run-automation-cron.sh + проверка лога

Полная инструкция (почта, DNS, API, CSV, troubleshooting): docs/SETUP_RU.md в папке системы.

Настройка (кратко)

  1. Домен. Зарегистрируй DuckDNS или свой домен. A-запись → IP сервера.
  2. Почта. На сервере:
    docker exec -it mailserver setup email add support@ТВОЙ-ДОМЕН 'ПАРОЛЬ'
    DNS: MX → IP сервера, SPF, DKIM. Отправитель — верифицировать в Brevo (иначе duckdns не доставляет).
  3. automation.yaml — открой файл в папке системы. Замени YOUR_PROJECT_NAME, YOUR_DOMAIN, YOUR_INDUSTRY, поисковые запросы web_search_query. Поставь enabled: true когда всё готово.
  4. API-ключи:
    cd /home/user/partner-search-platform
    cp .env.outreach.example .env.outreach
    nano .env.outreach
    GitHub: github.com/settings/tokens (scope public_repo). Hunter.io и SerpApi — опционально.
  5. Шаблоны писем — папка templates/: services_generic_subject.txt и services_generic_body.txt. Переменные: {{DOMAIN}}, {{FROM_EMAIL}}, {{TO_NAME_OR_COMPANY}}, {{SITE_URL}}.
  6. Запуск автоматизации:
    systemctl --user enable --now partner-search-outreach.timer
    systemctl --user start partner-search-outreach.service
  7. Проверка:
    export OUTREACH_ROOT=/home/user/partner-search-platform
    /home/user/outreach/.venv/bin/python /home/user/outreach/outreach.py status
    tail -f /home/user/partner-search-platform/logs/automation-cron.log

Поля automation.yaml

name               — имя проекта
enabled            — false до настройки, потом true
segment            — services
domain             — твой-домен.duckdns.org
from_email         — support@твой-домен.duckdns.org
partner_audience   — ru | int | gcc | cis
partner_industry   — отрасль (construction, b2b_services, …)
web_search_query   — главный поиск + contact email
web_search_queries — доп. запросы (список)
hunter_domains     — домены для Hunter.io

Пример блока project в automation.yaml

projects:
  - name: my-company
    enabled: true
    segment: services
    domain: my-company.duckdns.org
    from_email: support@my-company.duckdns.org
    partner_audience: ru
    partner_industry: construction
    github_query: ""
    github_limit: 0
    web_search_query: "строительная компания партнёрство contact email"
    web_search_queries:
      - "генподрядчик email контакт"
    hunter_domains:
      - example-company.ru

Цикл работы

  1. Discover — поиск email: веб-поиск, GitHub API, Hunter.io, SerpApi. Мусор отфильтровывается автоматически.
  2. SQLite — контакты в data/contacts.db, дедупликация по email. Статусы: new → sent → replied.
  3. Send — письма через mailserver (Docker sendmail) по шаблонам из templates/.
  4. Sync — входящие ответы из почты обновляют статус в базе.

Расписание: каждый час в :25 UTC (partner-search-outreach.timer).

Структура папки

partner-search-platform/
├── automation.yaml      ← проекты и поисковые запросы
├── .env.outreach        ← API-ключи (создай из .example)
├── data/contacts.db     ← база контактов (создаётся автоматически)
├── templates/           ← тексты писем
├── logs/                ← логи автоматизации
└── web-panel/           ← эта панель

Контакты

ДоменEmailКомпанияСтатусОтправлено

Входящие письма

ДатаОтТемаДомен

Полезные команды

export OUTREACH_ROOT=/home/user/partner-search-platform

# Статус базы
/home/user/outreach/.venv/bin/python /home/user/outreach/outreach.py status

# Ручной полный цикл (discover + send)
/home/user/partner-search-platform/run-automation-cron.sh

# Экспорт CSV
/home/user/outreach/.venv/bin/python /home/user/outreach/outreach.py export-csv

# Импорт своих лидов из CSV
/home/user/outreach/.venv/bin/python /home/user/outreach/outreach.py db-import-csv --path data/my_leads.csv