Research workflow
From a goal to
reviewable findings.
A universal autonomous worker plans the investigation, delegates source work, keeps evidence in memory and pauses for governance where configured. Research, contact discovery and reporting are workflows—not a separate research engine.
Worker workflow
Plan, delegate, verify, remember
A worker turns the request into a source-aware plan, then delegates discovery across the tools and services configured by the operator.
search_business_directory, search_social and search_news gather public company, people and press context when those connectors are enabled.
parse_corporate_site extracts structured company, team and contact context from fetched pages using JSON-LD, Schema.org and page content.
extract_contacts identifies emails, phones, social profiles and person/company entities, retaining source context for later review.
enrich_company and enrich_person add useful industry, technology, role and location context when matching public evidence is available.
verify_email and verify_phone apply syntax, DNS and normalization checks. Optional SMTP probing depends on network access and operator configuration.
suggest_emails can propose domain patterns for a worker or human to review; confidence and missing evidence stay explicit rather than guessed.
save_contacts stores approved findings in SQLite or PostgreSQL with verification receipts, subject to the configured policy and review gates.
The worker summarizes evidence, remembers durable context and can export CSV, vCard, JSON or reports, or hand off to a configured CRM.
Configured sources
Choose the sources your worker can use
Configured directory connectors such as 2GIS, Google Maps, Yandex Maps or Yellow Pages can be queried in parallel; review overlapping results before export.
Configured Twitter/X, Telegram or site-restricted LinkedIn search can add public context where access permits. Findings retain platform and URL provenance for review.
A configured news connector such as Serper or Google News RSS can provide press context. Entity extraction is heuristic, so workers keep source links and uncertainty visible.
Verification and review
Evidence gates before side effects
Workers can apply syntax and DNS checks, flag disposable or role-based addresses and—when network access is configured—probe SMTP. Receipts and confidence keep uncertainty visible; governance can require human approval before saving or syncing.
SyntaxRFC 5322 subset: single @, local ≤64 chars, domain ≤253 chars, no leading/trailing/consecutive dots.
MX lookupDNS-over-HTTPS via Google then Cloudflare. Falls back to A/AAAA per RFC 5321 §5.1. Null MX (RFC 7505) detected and dropped.
DisposableConfigured lists of known disposable providers can flag domains such as mailinator, yopmail, guerrillamail or tempmail; subdomain matching may be included.
Role-basedRole and department patterns such as admin, info, support, sales, noreply, hr or billing can be flagged for review.
SMTP probeOptional port 25 handshake: banner → HELO → MAIL FROM → RCPT TO. Accepts 250/251, rejects 5xx, inconclusive 4xx (greylisting). Never sends message content.
Context enrichment
Add context when evidence supports it
enrich_company can inspect HTML signatures for CMS, JS frameworks, analytics, payments and hosting. enrich_person can compare public web evidence and configured social sources; workers preserve gaps instead of filling them with guesses.
WordPress, Shopify, Squarespace, Wix, Webflow, Drupal, Joomla, Magento
Next.js, Nuxt.js, React, Vue.js, Angular, Svelte, Gatsby
Google Analytics, Segment, Mixpanel, Amplitude, Hotjar, Matomo, Yandex Metrika
Stripe, PayPal
Vercel, Netlify, CloudFront, S3, HubSpot, Klaviyo, Mailchimp, Salesforce, Sentry
Quality tracking
Append-only verification receipts
Verification checks can write durable receipts to a JSONL ledger. Receipts are keyed by (kind, value), so a PASS on one check does not silence a FAIL on another. Reviewers and governance policies can use the resulting Verified, Partial or Unverified status before any external action.
SMTP accepted the mailbox
Syntax + MX check passed
No passing verification receipts
Repeatable workflows
Schedule, compare, notify
When the operator enables scheduling, --repeat can rerun a workflow and compare memory or stored findings. Notifications through a configured webhook, Telegram or email channel remain optional and policy-controlled.
# Run every 24 hours, alert on new contacts
fathom run --repeat 86400 \
"Find VP Engineering at Series B startups in SF"
# Watch mode output:
# ── Findings changed since the previous run ──
# Reviewable contacts, evidence and gaps are written
# according to the configured output and approval policy.Handoff and export
Prepare findings for the next step
Export contacts and reports as CSV, vCard, JSON or Excel. A worker can hand findings to amoCRM, Bitrix24, HubSpot or another configured integration after review and any required approval; integrations are not enabled by default.
RFC 4180, 10 columns, semicolon-separated tags & socials
RFC 2426, N/FN/ORG/TITLE/EMAIL/TEL/X-SOCIALPROFILE
Pretty-printed, all fields including social_profiles & notes
XLSX via rust_xlsxwriter, "Contacts" worksheet
Run a research workflow
Request access to a provisioned server, configure the worker's tools and ask it to produce reviewable findings.