Company Discovery
Ocean.io searches for lookalike companies based on the input company domain.
TypeScript CLI / Outreach Automation
A multi-stage cold-outreach pipeline that discovers lookalike companies, finds senior decision-makers, verifies work emails, checks policy constraints, and sends personalized emails.
Demo Video
The demo shows Relay accepting a seed domain, progressing through discovery and verification, presenting a review step, and producing a run summary.
Pipeline Flow
Ocean.io searches for lookalike companies based on the input company domain.
Prospeo finds senior contacts such as founders, C-suite leaders, VPs, directors, and heads.
Anymail Finder resolves and validates work emails from contact LinkedIn profiles.
The policy engine checks send caps, missing content, and recontact cooldown rules.
Brevo sends the rendered Handlebars email in live mode, while dry-run mode records the attempt and forwards one sample to the simulation inbox for inspection.
Architecture
Relay separates command handling, orchestration, provider clients, safety policy, email rendering, and database repositories so each stage stays testable and recoverable.
Runs are stored in SQLite with stage checkpoints. If a run fails or is interrupted, Relay detects saved companies, contacts, and emails, then resumes from the next incomplete stage.
Dedicated clients handle Ocean.io, Prospeo, Anymail Finder, and Brevo requests.
Previous completed runs can supply companies, contacts, and emails without repeat API calls.
Outbound candidates are filtered by send limits, cooldown windows, and template integrity.
Real sending requires `--live`; otherwise records are stored as simulated sends.
Usage
npm install
npm run prisma:generate
npm run prisma:push
npm run relay -- run stripe.com
npm run relay -- run stripe.com --live --no-cache