End-to-end cold email outreach managed by your AI agent. From lead discovery to sending sequences — no human in the loop.
Store keys in your workspace:
bash
# Apollo
export APOLLO_API_KEY="your_key"
# Saleshandy
export SALESHANDY_API_KEY="your_key"
Or save to a JSON config (see references/config-template.json).
Use the Apollo lead generation script to search for decision-makers:
bash
python3 scripts/apollo-search.py --titles "Owner,Founder,CEO" --keywords "aesthetic clinic" --location "United States" --max 100
This outputs a CSV with: name, email, title, organization, city, state, country.
Search results don't include emails. Enrich them:
bash
python3 scripts/apollo-enrich.py --input leads-raw.csv --output leads-enriched.csv
Uses Apollo's people/match endpoint (1 credit per enrichment). Budget ~500 credits for 300 verified emails.
bash
python3 scripts/saleshandy-import.py --csv leads-enriched.csv --step-id "YOUR_STEP_ID" --api-key "YOUR_KEY"
Check email account health before sending:
bash
python3 scripts/check-warmup.py --api-key "YOUR_KEY"
Do NOT activate sequences until all accounts score 85+.
text
Apollo API (lead gen) → CSV → Saleshandy API (import) → Email Sequence → Prospects
↑
Email Copy Templates (references/)
POST /api/v1/mixed_people/api_search — find people by title, keyword, locationPOST /api/v1/people/match — get email from person ID (1 credit each)POST /api/v1/people/bulk_match — batch enrichment (use name+company, not IDs)https://open-api.saleshandy.comx-api-key: YOUR_KEYGET /v1/sequencesPOST /v1/sequences/prospects/import-with-field-namePOST /v1/email-accountsPOST /v1/sequences/{id}/email-accounts/addSee references/api-reference.md for full endpoint documentation.
See references/email-templates.md for proven templates.
Key rules:
Before activating any sequence:
IssueFixApollo search returns 0 emailsEmails require enrichment — search only returns IDsApollo people/search returns 403Use /mixed_people/api_search endpoint insteadSaleshandy API "Invalid token"Header must be x-api-key not api-key or AuthorizationSaleshandy import fails "conflictAction"Valid values: overwrite, noUpdate, addMissingFieldsEmails going to spamCheck warmup scores, verify DKIM, reduce daily volumeMerge tags not renderingUse {{First Name}} format in Saleshandy content