Руководство по OSINT
Каждый лид — с источником
и проверкой.
Автоматический OSINT-пайплайн: параллельные агенты черпают компании и людей из реестров, карт, корпоративных сайтов и соцсетей, извлекают и проверяют каждый email и телефон, затем сливают всё в единую чистую базу контактов — синхронизированную с CRM.
Источники данных
Откуда берутся лиды
Бизнес-реестры
rusprofile.ru, list-org.com, sbis.ru, companies.rbc.ru — эти агрегаторы открывают данные реестров: ИНН/ОГРН, учредители и руководители.
Карты и каталоги
2GIS (СНГ), Яндекс Карты, Yellow Pages — компании с адресами, телефонами и часами работы.
Корпоративные сайты
Страницы команды и «о компании», контакты, пресс-релизы — плюс разметка Schema.org и JSON-LD.
Соцсети
Профили LinkedIn, поиск X/Twitter, каналы Telegram — с честной обработкой антибот-лимитов.
Новости и упоминания
Serper News и Google News RSS — раунды финансирования, наймы и запуски.
Пайплайн
Семь стадий, один запрос
План
Координатор разбивает запрос на параллельные подзадачи.
Извлечение
extract_contacts достаёт email, телефоны, соцсети и компании со страниц.
Проверка
verify_email, verify_phone и verify_social_profile отсеивают шум и оценивают уверенность.
Обогащение
enrich_company и enrich_person добавляют отрасль, размер, локацию, роль и сигналы спроса.
ContactDb
Хранилище SQLite или PostgreSQL; дедуп и слияние по нормализованным email и телефонам.
CRM
При настройке передавайте одобренные записи в CRM-адаптер с дедупликацией по crm_id.
Отчёт
summary.md плюс таблица контактов, экспорт в CSV, vCard, JSON или Excel.
Верификация
Ничего непроверенного не сохраняется
Возвраты и «мёртвые» номера сжигают бюджет аутрича. Каждый кандидат проходит MX-проверки, фильтры disposable-доменов и ролевых ящиков, прежде чем получит confidence — а обфусцированные адреса вида name [at] domain [dot] com декодируются автоматически, с меньшим баллом, чем обычные.
verify_email("[email protected]")
→ is_valid_syntax: true
→ domain_exists: true
→ mx_records: ["mx1.company.com"]
→ is_disposable: false
→ is_role_based: true # info@ admin@ support@
→ confidence: 0.85
# deobfuscation
"name [at] company [dot] com"
→ [email protected] # confidence 0.70
"[email protected]" # plain → confidence 0.95Телефоны и паттерны
Телефоны E.164, выведенные email
Телефоны нормализуются в E.164 через libphonenumber с определением страны и мобильный/городской. Когда известны только имя и домен, suggest_emails строит кандидатов из перестановок имени и существующего паттерна домена — до 9 вариантов для проверки.
verify_phone("+7 (495) 710-75-80")
→ normalized: "+74957107580" # E.164
→ country_code: "RU"
→ is_valid: true
→ is_mobile: false # landline
suggest_emails("John Doe", "acme.com")
→ [email protected]
→ [email protected]
→ [email protected] …
→ additional candidates follow the observed
domain pattern and require reviewХранилище
ContactDb — одна каноническая запись
Контакты попадают в SQLite из коробки — или в PostgreSQL для больших баз, с тем же интерфейсом. Дедуп и слияние работают по нормализованным email и телефонам, так что повторные прогоны и пересекающиеся источники не создают дублей. Теги и заметки прикрепляются к контакту; вся схема открыта для запросов.
save_contacts · db_path = "./contacts.db" · pg_url = "postgres://…"
| Таблица | Колонки |
|---|---|
| contacts | id, email, phone, name, title, company, source, timestamps |
| social_profiles | contact_id, platform, url, username |
| companies | name, website, industry, size, location |
| tags | contact_id, tag |
| notes | contact_id, note |
Примеры запросов
Одна команда — папка лидов
fathom run \
"Find contacts of CEOs and CTOs at
small IT companies in Moscow.
Extract emails, phones and
LinkedIn profiles." \
--output ./leads/
# agents fan out over rusprofile,
# list-org and sbis, parse corporate
# sites, enrich persons
# → INN/OGRN table + emails + phones
# + LinkedIn candidates (CSV, md)fathom run \
"Map SaaS companies in Berlin,
collect public evidence and
identify founders or CTOs where
sources support the match." \
--output ./berlin-saas/
# → cited company and contact findings
# with confidence, gaps and review
# status; export only after approvalfathom run \
"Research the Dubai fintech
startup market and identify
decision-maker evidence where
public sources support it." \
--output ./dubai-fintech/
# → market overview with cited evidence,
# contact hypotheses, gaps and review
# status; export or hand off when allowedЭтика и комплаенс
Ответственно по умолчанию
GDPR и 152-ФЗ
Персональные данные обрабатываются в соответствии с GDPR и 152-ФЗ.
Только публичные данные
Ничего не скрейпится за логинами, пейволлами или закрытыми API.
robots.txt и лимиты
Краулинг уважает robots.txt и встроенное ограничение.
Честные статусы
Неопределённость выражается явно — никаких молчаливых догадок.
LinkedIn HTTP 999
LinkedIn отвечает ботам HTTP 999; агенты показывают блокировку.
Без спама
Контакты предназначены для точечного аутрича, а не массовых рассылок.