Apollo Automation
npx machina-cli add skill ComposioHQ/awesome-claude-skills/apollo-automation --openclawApollo Automation
Supercharge your sales prospecting with Apollo.io -- search companies, discover decision-makers, enrich contact data with emails and phone numbers, and manage your sales pipeline stages -- all through natural language commands.
Toolkit docs: composio.dev/toolkits/apollo
Setup
- Add the Composio MCP server to your client configuration:
https://rube.app/mcp - Connect your Apollo.io account when prompted (API key authentication).
- Start issuing natural language commands to prospect and enrich leads.
Core Workflows
1. Search Organizations
Find target companies using filters like name, location, employee count, and industry keywords.
Tool: APOLLO_ORGANIZATION_SEARCH
Example prompt:
"Find SaaS companies in Texas with 50-500 employees on Apollo"
Key parameters:
q_organization_name-- Partial name match (e.g., "Apollo" matches "Apollo Inc.")organization_locations-- HQ locations to include (e.g., "texas", "tokyo")organization_not_locations-- HQ locations to excludeorganization_num_employees_ranges-- Employee ranges in "min,max" format (e.g., "50,500")q_organization_keyword_tags-- Industry keywords (e.g., "software", "healthcare")page/per_page-- Pagination (max 100 per page, max 500 pages)
2. Discover People at Companies
Search Apollo's contact database for people matching title, seniority, location, and company criteria.
Tool: APOLLO_PEOPLE_SEARCH
Example prompt:
"Find VPs of Sales at microsoft.com and apollo.io"
Key parameters:
person_titles-- Job titles (e.g., "VP of Sales", "CTO")person_seniorities-- Seniority levels (e.g., "director", "vp", "senior")person_locations-- Geographic locations of peopleq_organization_domains-- Company domains (e.g., "apollo.io" -- exclude "www.")organization_ids-- Apollo company IDs from Organization Searchcontact_email_status-- Filter by email status: "verified", "unverified", "likely to engage"page/per_page-- Pagination (max 100 per page)
3. Enrich Individual Contacts
Get comprehensive data (email, phone, LinkedIn, company info) for a single person using their email, LinkedIn URL, or name + company.
Tool: APOLLO_PEOPLE_ENRICHMENT
Example prompt:
"Enrich Tim Zheng at Apollo.io on Apollo"
Key parameters (at least one identifier required):
email-- Person's email addresslinkedin_url-- Full LinkedIn profile URLfirst_name+last_name+ (organization_nameordomain) -- Name-based matchingdomain-- Bare hostname without protocol (e.g., "apollo.io", not "https://apollo.io")reveal_personal_emails-- Set true to get personal emails (may use extra credits)reveal_phone_number-- Set true for phone numbers (requireswebhook_url)
4. Bulk Enrich Prospects
Enrich up to 10 people simultaneously for efficient batch processing.
Tool: APOLLO_BULK_PEOPLE_ENRICHMENT
Example prompt:
"Bulk enrich these 5 leads with their Apollo data: [list of names/emails]"
Key parameters:
details(required) -- Array of 1-10 person objects, each with identifiers likeemail,linkedin_url,first_name,last_name,domain,company_namereveal_personal_emails-- Include personal emails (extra credits)reveal_phone_number-- Include phone numbers (requireswebhook_url)
5. Manage Contact Pipeline Stages
List available stages and update contacts through your sales funnel.
Tools: APOLLO_LIST_CONTACT_STAGES, APOLLO_UPDATE_CONTACT_STAGE
Example prompt:
"Move contacts X and Y to the 'Qualified' stage in Apollo"
Key parameters for listing stages: None required.
Key parameters for updating stage:
contact_ids(required) -- Array of contact IDs to updatecontact_stage_id(required) -- Target stage ID (from List Contact Stages)
6. Create and Search Saved Contacts
Create new contact records and search your existing Apollo contact database.
Tools: APOLLO_CREATE_CONTACT, APOLLO_SEARCH_CONTACTS
Example prompt:
"Search my Apollo contacts for anyone at Stripe"
Key parameters for search:
- Keyword search, stage ID filtering, sorting options
page/per_page-- Pagination
Key parameters for create:
first_name,last_name,email,organization_nameaccount_id-- Link to an organizationcontact_stage_id-- Initial sales stage
Known Pitfalls
- Organization domains can be empty: Some organizations from
APOLLO_ORGANIZATION_SEARCHreturn missing or empty domain fields. UseAPOLLO_ORGANIZATION_ENRICHMENTto validate domains before relying on them. - HTTP 403 means config issues: A 403 response indicates API key or plan access problems -- do not retry. Fix your credentials or plan first.
- People search returns obfuscated data:
APOLLO_PEOPLE_SEARCHmay showhas_email/has_direct_phoneflags or obfuscated fields instead of full contact details. UseAPOLLO_PEOPLE_ENRICHMENTto get complete information. - Pagination limits are strict: People search supports
per_pageup to 100 and max 500 pages. Stopping early can miss large portions of the result set. - Bulk enrichment has small batch limits:
APOLLO_BULK_PEOPLE_ENRICHMENTaccepts only 10 items per call. It can returnstatus='success'withmissing_records > 0when identifiers are insufficient -- retry individual records withAPOLLO_PEOPLE_ENRICHMENT. - No automatic deduplication:
APOLLO_CREATE_CONTACTdoes not deduplicate. Check for existing contacts first withAPOLLO_SEARCH_CONTACTS. - Domain format matters: Always use bare hostnames (e.g., "apollo.io") without protocol prefixes ("https://") or "www." prefix.
Quick Reference
| Action | Tool Slug | Required Params |
|---|---|---|
| Search organizations | APOLLO_ORGANIZATION_SEARCH | None (optional filters) |
| Enrich organization | APOLLO_ORGANIZATION_ENRICHMENT | domain |
| Bulk enrich orgs | APOLLO_BULK_ORGANIZATION_ENRICHMENT | domains |
| Search people | APOLLO_PEOPLE_SEARCH | None (optional filters) |
| Enrich person | APOLLO_PEOPLE_ENRICHMENT | One of: email, linkedin_url, or name+company |
| Bulk enrich people | APOLLO_BULK_PEOPLE_ENRICHMENT | details (1-10 person objects) |
| List contact stages | APOLLO_LIST_CONTACT_STAGES | None |
| Update contact stage | APOLLO_UPDATE_CONTACT_STAGE | contact_ids, contact_stage_id |
| Create contact | APOLLO_CREATE_CONTACT | Name + identifiers |
| Search contacts | APOLLO_SEARCH_CONTACTS | None (optional filters) |
Powered by Composio
Source
git clone https://github.com/ComposioHQ/awesome-claude-skills/blob/master/composio-skills/apollo-automation/SKILL.mdView on GitHub Overview
Automate Apollo.io lead generation by searching organizations, discovering decision-makers, enriching contact data (emails and phone numbers), and managing pipeline stages. It uses natural language commands through the Composio MCP integration to streamline targeted outreach.
How This Skill Works
Connect Composio MCP to Apollo.io, then issue natural language prompts. The skill routes prompts to Apollo tools (organization search, people search, enrichment, bulk enrichment, and stage updates) to return enriched leads and update contact stages.
When to Use It
- Build targeted outreach lists by industry and location
- Find decision-makers by title and domain (e.g., apollo.io, microsoft.com)
- Enrich a single contact with emails, phones, and company data
- Bulk enrich up to 10 leads for quick data refresh
- Update contact stages as prospects move through the funnel
Quick Start
- Step 1: Add the Composio MCP server at https://rube.app/mcp
- Step 2: Connect your Apollo.io account with your API key
- Step 3: Issue natural language prompts to prospect and enrich leads
Best Practices
- Define clear filters for organization search (location, employees, keywords)
- Use exact or partial domain matches for accurate people search
- Mask or reveal personal emails only if you have permission and credits
- Leverage pagination (per_page and page) to fetch comprehensive results
- Test prompts in small batches before bulk actions
Example Use Cases
- Find SaaS companies in Texas with 50-500 employees on Apollo
- Find VPs of Sales at microsoft.com and apollo.io
- Enrich Tim Zheng at Apollo.io on Apollo
- Bulk enrich 5 leads with their Apollo data: [names/emails]
- Update lead stage to Qualified after initial outreach