home / skills / composiohq / awesome-claude-skills / apollo-automation

apollo-automation skill

/apollo-automation

This skill automates Apollo.io lead generation by searching organizations, discovering contacts, enriching data, and managing outreach lists.

npx playbooks add skill composiohq/awesome-claude-skills --skill apollo-automation

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
6.9 KB
---
name: Apollo Automation
description: "Automate Apollo.io lead generation -- search organizations, discover contacts, enrich prospect data, manage contact stages, and build targeted outreach lists -- using natural language through the Composio MCP integration."
category: sales-intelligence
requires:
  mcp:
    - rube
---

# Apollo 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](https://composio.dev/toolkits/apollo)

---

## Setup

1. Add the Composio MCP server to your client configuration:
   ```
   https://rube.app/mcp
   ```
2. Connect your Apollo.io account when prompted (API key authentication).
3. 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 exclude
- `organization_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 people
- `q_organization_domains` -- Company domains (e.g., "apollo.io" -- exclude "www.")
- `organization_ids` -- Apollo company IDs from Organization Search
- `contact_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 address
- `linkedin_url` -- Full LinkedIn profile URL
- `first_name` + `last_name` + (`organization_name` or `domain`) -- Name-based matching
- `domain` -- 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 (requires `webhook_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 like `email`, `linkedin_url`, `first_name`, `last_name`, `domain`, `company_name`
- `reveal_personal_emails` -- Include personal emails (extra credits)
- `reveal_phone_number` -- Include phone numbers (requires `webhook_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 update
- `contact_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_name`
- `account_id` -- Link to an organization
- `contact_stage_id` -- Initial sales stage

---

## Known Pitfalls

- **Organization domains can be empty**: Some organizations from `APOLLO_ORGANIZATION_SEARCH` return missing or empty domain fields. Use `APOLLO_ORGANIZATION_ENRICHMENT` to 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_SEARCH` may show `has_email`/`has_direct_phone` flags or obfuscated fields instead of full contact details. Use `APOLLO_PEOPLE_ENRICHMENT` to get complete information.
- **Pagination limits are strict**: People search supports `per_page` up 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_ENRICHMENT` accepts only 10 items per call. It can return `status='success'` with `missing_records > 0` when identifiers are insufficient -- retry individual records with `APOLLO_PEOPLE_ENRICHMENT`.
- **No automatic deduplication**: `APOLLO_CREATE_CONTACT` does not deduplicate. Check for existing contacts first with `APOLLO_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](https://composio.dev)*

Overview

This skill automates Apollo.io lead generation and enrichment via the Composio MCP integration. It lets you search companies, discover and enrich contacts, manage pipeline stages, and build targeted outreach lists using natural language. Setup uses API key authentication through the Composio MCP server for seamless prompts-to-actions.

How this skill works

Send plain-English commands and the skill maps them to Apollo toolkit actions (organization search, people search, enrichment, bulk jobs, contact stage management, create/search contacts). Each action accepts structured parameters (filters, identifiers, pagination) and returns enriched records you can export or push into your CRM. The skill also exposes safeguards and status responses for missing data, rate limits, and required credentials.

When to use it

  • Build targeted prospect lists by company attributes (industry, size, location).
  • Find decision-makers and filter by title, seniority, or verified email status.
  • Enrich single or small batches of leads with emails, phone numbers, and LinkedIn.
  • Bulk-process up to 10 contacts for quicker outreach preparation.
  • Automate moving contacts through sales stages and maintain pipeline state.

Best practices

  • Use organization enrichment to validate domains before using them to search people.
  • Respect pagination limits: per_page ≤ 100 and max 500 pages to avoid missed results.
  • Run individual enrichments when bulk results return missing records to recover details.
  • Avoid creating contacts without first searching to prevent duplicates.
  • Provide bare hostnames (e.g., "apollo.io") — omit protocol and "www." prefixes.

Example use cases

  • Find SaaS companies in Texas with 50–500 employees and pull VPs of Sales for outreach.
  • Bulk enrich five event leads by email or LinkedIn to prepare personalized sequences.
  • Search your saved contacts for anyone at Stripe and move qualified leads to 'Demo' stage.
  • Enrich a single contact by email to retrieve direct phone and confirm verified address.
  • Automate a weekly job that adds newly discovered enterprise accounts to a prospect list.

FAQ

What identifiers can I use to enrich a person?

Use an email, full LinkedIn profile URL, or first+last name plus company name or domain.

Why do I see obfuscated contact fields in people search?

People search may return flags or obfuscated values; run a people enrichment call to get full contact details.