account-based-outbound
Skill8 starsChanged 46 days agoMITView on GitHub
Run outbound against a named set of target accounts, or build a Dream 100 when there is no list: resolve accounts for free, map 2 to 3 people per account by default (or everyone, free or enriched), one sequence per persona, and stop the whole account on a positive reply. Use for high-value accounts, client target lists, or any time the operator wants to work specific companies.
In this repository39 other files it gives its agents.
- apollo-account-auditSkill
- apollo-deliverabilitySkill
- apollo-go-liveSkill
- apollo-icp-builderSkill
- apollo-list-builderSkill
- apollo-multichannelSkill
- apollo-operatorSkill
- apollo-sequence-builderSkill
- apollo-signalsSkill
- business-briefSkill
- campaign-reportingSkill
- experiment-designSkill
- list-quality-scorecardSkill
- operator-contextSkill
- positive-reply-scoringSkill
- re-engagementSkill
- sending-infrastructureSkill
- sequence-reviewerSkill
- weekly-rhythmSkill
- account-based-outboundSkill
- apollo-account-auditSkill
- apollo-deliverabilitySkill
- apollo-go-liveSkill
- apollo-icp-builderSkill
- apollo-list-builderSkill
- apollo-multichannelSkill
- apollo-operatorSkill
- apollo-sequence-builderSkill
- apollo-signalsSkill
- business-briefSkill
- campaign-reportingSkill
- experiment-designSkill
- list-quality-scorecardSkill
- operator-contextSkill
- positive-reply-scoringSkill
- re-engagementSkill
- sending-infrastructureSkill
- sequence-reviewerSkill
- weekly-rhythmSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 4 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 34
Start from the ICP: Read profile.yaml and brief.md (see apollo-icp-builder and business-brief).
- Distinctive: line 56
When the operator wants the whole picture, offer both versions and state the cost first:
- Distinctive: line 58
Free: every person from search. Names, titles, and whether an email exists.
- Very specific: line 77
Stop the siblings: Look them up by organization_id in the file, then apollo_emailer_campaigns_remove_or_stop_contact_ids with mode: "stop", …
- Distinctive: line 78
A referral to a named colleague: stop the others, then write to the named person with the referral as the opening line.
- Distinctive: line 86
Capacity: every person is a send. 100 accounts, 3 people, 3 steps is 900 emails, and they queue on the same mailboxes as everything else.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Account-Based Outbound (Targeting to Launch)
Most of this library works person by person: build a large list, one or two people per company, and let volume find the buyers. Account-based outbound turns that around. You start from a named set of companies you actually want, and you reach several of the right people inside each one, on purpose.
It uses the same pipeline as everything else (suppress, verify, write, approve, launch). What changes is where the list comes from, how many people per company, how their sequences relate, and what happens when one of them replies.
When to use
Whenever the operator wants to work a named set of accounts: a short list of high-value customers, a client-supplied target list, a territory, or a known account that just showed a signal.
No list to start from? Build a Dream 100 (section 1). It is the fastest way to turn "we want better customers" into something you can run.
1. The target accounts
If the operator already has a list
Resolve every company to an Apollo organization id with the free lookup: apollo_organizations_lookup with q_organization_fuzzy_name (a name, or better, a domain) and display_mode: "fuzzy_select_mode". Verified free on 2026-09-14: lead credits did not move.
Confirm every match by eye. Fuzzy matching returns look-alikes (a lookup for "Gong" also returned "Gong cha Global"), and the domain on the right row can still be wrong (it came back as a preview-site URL). Resolve by domain wherever you have one.
Saved accounts: apollo accounts search --label-ids <list id> (CLI) returns a saved account list with each account's organization_id, num_contacts, and a per-account campaign status tally. The MCP has no saved-accounts search; apollo_mixed_companies_search returns saved accounts in its accounts bucket but costs 1 credit per call.
Use organization_id in every filter, never the account's own id. On saved accounts the two always differ, and an account id passed to an organization filter silently matches nothing.
If they don't: build a Dream 100
The 100 companies the business would most like to have as customers. Chosen, not scraped.
- Start from the ICP. Read
profile.yamlandbrief.md(seeapollo-icp-builderandbusiness-brief). - Pull candidates for free.
apollo_organizations_lookuptakes the same firmographic filters as the ICP: location, employee range, NAICS and SIC codes, keyword tags, funding, active job titles, technologies, and website visitors. Verified 2026-09-14: 25 companies per page, no overlap between pages, zero credits. Rows are shallow (id, name, domain, website) and there is no total count, so page until you have a few hundred candidates. - Cut to 100 with the operator. Fit, likely deal size, logos they want, relationships they already have. Claude can read each company's site and score it against a research signal (
apollo-list-builder, step 6). - Suppress customers, open deals, competitors, and anyone on the do-not-contact list before going further.
- Save it where the team can see it. Create the accounts with
apollo_accounts_bulk_createandrun_dedupe: true, then put them on a list withapollo_labels_add_entity_ids_to_label_namesandmodality: "accounts". Both verified 2026-09-14: resubmitting an already-saved company withrun_dedupereturned it underexisting_accountsand created nothing, and the list call put the account on a new list. Confirm withapollo accounts search --label-ids, not the list'scached_count, which still read 0 right after the add. Keep both the account id and theorganization_idin the local file.
Need full firmographics rather than shallow rows? apollo_mixed_companies_search has them, at 1 credit per call.
2. Map the people at each account
People search is free. apollo_mixed_people_api_search with organization_ids (or q_organization_domains_list), plus person_seniorities and titles for the roles you want. Verified: 1,709 people at one company, 147 of them at C-suite, VP, or director level. Rows carry title and has_email but no seniority field, so filter seniority in the search, not afterwards.
The default: 2 to 3 people per account, and why
Explain this to the operator before building, then let them choose:
- Who: one economic buyer above the line and one or two champions or users below it (see
atl-btl.md). - Why not more: colleagues compare notes. Five similar emails landing in one company in the same week reads as a blast, gets forwarded to IT, and costs you the account and some domain reputation. Two or three distinct conversations reads as someone who did their homework.
- Why not one: a single contact is one out-of-office, one job change, or one wrong person away from zero.
The option: everyone at the account
When the operator wants the whole picture, offer both versions and state the cost first:
- Free: every person from search. Names, titles, and whether an email exists; no emails, last names masked. Good for mapping the organisation and choosing who to contact.
- Fully enriched: enrich all of them. 1 lead credit per person attempted, whether or not an email comes back, so filter to
has_email: truefirst. At 1,709 people that is up to 1,709 credits for one company, which is why it is an option and not the default. Measure it against the remaining balance, not the plan limit (seeoperator-voice.md).
3. Sequences
- One sequence per persona, not one for the buying committee. The executive and the champion get different copy and different subject lines, so the account sees separate conversations rather than one blast.
- Do not rely on Apollo to stop a second person from the same company. The enrollment flag
sequence_same_company_in_same_campaign(CLI--same-company) is documented as blocking it by default, but on 2026-09-14 two people from the same company, sameorganization_idand same account, both enrolled into an inactive sequence with the flag off and nothing skipped. So the per-account cap lives in your list file, not in Apollo. Separate persona sequences are still the cleaner build. - The job-change guard does work. A contact whose job has changed was skipped with the reason
contacts_with_job_change(flagsequence_job_change, off by default). In ABM that is usually right: the person has left the account you are targeting. - Timing is the operator's call, per campaign. Staggered means champions first and the executive a few days later, so the conversation builds. Simultaneous is faster, with more risk of colleagues comparing similar emails the same morning. Ask, write the choice into
profile.yaml, and time the second enrollment to match. - Launch as usual through
apollo-go-live: enroll into inactive sequences, read them back, a human approves.
4. The stop rule: a positive reply stops the account
When anyone at an account replies positively, stop everyone else at that account, in every ABM sequence. A negative reply ("not me", "not interested") stops only the person who sent it, and the others continue.
Apollo will not do this for you. It finishes only the person who replied, and contact search has no account filter on MCP or CLI. So:
- Keep
organization_idfor every enrolled contact in the campaign's local file. It is the only reliable way to find siblings later. - Find positive replies.
apollo emails search --stats repliedreturns each reply with areply_class;willing_to_meetandperson_referralare the likely positives. Treat the class as a first pass and confirm by reading the reply (positive-reply-scoring). - Stop the siblings. Look them up by
organization_idin the file, thenapollo_emailer_campaigns_remove_or_stop_contact_idswithmode: "stop", their contact ids, every ABM sequence id, and a stop reason that names the reply. - A referral to a named colleague: stop the others, then write to the named person with the referral as the opening line.
5. Measure by account
The honest ABM number is accounts with a positive conversation, out of accounts worked, not reply rate per email. campaign-reporting can group by account_id or account_label_ids, and saved account rows carry num_contacts and a campaign status tally for coverage.
Everything else still applies
- Capacity: every person is a send. 100 accounts, 3 people, 3 steps is 900 emails, and they queue on the same mailboxes as everything else.
- Verification before copy, suppression, and the per-company cap across campaigns (
apollo-list-builder). - Compliance (
compliance.md).
Common mistakes
- Passing an account
idinto an organization filter. It matches nothing, silently. - Trusting a fuzzy lookup match without checking the company and its domain.
- One sequence for the whole buying committee.
- Turning on same-company enrollment in a normal volume campaign.
- Enriching everyone at a large account by default.
- Letting the others keep sending after someone said yes.
- Scraping a Dream 100 instead of choosing it.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

