Workflows / Outreach by audience
30 keywords with the live results for each, 100 sites mapped and 90 ranking pages audited; then 100 accounts and 100 people, about 63 verified work emails and 189 emails sent from inboxes on your own domain.
Give this to your agent
Using RouterGrowth, run this workflow: SEO research for 30 keywords, then email the editors of the sites that rank for them. 100 accounts, 1 contact each, three-step sequence. Show me the price before every call, and stop after each stage with a sample of the results so I can adjust. 1. Expand the keyword set: seo.keywords x 6 seed searches. Seed terms to volume, difficulty and ideas; one search per seed cluster. 2. Read the SERPs: seo.serp x 30 keywords. Who ranks for each keyword today, with features and positions. 3. Map the competitors: seo.domain_overview x 100 domains, seo.ranked_keywords x 100 domains, seo.competitors x 1 your domain. Their organic footprint: overview, the keywords they rank for, who else competes. 4. Audit the winners: seo.page_audit x 90 pages, web.scrape x 90 pages read. On-page audit of the top 3 results per keyword, plus the page text for your agent to outline against. 5. Source the accounts: company.search x 10 searches. Companies matching the industry, size and location, ten or so per search. 6. Qualify on firmographics: company.enrich x 100 companies. Headcount, industry and location to keep the accounts that fit. 7. Find the people: people.search x 100 profiles. 1 contact per account by title and seniority, with current role. 8. Get the contact: contact.find x 70 (100 tried, 70% found), contact.verify x 70 verdicts. Charged on a match only: a miss is free, so the estimate is a ceiling. 9. Context for the first line: web.scrape x 100 pages. One page per account and a few recent posts per person, so the opener is about them. 10. Run the outreach: email.send x 189 (63 contacts x 3 steps). Sequence from inboxes on a domain you own, one call per email. 11. Read the replies: email.messages x 19 inbox reads. Poll the inboxes, classify replies, hand the warm ones to a human. Before sending: email.domain x 1, email.inbox x 1, on a domain I own. Budget for one run: about $8.64 plus $4.66 one-time setup. Run routergrowth inspect on any capability before the first call to confirm the quote.
Works in Claude, ChatGPT, Claude Code, Codex and Cursor. New workspaces start with $1 of credit. Get a key or read the setup guide.
Why it works
The sites that already rank for your keywords are the ones whose links matter. An editor answers when the pitch improves a page they own.
Not every list is a list of buyers. Raising a round, landing coverage, filling a role and signing a partner all start the same way: name the people, find a way to reach each one and write to them about their own work. These workflows build the audience from filters, find and verify the address, read one page per person for the first line and send from inboxes you own.
The first line, as your agent would write it
Your guide ranks third for the term and stops at 2024. We have current numbers you could cite. Want the table?
The workflow
11 stages and 1,075 calls on one key. Every call is quoted and reserved before it runs, and a lookup that finds nothing releases the hold.
Seed terms to volume, difficulty and ideas; one search per seed cluster.
Their organic footprint: overview, the keywords they rank for, who else competes.
On-page audit of the top 3 results per keyword, plus the page text for your agent to outline against.
Companies matching the industry, size and location, ten or so per search.
Headcount, industry and location to keep the accounts that fit.
1 contact per account by title and seniority, with current role.
Charged on a match only: a miss is free, so the estimate is a ceiling.
One page per account and a few recent posts per person, so the opener is about them.
Poll the inboxes, classify replies, hand the warm ones to a human.
Sending infrastructure you own: a verified domain and enough inboxes for the daily limit. Charged once, reused on every run.
The receipt
About $8.64 for the whole run, plus $4.66 once for the sending inboxes. No subscription and no seats: each call is paid from a prepaid balance at the price shown before it runs.
| Capability | Calls | Cost |
|---|---|---|
| seo.keywords$0.0212 per search | 6 | $0.13 |
| seo.serp$0.0035 per search | 30 | $0.11 |
| seo.domain_overview$0.021 per lookup | 100 | $2.10 |
| seo.ranked_keywords$0.0212 per search | 100 | $2.12 |
| seo.competitors$0.0214 per search | 1 | $0.02 |
| seo.page_audit$0.002 per page | 90 | $0.18 |
| web.scrape$0.0056 per page | 190 | $1.06 |
| company.search$0.0024 per search | 10 | $0.02 |
| company.enrich$0.0071 per match | 100 | $0.71 |
| people.search$0.002 per call of up to 200 + $0.0004 per person | 100 | $0.04 |
| contact.find$0.0187 per match | 70 | $1.31 |
| contact.verify$0.002 per verdict | 70 | $0.14 |
| email.send$0.0035 per email | 189 | $0.66 |
| email.messages$0.002 per read | 19 | $0.04 |
| One run | 1,075 | $8.64 |
Assumptions: 2 contacts per account unless the brief says otherwise, a 70% email find rate, 90% of found addresses passing verification, 3 emails per contact and a 30% LinkedIn accept rate. Prices are the catalog's list prices when this page was built. Change the volumes and the assumptions in the workflow generator, or see how plans lower the price of every call.
# RouterGrowth workflow: SEO research for 30 keywords, then email the editors of the sites that rank for them. 100
npm install -g routergrowth && routergrowth setup
# one-time setup
routergrowth run -c email.domain -i '{"domain":"<domain>"}'
routergrowth run -c email.inbox -i '{}'
# 01 Expand the keyword set (seo.keywords x 6)
routergrowth run -c seo.keywords -i '{"keyword":"<keyword>"}'
# 02 Read the SERPs (seo.serp x 30)
routergrowth run -c seo.serp -i '{"keyword":"<keyword>"}'
# 03 Map the competitors (seo.domain_overview x 100, seo.ranked_keywords x 100, seo.competitors x 1)
routergrowth run -c seo.domain_overview -i '{"domain":"<domain>"}'
routergrowth run -c seo.ranked_keywords -i '{"domain":"<domain>"}'
routergrowth run -c seo.competitors -i '{"domain":"<domain>"}'
# 04 Audit the winners (seo.page_audit x 90, web.scrape x 90)
routergrowth run -c seo.page_audit -i '{"url":"<url>"}'
routergrowth run -c web.scrape -i '{"url":"<url>"}'
# 05 Source the accounts (company.search x 10)
routergrowth run -c company.search -i '{"query":"<query>"}'
# 06 Qualify on firmographics (company.enrich x 100)
routergrowth run -c company.enrich -i '{"domain":"<domain>"}'
# 07 Find the people (people.search x 100)
routergrowth run -c people.search -i '{}'
# 08 Get the contact (contact.find x 70, contact.verify x 70)
routergrowth run -c contact.find -i '{"first_name":"<first_name>","last_name":"<last_name>","company_domain":"<company_domain>"}'
routergrowth run -c contact.verify -i '{"email":"<email>"}'
# 09 Context for the first line (web.scrape x 100)
# 10 Run the outreach (email.send x 189)
routergrowth run -c email.send -i '{"inbox_id":"<inbox_id>","to":"<to>"}'
# 11 Read the replies (email.messages x 19)
routergrowth run -c email.messages -i '{"inbox_id":"<inbox_id>"}'
FAQ
company.search returns funds by focus and stage, people.search finds the partners at each one and contact.find returns a work email that is charged only when found. The agent reads each fund's site for the first line.
news.search finds who has written about your topic recently, with the outlet and the article. The agent keeps the reporters on the beat, finds their address and cites their own piece in the pitch.
Yes. people.search filters by title, seniority, company and location, which is candidate sourcing. The email goes out from an inbox you own, and replies come back to the same thread.
contact.verify checks each address and returns valid, invalid or unknown. The workflows send only to the valid ones, which protects the domain you send from.
About $8.64 for one run of 1,075 calls, plus $4.66 once for the sending inboxes. Each call is quoted before it runs and a lookup that finds nothing is not charged, so the figure is a ceiling. There is no subscription: the run is paid from a prepaid balance.
Keep going
Reading this as an agent? This workflow as markdown: /workflows/audience-link-building.md · every workflow: /workflows.md
Paste the prompt into your agent. The first calls run on the $1 that comes with signup.