<< All versions

Skill v1.0.0

currentAutomated scan100/100
frontal-so/gtm-os/apollo-search
──Details
PublishedSeptember 27, 2026 at 09:27 AM
Content Hashsha256:463a504758f88c5c...
Git SHA26e80adb414e
──Files
Files (1 file, 10.2 KB)
SKILL.md10.2 KBactive
SKILL.md · 282 lines · 10.2 KB

version: "1.0.0"


Apollo Search

Search Apollo's 210M+ contacts and 35M+ companies to build targeted account and contact lists. Covers key endpoints, filters, proven configurations, and when to use Apollo vs alternatives.


Key Endpoints

Search (Free -- No Credits)

`POST /mixed_people/api_search` -- Search people database. Returns IDs and basic info but NOT emails/phones. Requires master API key.

bash
curl -X POST https://api.apollo.io/api/v1/mixed_people/api_search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY" \
-d '{
"person_titles": ["VP Sales", "Head of Growth"],
"person_seniorities": ["vp", "director"],
"organization_num_employees_ranges": ["51,200"],
"per_page": 100, "page": 1
}'

Pagination: 100/page, max 500 pages = 50,000 records.

Search Companies (Costs Credits)

`POST /mixed_companies/search` -- Search company database. Returns partial data.

GOTCHA: Response uses "accounts" key, NOT "organizations". Missing funding, revenue, and tech stack -- use enrichment after search for full data.

bash
curl -X POST https://api.apollo.io/api/v1/mixed_companies/search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_KEY" \
-d '{
"q_organization_keyword_tags": ["saas"],
"organization_num_employees_ranges": ["51,200", "201,500"],
"organization_locations": ["United States"],
"per_page": 100, "page": 1
}'

Enrich (Costs Credits)

EndpointWhatLimit
POST /people/matchSingle person enrichment1 at a time
POST /people/bulk_matchBulk people enrichment10 per call
GET /organizations/enrichSingle company enrichment1 at a time
POST /organizations/bulk_enrichBulk company enrichment10 per call

GOTCHA: Bulk org enrichment returns STRIPPED-DOWN data -- missing latest_funding_stage, total_funding, annual_revenue, technology_names[]. For full firmographic data, use single GET /organizations/enrich?domain=X instead.


Standard Workflow: Search Then Enrich

  1. Search with POST /mixed_people/api_search (free, no credits)
  2. Collect IDs from search results
  3. Bulk enrich with POST /people/bulk_match (10 IDs per call, costs credits)
  4. Get full profiles with emails, phone numbers, LinkedIn URLs, employment history

Never enrich individual search results one-by-one. Always batch into groups of 10.


Top 20 Filters

Company Filters

#FilterAPI ParameterExample Values
1Employee Countorganization_num_employees_ranges["51,200", "201,500"]
2RevenueCustom range in UI$10M-$50M, $50M-$100M
3Industryq_organization_keyword_tags["saas", "fintech"]
4Company Locationorganization_locations["United States", "Canada"]
5Funding StageFunding filter in UISeed, Series A, Series B, PE
6TechnologiesTechnologies filterSalesforce, HubSpot, Outreach
7Job PostingsJob Postings filter"SDR", "VP Sales"
8Year FoundedCustom range2018-2024
9Dept Headcount# Employees by DepartmentSales: 1-5
10Buying IntentIntent topics (Org plan only)1,600+ topics

People Filters

#FilterAPI ParameterExample Values
11Job Titleperson_titles["VP Sales", "Head of Growth"]
12Seniorityperson_seniorities["c-suite", "vp", "director"]
13DepartmentDepartment/FunctionSales, Marketing, Engineering
14Person Locationperson_locations["California, US"]
15Similar Titlesinclude_similar_titlestrue (expands matching)
16Recent Job ChangeTime filterLast 30/90/180 days
17Time in RoleExperience filter<1 year, 1-2 years
18Has EmailData availabilityYes/No
19Has PhoneData availabilityYes/No
20Email Statuscontact_email_statusVerified, Guessed

Employee Count Ranges (API Values)

"1,10" Micro / Startup
"11,50" Small business
"51,200" Growth stage
"201,500" Mid-market
"501,1000" Upper mid-market
"1001,5000" Enterprise
"5001,10000" Large enterprise
"10001,50000" Mega enterprise

Proven Search Configurations

Config 1: Referral Ceiling Founders (Frontal's best segment)

COMPANY:
Employees: 10-200
Revenue: $1M-$10M
Industry: Computer Software, Internet, IT & Services
Funding: Seed, Series A
Location: US, UK, Western Europe
Sales Dept: 0-2 headcount (no/tiny sales team = referral-dependent)
PEOPLE:
Titles: Founder, Co-Founder, CEO, Managing Director, Owner
Seniority: Owner/Founder, C-Suite

Config 2: Failed DIY Outbound (60% progression, educated buyer)

COMPANY:
Employees: 10-100
Revenue: $1M-$10M
Technologies: Apollo, Lemlist, Instantly, Outreach, SalesLoft, LinkedIn Sales Navigator
Location: US, Canada, UK
Sales Dept: 1-5 headcount
PEOPLE:
Titles: VP Sales, Head of Sales, Head of Growth, CEO, Founder, Director of Sales
Seniority: VP, Director, C-Suite, Owner/Founder

Config 3: Enterprise B2C (reference)

COMPANY:
Employees: 501+
Revenue: $100M+
Industry: Financial Services, Automotive, Retail, Insurance, Pharma, Consumer Services, Telecom, Real Estate
Location: United States
PEOPLE:
Titles: CMO, VP Growth, Head of Brand, Director Brand, Director SEO, Head of SEO
Seniority: C-Suite, VP, Director
Department: Marketing

Rate Limits

  • Fixed-window strategy (per minute, per hour, per day)
  • Limits vary by pricing plan tier
  • Bulk endpoints: 50% of single endpoint's per-minute rate, 100% of hourly/daily
  • Check your limits: POST /usage_stats/api_usage_stats
  • 429 response = rate limited. Back off and retry.

API Key Types

TypeAccess
Master KeyAll endpoints including restricted ones (users, deals, sequences, tasks, calls)
Standard KeyOnly specifically selected endpoints

People API Search (/mixed_people/api_search) requires a master key.

Headers (all requests):

Content-Type: application/json
Cache-Control: no-cache
x-api-key: YOUR_API_KEY

Filter Building Process

  1. Start broad -- industry + employee count + location
  2. Check result count -- target 500-5,000 companies
  3. Add keywords to narrow (Industry & Keywords filter)
  4. Add signals -- technology, intent, job postings
  5. Add people filters last -- title + seniority
  6. Too few results (<500)? Loosen employee range or remove a keyword
  7. Too many (>10,000)? Add funding stage or department headcount

Result Count Guidelines

< 500 companies → Too narrow, loosen filters
500-2,000 → Good for targeted campaign
2,000-5,000 → Good for broad campaign
5,000-10,000 → Consider splitting into sub-segments
10,000+ → Too broad, add more filters

Apollo vs Lima Data vs Exa

NeedBest ToolWhy
Large-scale company searchApollo35M+ companies, 65+ filters, free search
Contact search by title at known companiesLima DataPrecise title matching, batch API, 1 credit/contact
Finding niche/new companiesExa (Websets)AI-powered natural language search, finds companies not in databases
Enriching known contacts with emailLima Data1 credit for name+domain, 3 for LinkedIn URL
Enriching known contacts with full profileApolloBulk enrich 10 at a time, returns full employment history
LinkedIn URL lookupLinkup$0.005/domain, better than Lima Data for this
Finding contacts at tiny/new companiesExa + LinkupNot in Apollo/Lima Data yet

General rule: Use Apollo to BUILD the list (search + filter). Use Lima Data to ENRICH the list (find emails). Use Exa when Apollo's database does not have what you need.


Gotchas

  1. Industry is self-reported -- companies pick their own LinkedIn industry. "Information Technology & Services" is a catch-all.
  2. Revenue is estimated -- unreliable for private companies under $10M.
  3. Technologies = website tracking only -- detects scripts/pixels on the website. Internal tools (Slack, Notion) will not appear.
  4. Employee count lags -- may be 3-6 months behind for fast-growing startups.
  5. Department headcount is directional -- estimated from LinkedIn profiles. Small depts (1-3) most accurate.
  6. Funding recency matters -- Series A from 5 years ago is very different from last quarter.
  7. Job Postings = active only -- companies that just filled a role disappear from this filter.
  8. Buying Intent requires Organization plan -- not available on Professional tier.
  9. Search does not return emails -- must use enrichment endpoint after search.
  10. No dedup on account/contact creation -- Apollo will create duplicates unless you set run_dedupe=true.

Proxy Filter Strategies

Apollo does not have a "who does this company sell to?" filter. Use proxies:

Companies selling to SMB:

  • Keywords: "small business", "SMB", "SME", "freelancer", "solopreneur"
  • Tech stack: Stripe, Mailchimp, Calendly, QuickBooks, Gusto
  • Company size: 11-200 employees (SMB sellers are usually SMB themselves)

Companies with outbound motion:

  • Job Postings: "SDR", "BDR", "Sales Development"
  • Tech stack: Outreach, SalesLoft, Apollo, Lemlist, Instantly
  • Sales dept headcount: 1-20

Companies selling to a vertical:

  • Keywords: "[vertical]" + "platform" OR "solution" OR "software"
  • Industry: Computer Software (NOT the vertical itself -- that finds the buyers, not the sellers)

References

  • Apollo API full reference: frontal-tools/skills/apollo/SKILL.md
  • Apollo filters reference: frontal-tools/skills/apollo-filters/SKILL.md
  • Lima Data API: frontal-tools/skills/lima-data/SKILL.md

_Part of Frontal — free, open GTM skills for your AI agent. Browse the library →_

All versions