← all tools
Prospecting

Apollo

Find net-new people and companies, then reveal how to reach them.

Apollo is a prospecting tool, and one of the 52 tools hyreflow connects to Claude, ChatGPT and other AI assistants. Through hyreflow, an AI agent can run 25 actions: 17 that look something up and 8 that create or change records. Apollo runs on your own Apollo account: hyreflow charges no credits for it, and Apollo bills you as before.

Cost per callBYOK · vendor billed
Your own keyrequired
CategoryProspecting

Your agent searches Apollo for people and companies matching your brief, then reveals emails and phone numbers only for the ones you shortlist. Searching is free. Revealing costs credits, so hyreflow filters first and spends second.

Apollo starts the pipeline. It builds the list, then hands the shortlist to enrichment for better coverage, or straight to a sequencer.

What can you ask Claude or ChatGPT to do with Apollo?

With hyreflow connected, you ask for the outcome in plain language and the assistant runs Apollo for you. For example:

  • “Take this job brief url and build a first longlist, then clear every address with Enrichley”
  • “Find heads of engineering at Series B fintechs in Berlin and resolve whatever Apollo misses through FullEnrich”
  • “Pull the 40 companies hiring for this role, cross-check them against TheirStack, and give me the hiring manager on each”
  • “Load this shortlist into a paused Instantly campaign”

Which tools work well with Apollo?

In a hyreflow run, Apollo is most often paired with TheirStack, FullEnrich, Enrichley and Instantly.

  • TheirStack

    narrow to companies that are actually hiring before you spend a reveal

  • FullEnrich

    waterfall the contacts Apollo could not resolve on its own

  • Enrichley

    clear the addresses before a sequencer ever sees them

  • Instantly

    turn the finished list into a campaign, paused until you approve it

Which Apollo actions can an AI agent run through hyreflow?

Through hyreflow, an AI agent can run 25 Apollo actions: 17 that look something up and 8 that create or change records. Apollo runs on your own Apollo account: hyreflow charges no credits for it, and Apollo bills you as before.

Apollo actionWhat it doesCost through hyreflow
Bulk enrich organizationsLooks something upno hyreflow credits
Bulk enrich peopleLooks something upno hyreflow credits
Enrich organizationLooks something upno hyreflow credits
Enrich personLooks something upno hyreflow credits
Search accountsLooks something upno hyreflow credits
Search contactsLooks something upno hyreflow credits
Search organizationsLooks something upno hyreflow credits
Search peopleLooks something upno hyreflow credits
Search sequencesLooks something upno hyreflow credits
Add contacts to sequenceCreates or changes a recordno hyreflow credits
Show all 25 Apollo actions →
Apollo actionWhat it doesCost through hyreflow
Create accountCreates or changes a recordno hyreflow credits
Create contactCreates or changes a recordno hyreflow credits
Activate sequenceCreates or changes a recordno hyreflow credits
Bulk create contactsCreates or changes a recordno hyreflow credits
Deactivate sequenceCreates or changes a recordno hyreflow credits
Organization job postingsLooks something upno hyreflow credits
Update accountCreates or changes a recordno hyreflow credits
Update contactCreates or changes a recordno hyreflow credits
View accountLooks something upno hyreflow credits
View contactLooks something upno hyreflow credits
List email accountsLooks something upno hyreflow credits
List fieldsLooks something upno hyreflow credits
List listsLooks something upno hyreflow credits
List usersLooks something upno hyreflow credits
Get organizationLooks something upno hyreflow credits

One credit is priced on the pricing page. The full price list for every tool is in the pricing tables.

Which hyreflow skills use Apollo?

6 hyreflow skills call Apollo as part of the run. A skill is a whole pipeline your agent already knows, end to end.

Sourcing

Build Boolean and X-ray search strings from a job spec

use whenyou have a spec and want search strings you can paste into LinkedIn, Google or your ATS, without hand-typing forty title variants

SerperAI ArkProspeoLemlistApolloExa
starts from a job spec · 7 stepsget the prompt →
Sourcing

Run one candidate search across every people database at once

use whenone database keeps handing you the same names and you suspect the rest of the market is sitting in the others

AI ArkProspeoLemlistApolloLeadMagichyreflow AgentFullEnrich
starts from a job spec · 8 stepsget the prompt →
Contact data

Enrich on the data seats you already pay for, and buy only the gaps

use whenyour agency already pays for seats with data providers such as Prospeo, Lusha or Apollo, and you do not want to buy the same lookups a second time

ProspeoLushaApolloFullEnrichLeadMagicWizaAI ArkEnrichley
starts from a list · 8 stepsget the prompt →
Research and mapping

Size a talent pool before you pitch for the role

use whena client is about to brief you, or you are about to quote a fee, and you want to know how many people actually exist before you promise anything

WizaProspeoAI ArkApollohyreflow Native
starts from a job spec · 7 stepsget the prompt →
Qualification

Qualify a company list against your ICP before you pay to enrich it

use whena search returned a few hundred companies and you are about to spend real money finding contacts at all of them

ApolloAI ArkLushaZoomInfoLeadMagicSerperExa
starts from a list · 6 stepsget the prompt →
Qualification

See the count and the cost before a search spends anything

use whenyou are about to run a search or an enrichment, and you want to know how many records it will touch and what it will cost before you say yes

WizaAI ArkProspeoApolloLeadMagicFullEnrichEnrichley
starts from a job spec · 7 stepsget the prompt →

How does an AI agent know how to use Apollo?

hyreflow ships a written playbook for Apollo, and the agent loads it before the first call. Auth, rate limits, what each call costs, which actions need your approval, and the mistakes worth avoiding. It is the difference between an agent that knows the tool and one that guesses at it.

Read the Apollo docs →
Show the raw playbookwritten for the agent

Routing layer for Apollo API work. WHAT/guardrails here; HOW in reference/endpoints.md (59 ops) and the Python client lib/apollo.py. Full per-endpoint OpenAPI is cached at reference/docs/apollo/raw/<slug>.md.

1) Auth & config

  • Base URL: https://api.apollo.io/api/v1
  • Auth: API key in header x-api-key (Apollo → Settings → API). Env APOLLO_API_KEY; never hardcode.
  • BYOK-only — Apollo isn't resold on managed credits; each workspace connects its own key in Integrations. Connecting your own key needs the Essential plan or above.
  • Pagination: page + per_page; response pagination:{page,per_page,total_entries,total_pages} + a result array (people/contacts/accounts/organizations). Client _paginate follows it.

2) Credits & outreach guardrails (important)

  • Search ≠ Enrich. search_people / search_organizations are net-new prospecting — they return no emails/phones and cost no credits. Use them to build shortlists.
  • Enrichment costs credits. enrich_person (/people/match), bulk_enrich_people, enrich_organization reveal emails/phones and consume credits. reveal_personal_emails / reveal_phone_number flags gate paid reveals — default off, confirm before bulk.
  • Sequences = real outreach. add_contacts_to_sequence enrolls people into live sending and activate_sequence starts it — approval-gated (pilot one, confirm, then batch).
  • Pilot bulk enrichment/writes on 1 record first; show payload+response; get explicit go-ahead.

3) Operations covered by the client

People (search, enrich, bulk_enrich), organizations (search, enrich, bulk_enrich, get, job_postings), contacts (create, update, view, search, bulk_create), accounts (create, update, view, search), sequences (search, add_contacts, activate, deactivate), lookups (fields, email_accounts, users, lists). Anything else in the 59-op surface → generic request(method, path, …) + reference/endpoints.md.

4) Handoff with the GTM/recruiting layer

Apollo is a sourcing + enrichment engine. Canonical flow: search_people/search_organizations to build a net-new shortlist (free) → enrich_person only on the shortlist (credits) → write to your ATS (recruit-crm) or hand to a sequencer (instantly/sourcewhale). Enrich late, on the filtered set, never the whole funnel (over-provision then filter).

Field notes (production experience)

Field-shape note: these are vendor-native operational notes. The client returns the raw vendor JSON and uses the method names in this file — read field shapes accordingly (no normalized-wrapper / result.data. prefix).

Response shape (our direct client): people search returns top-level { total_entries, people, pagination } - read response["people"]. Company search is canonical at organizations (not accounts) - read response["organizations"]; rows carry name, primary_domain/domain, linkedin_url, industry.

  • Free vs paid people search: mixed_people/api_search = free preview (obfuscated names/contact gaps, no credits) - use for cheap discovery/shortlisting. mixed_people/search = paid (full coverage). Start free, escalate to paid only when needed.
  • Obfuscated last names: detect S****, K., -, N/A, masked strings from free search; do not feed them to email-finders/pattern generators. Bridge: free search -> people match by Apollo id -> use the resolved last_name. Flag last_name_obfuscated=true.
  • Company targeting: keep include_similar_titles=true unless strict matching is asked. Prefer q_organization_domains_list/organization_ids over name-only keywords. For exact industry use organization_industry_tag_ids (taxonomy IDs from industry_tag_id/industry_tag_hash in org rows - Apollo doesn't publish the taxonomy in the spec), not q_organization_keyword_tags (keyword search, pulls off-industry).
  • organization_num_employees_ranges is contract-sensitive - use the exact format Apollo expects; don't trust pagination.total_entries alone - pilot with low per_page first.

Callable surface — lib/apollo.py

Import: from lib.apollo import Apollo → instantiate Apollo() (reads key from env). Base: https://api.apollo.io/api/v1. Generic passthrough: request(method, path, *, params, json).

  • activate_sequence(sequence_id: str) -> dict — POST /emailer_campaigns/{id}/approve — starts the sequence sending.
  • add_contacts_to_sequence(sequence_id: str, contact_ids: list[str], email_account_id: str, **opts) -> dict — POST /emailer_campaigns/{id}/add_contact_ids — ENROLLS contacts into live outreach.
  • bulk_create_contacts(contacts: list[dict], **opts) -> dict
  • bulk_enrich_organizations(domains: list[str], **opts) -> dict — POST /organizations/bulk_enrich — up to 10 domains per call.
  • bulk_enrich_people(details: list[dict], **opts) -> dict — POST /people/bulk_match — enrich up to 10 people per call. Consumes credits.
  • create_account(payload: dict) -> dict
  • create_contact(payload: dict) -> dict — POST /contacts — create a CRM contact in your Apollo.
  • deactivate_sequence(sequence_id: str) -> dict
  • enrich_organization(domain: str, **params) -> dict — GET /organizations/enrich — enrich one company by domain.
  • enrich_person(payload: dict) -> dict — POST /people/match — enrich one person (email/phone). Consumes credits.
  • get_organization(org_id: str) -> dict
  • list_email_accounts(**params) -> Any — GET /email_accounts — sending mailboxes (need an id to enroll into sequences).
  • list_fields(**params) -> Any
  • list_lists(**params) -> Any — GET /labels — Apollo lists.
  • list_users(**params) -> Any
  • organization_job_postings(org_id: str, **params) -> Any
  • search_accounts(filters: dict | None = None) -> Iterator[dict]
  • search_contacts(filters: dict | None = None) -> Iterator[dict] — POST /contacts/search — search your Apollo contacts.
  • search_organizations(filters: dict | None = None) -> Iterator[dict] — POST /mixed_companies/search — company/account search.
  • search_people(filters: dict | None = None) -> Iterator[dict] — POST /mixed_people/api_search — prospect net-new people. No emails/phones, no credits.
  • search_sequences(filters: dict | None = None) -> Iterator[dict] — POST /emailer_campaigns/search.
  • update_account(account_id: str, payload: dict) -> dict
  • update_contact(contact_id: str, payload: dict) -> dict — PATCH /contacts/{contact_id}.
  • view_account(account_id: str) -> dict
  • view_contact(contact_id: str) -> dict

Questions about Apollo and hyreflow

Can I use Apollo inside Claude or ChatGPT?

Yes. hyreflow is a connector for Claude, ChatGPT and other AI assistants. Once hyreflow is connected, you ask for the outcome in plain language and the assistant calls Apollo for you. hyreflow exposes 25 Apollo actions this way.

Do I need my own Apollo account to use it with hyreflow?

Yes. Apollo runs on your own Apollo account. You connect it to hyreflow once, hyreflow charges no credits for the calls, and Apollo bills you as before.

What does Apollo cost through hyreflow?

Apollo runs on your own Apollo account: hyreflow charges no credits for it, and Apollo bills you as before.

How do I connect Apollo to an AI agent over MCP?

Add the hyreflow MCP server to your assistant and sign in. hyreflow calls the Apollo API directly and exposes its actions as tools the assistant can run, so there is no separate Apollo server to install.

Connect hyreflow to your assistant →

Put Apollo to work from one prompt

Connect hyreflow to Claude or ChatGPT and ask for the outcome. It reads the playbook above before it makes a single call.