Skip to content

Agent-driven account research

100 researched account briefs for $8.98, inside a free tier

setup.sh two servers
$ claude mcp add --transport http \
    exa https://mcp.exa.ai/mcp
$ claude mcp add --transport http \
    apollo https://mcp.apollo.io/mcp

# then, in plain language:
# "research these 20 accounts and write a
#  brief into Attio for each one"
Connected Per account brief $0.0898

Account research is the work nobody has time for and everybody knows matters. Reading a company's site, finding what changed recently, checking who runs the relevant function and writing three sentences a rep can actually open with takes about twenty minutes a company. Nobody does it for a list of two hundred.

This stack does it for about nine cents an account, and it is the only stack in this library that needs no engineering at all. Two MCP servers connected to an AI client, a CRM with a write API, and a prompt. The setup takes about fifteen minutes.

What is genuinely new here

None of these capabilities are new. What changed is that connecting them stopped requiring an integration project. A year ago this stack was a two-week build. Now it is two OAuth flows and a paragraph of instructions, which is why it belongs in a directory rather than in a backlog.

Three steps, no code

Everything below happens inside one AI client session. The model picks the tools, you review the output.

1

Exa MCP · read the open web

Roughly three searches and five page fetches per account, returning clean markdown rather than links. This is what finds the funding round, the new VP, the product launch and the conference talk.

$0.031per account
↓ raw research
2

Apollo MCP · firmographics, jobs and news

Organization enrichment, job postings and news search, one credit each. Structured facts the model should not be inferring from prose: headcount, stack, what they are hiring for, what got announced.

$0.05883 credits
↓ structured facts
3

Attio MCP · write the brief onto the record

Because Attio lets you define your own objects, the brief lands in fields you designed rather than a notes blob. The MCP surface reflects your schema, so the model writes to "Trigger event" because that field exists.

$0.00included
Why Apollo and Exa together

They fail in opposite directions. Exa is excellent at "what happened recently" and will happily invent structure that is not there. Apollo is excellent at structured facts and knows nothing about last Tuesday. Asking the model to use Apollo for anything countable and Exa for anything narrative removes most of the hallucination surface.

What 100 accounts cost

Exa's half of the run fits inside its free monthly credit, which is the part most people do not believe until they check.

StepProviderCalls per accountRatePer 100 accounts
Web searchExa3 searches$0.007$2.10
Page contentsExa5 pages$0.001$0.50
Summaries of those pagesExa5 pages$0.001$0.50
Org enrichmentApollo1 credit$0.0196$1.96
Job postingsApollo1 credit$0.0196$1.96
News searchApollo1 credit$0.0196$1.96
CRM writeAttio1 upsertincluded$0.00
Total$8.98

$0.0898 an account. Exa hands out $10 of free credits every month, which covers the searches and page reads for roughly 320 accounts before Exa charges anything, and the Apollo credits are the only other line. Against twenty minutes of a human's time per account, the comparison is not close enough to need a spreadsheet.

The cost that is not on this table

Your AI client's own token usage, which is the largest line in this stack and the one nobody models. A thorough brief runs a lot of context through the model. The API costs above are rounding errors next to it, so budget for the assistant, not for the data.

Four failure modes, and what to do about them

Three of these four cost money before anybody notices, and the fourth costs credibility. They are listed in the order teams hit them rather than in order of severity, because the retry loop usually arrives in week one and the question of whether this belongs in production arrives only once it is working.

01

The agent retries and empties a balance

The single most common way to lose money on MCP. A failed enrichment retried two hundred times overnight is not a hypothetical, it is the first week of most teams' experience. Cap the workspace credit budget before you connect anything, and use a separate key from your production pipeline.

02

Confident prose with nothing behind it

Exa returns page content and the model turns it into a narrative. Left alone it will write a plausible brief about a funding round that did not happen. Require a source URL for every factual claim in the brief, as a field, and spot-check ten accounts out of every hundred.

03

Model training, quietly enabled

Apollo prohibits model training on data pulled through its MCP and asks you to confirm training is off in your client before connecting. This is an obligation on you with no technical enforcement behind it. Check the setting, and check it again after anyone changes clients.

04

Treating it as production infrastructure

An MCP call happens because somebody asked. That is the wrong shape for a nightly job over 40,000 accounts with retries and a warehouse write. This stack is for the top 200 accounts a human will actually read. Anything larger belongs on the REST APIs.

The instruction that makes it work

Most of the quality here comes from telling the model which tool to trust for which kind of claim.

account-research.prompt plain text
For each domain in the list:

1. Use apollo to get headcount, industry, tech stack,
   open roles and recent news. Anything countable
   comes from apollo, never from a web page.

2. Use exa to find what changed in the last 90 days.
   Every claim needs a source URL. If you cannot
   find a source, write "no recent signal found".

3. Write into attio:
   - trigger_event   (one sentence, with source_url)
   - why_now         (two sentences, our product)
   - opener          (under 40 words, no adjectives)

Do not enrich individual people. Do not send anything.
Stop after 20 accounts and show me the first three.

The last two lines matter more than the rest. Without an explicit stop the model will work the whole list before you have seen whether the first three are any good, and without the enrichment ban it will start spending credits on people nobody asked for.

Build it with an agent

This stack ships as a skill file: the API surface of every tool in the chain, the build order, the limits that break it and how to check it worked. Point an agent at it and it has what it needs without reading 3 sets of vendor docs first.

agent-account-research/SKILL.md agent skill
---
name: agent-account-research
description: Connect the Exa and Apollo MCP servers to an AI client and
  have it write a sourced account brief onto the CRM record in...
---

# Agent-driven account research

## What you are building
## Prerequisites                    → 5 rows
## The tools, and how to call them  → Exa, Apollo, Attio
## Build it                         → 5 steps
## Gotchas                          → 5
## How to verify it works           → 5 checks
## What this costs to run
markdown Verified 2026-10-19
Drop it into Claude Code

mkdir -p .claude/skills/agent-account-research curl -o .claude/skills/agent-account-research/SKILL.md https://frontal.so/gtm-apis/skills/agent-research.md

For Codex, Cursor, or anything else that reads a file or fetches a URL, hand it https://frontal.so/gtm-apis/skills/agent-research.md directly. It is plain markdown with YAML frontmatter and no tool-specific syntax, so nothing in it depends on which agent is reading it.

Fifteen minutes to set up. A week to trust.

The setup is genuinely easy. Getting output a rep will use, with sources attached and a credit ceiling in front of it, is the part worth doing properly. Frontal builds the guardrails and the review loop.

See which APIs ship one

Worked with 300+ companies. A senior operator runs your account.

The other three stacks on this site are costed the same way, so the numbers are comparable: waterfall email enrichment at $0.0364 a unit, hiring signal to outbound at $0.13 a unit and inbound speed to lead at $0.0587 a lead. Every provider in them is in the directory.

Questions we get

What to check before you trust the output.

How do I stop the agent inventing facts?

Split the work by tool and require sources. Anything countable comes from Apollo, anything narrative comes from Exa, and every factual claim in the brief carries a source URL as its own field. Then spot-check ten accounts in every hundred. Without the source field the model will write a plausible brief about a funding round that did not happen.

What does this actually cost once you include the model?

The API calls are $0.09 an account and your AI client's token usage is the larger line by a distance. A thorough brief runs a lot of context. Budget for the assistant rather than for the data, because the $8.98 per hundred accounts on this page is a rounding error against it.

Can this run on a schedule?

Not well. An MCP call happens because somebody asked, which is the wrong shape for a nightly job with retries and a warehouse write. Use this for the top 200 accounts a human will actually read. If you want it scheduled, rebuild the same logic on the REST APIs, where retries and budgets are yours to control.

Does it work without Attio?

Yes. HubSpot publishes an official MCP server too and includes CRM API access on its free tier. Attio's advantage here is that you define the objects, so the brief lands in a field named for the trigger event because that field exists. In HubSpot the same output usually goes into a custom property or a note.

How many accounts before this stops being worth it?

It scales fine on cost and stops scaling on review. The output is only useful if a human reads it, and nobody reads 2,000 account briefs. Somewhere around 200 to 300 accounts a cycle the bottleneck moves from the tooling to attention, which is the point to go back to structured signal and a filter.

Published by

Frontal

Frontal is the go-to-market partner for B2B tech companies past product-market fit. It publishes this directory. Every price, tier requirement and rate limit on this page was read from the vendor's own pricing page, developer documentation or knowledge base on the date below. Nothing on it is restated from a press release or a third-party listing.

Where a vendor publishes no public figure, this page says so rather than estimating. How we checked.