Build an Apollo Lead Enrichment Agent With Cost Controls

Build an Apollo Lead Enrichment Agent With Cost Controls

Aident AI

Many blue candidate forms narrow through a coral aperture into a small amber review chamber.

Build an Apollo Lead Enrichment Agent With Cost Controls

The safe Apollo lead enrichment pattern is search first, shortlist second, and enrich only the reviewed few. Do not ask an agent to enrich every result or start outreach in the same run.

That separation controls three things at once: Apollo provider credits, Aident execution credits, and the amount of personal data entering the workflow. It also gives a reviewer a clean stop point before the expensive and privacy-sensitive step.

The Short Answer

The live Aident Loadout contracts on August 12, 2026 supported this sequence:

Step

Current job

Dated contract evidence

1. Define the ICP

Specify titles, geography, company size, industries, domains, and exclusions

Local policy; no provider call

2. Search people

Find candidate leads by ICP

Required icp and maxLeads; no email or phone in search results; risk level 1; exact zero-credit Aident preflight

3. Review the shortlist

Rank and select returned external lead keys

Local decision; no provider call

4. Enrich selected leads

Enrich one to ten reviewed lead keys

leadIds required; personal email reveal defaults to false; risk level 1; one-lead preflight quoted 2 Aident credits

5. Approve any downstream write

Save, sequence, or contact only after a separate review

Outside this article's scope

Apollo's official People API Search documentation makes the same provider boundary explicit: search does not return email addresses or phone numbers, and enrichment is a separate endpoint. Apollo currently documents people search as zero provider credits and people enrichment as variable, depending on the data returned.

The prices above are dated Aident preflight evidence, not permanent promises. Rediscover and preflight the current Actions before each batch.

Keep Aident Credits and Apollo Credits Separate

An agent can pass Aident preflight and still fail at Apollo's provider boundary.

The bounded verification for this guide proved that distinction:

  • a people-search input preflighted at zero Aident credits and executed once, returning a valid empty shortlist;

  • a one-lead enrichment input preflighted at exactly 2 Aident credits but was not executed because there was no reviewed lead key;

  • an optional organization-first search preflighted at exactly 2 Aident credits, then Apollo rejected the provider request for insufficient Apollo lead credits.

Do not treat the provider rejection as permission to bypass Loadout or call Apollo directly. It is a useful stop result. Add provider budget, narrow the job, or end the run.

Apollo's API pricing guide says credit use depends on both the endpoint and returned data. It also recommends testing a small request before scaling. Aident preflight covers the Aident execution estimate; it cannot promise that the connected Apollo workspace has provider credits for the final call.

Start From the Live Actions

Install or update Aident Loadout from the canonical guide:

Follow https://aident.ai/SETUP.md

Confirm the account and Vault state:

aident account auth status
aident vault vault --action status

Search by job rather than copying an internal identifier from an old article:

aident capabilities search \
  --queries '[
    "find candidate leads in Apollo from an ideal customer profile",
    "enrich a reviewed subset of Apollo lead IDs"
  ]' \
  --types '["action"]' \
  --targetEnv staging

Keep the exact public Action names returned by discovery. Inspect both current contracts:

aident capabilities get \
  --name "<current Apollo ICP people-search Action>" \
  --parts '["inputSchema","outputSchema","examples"]'

aident capabilities get \
  --name "<current Apollo lead-enrichment Action>" \
  --parts '["inputSchema","outputSchema","examples"]'

Stop if discovery is ambiguous, the connection is missing, or the enrichment result does not accept the stable lead key returned by search.

Define a Bounded ICP Contract

Write the inclusion and exclusion rules before calling Apollo. A useful first contract includes:

  • one or two job-title families;

  • one geography;

  • an employee range;

  • any required company domains or industries;

  • explicit excluded domains; and

  • a hard maximum shortlist size.

Avoid a vague request such as “find everyone who might buy.” It is impossible to review and encourages an agent to widen filters until it returns volume.

For example, preflight a small people search:

aident capabilities preflight \
  --name "<current Apollo ICP people-search Action>" \
  --input '{
    "icp": {
      "titles": ["VP Engineering", "Head of AI"],
      "geo": ["United States"],
      "keywords": ["developer tools", "AI agents"],
      "employeeRange": "11-200"
    },
    "limit": 10,
    "maxLeads": 5,
    "runName": "reviewed-apollo-test",
    "notes": "Shortlist only. Do not enrich or contact."
  }'

Preflight must validate the exact input and quote the current Aident cost without dispatching Apollo. If the input is valid and the quote fits the ceiling, execute the search once. An empty shortlist is a valid result. Do not automatically broaden the ICP or repeat the request.

Review Before Enrichment

Search results should be candidates, not permission to collect more data.

Review the returned organization, title, location, and stable external lead key. Remove obvious mismatches and duplicates. Keep only the leads needed for the immediate business question.

Then preflight the narrowest enrichment call:

aident capabilities preflight \
  --name "<current Apollo lead-enrichment Action>" \
  --input '{
    "leadIds": ["<one reviewed external lead key>"],
    "runId": "<search run ID>",
    "revealPersonalEmails": false
  }'

The current contract accepts at most ten lead IDs. Start with one. Keep revealPersonalEmails false unless the user has a specific, lawful need for personal email data.

Execute only when:

  • the lead key came from the reviewed search run;

  • the exact Aident quote is within budget;

  • the Apollo workspace has the required provider credits;

  • the requested fields are necessary for the stated job; and

  • retention, consent, and outreach rules are already defined.

This article stops at enrichment. Creating contacts, adding people to a sequence, or sending messages is a separate write workflow with its own review.

Account-First Prospecting Is Optional

When the ICP depends on company characteristics, start with an organization search, shortlist domains, and pass only those domains into people search. This produces a clearer account-first funnel.

It can also consume provider credits. In the dated verification, the organization-search Action passed its 2-credit Aident preflight but Apollo rejected the call because the connected workspace lacked lead credits. The correct behavior was to stop. The article does not claim an end-to-end organization result.

If you already have an approved account list, skip the organization lookup. Reuse those domains as the single source of truth instead of paying to rediscover them.

What to Record in the Receipt

Keep a compact, privacy-conscious receipt:

  • the normalized ICP and exclusions;

  • discovery date and public Action names;

  • search and enrichment preflight quotes;

  • search run ID;

  • counts received, filtered, selected, and enriched;

  • provider success or failure status;

  • credits charged by each layer when available; and

  • reviewer and downstream authorization state.

Do not store prompts, raw provider responses, personal emails, or phone numbers in a general analytics log. Use the Action audit workflow for operational attribution, and keep product analytics separate from sensitive lead records.

For agent-wide spend limits, use the cost guardrails workflow. Credit approval and consequence approval remain separate decisions, as explained in the risk-versus-spend approval workflow.

A Safe Prompt for Codex or Claude Code

Follow https://aident.ai/SETUP.md

Build one bounded Apollo lead-enrichment review with the installed public aident
CLI. Confirm account and Vault status, discover the current Apollo people-search
and lead-enrichment Actions in staging, and inspect both schemas.

Before any provider call, show me the normalized ICP, exclusions, hard result
limit, exact public Action names, risk levels, current Aident credit estimates,
and any Apollo provider-credit dependency. Do not copy internal identifiers into
the report.

Search at most 10 candidates and return at most 5. Do not broaden filters or
repeat an empty search. Do not enrich automatically. Show only non-sensitive
shortlist fields and stable external lead keys.

Wait for my approval before enrichment. If approved, preflight one reviewed lead
with personal email reveal disabled. Stop if the input is invalid, the estimate
is unavailable or above 2 Aident credits, Apollo reports insufficient provider
credits, or the lead key is not from the reviewed run. Do not create contacts,
add sequences, send outreach, or bypass Aident Loadout

Success is not a large lead list. Success is one explainable funnel from ICP to shortlist to optional enrichment, with a receipt that proves where both budget and data expanded.

Failure Matrix

Failure

What it means

Next action

Discovery returns different Actions

The catalog changed

Inspect the new schemas and restart preflight

Search preflight is invalid

The ICP does not match the live contract

Fix the reviewed input; do not bypass Loadout

Search returns zero leads

The bounded ICP produced no candidates

Record zero and stop or ask a human to revise the ICP

Organization lookup reports insufficient Apollo credits

The provider budget is unavailable

Add provider budget or skip the optional lookup

Enrichment quote exceeds the ceiling

The selected batch is too expensive

Reduce to one lead or request explicit budget approval

A lead key is not from the reviewed run

Search and enrichment evidence are disconnected

Reject the input

Personal email reveal is requested without a business need

Data minimization failed

Keep it false and redesign the workflow

The user asks to enroll or contact leads

The workflow crossed into an external write

Start a separate reviewed outreach workflow

Build One Bounded Apollo Run

Follow https://aident.ai/SETUP.md

Set up Aident Loadout and review one Apollo enrichment

Sources

Refresh this guide when the live search or enrichment schema, risk, pricing, provider-credit behavior, result-key contract, or Apollo data policy changes.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 1,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.

Try Aident Loadout

Give your Agent real capabilities in minutes. Connect 1,000+ tools, and let your agents execute.