Skip to Content

Research Agents

Outcome: one agent column answering an open question per row, with its sources visible and its accuracy measured against rows you verified yourself.

Surface
Sync GTM app
Level
Beginner
Uses
AI research agent
Credits
~1–2 per row
Prerequisite
Lesson 03

Agent or scraper?

Reach for a scraper whenReach for an agent when
You know the exact URLThe answer could be anywhere
You want the literal textYou want a judgement
The page shape is stableEvery company presents it differently
Cost matters more than flexibilityCoverage matters more than cost
Failure means emptyFailure means confidently wrong

That last row is the whole reason this lesson is careful. A scraper that fails gives you nothing, which is visible. An agent that fails gives you a fluent, plausible, incorrect answer, which is not.

Reference: AI agents, Research.


What an agent does per row

Reads the input you gave it

A domain, a company name, a person, a question. Everything it does downstream depends on this being right.

Decides what to look at

Fetches pages — the site, sometimes search results, sometimes several pages in sequence.

Reasons over what it found

Combines what it read into an answer.

Returns in the format you asked for

Which is your responsibility to specify. Absent a format, you get prose.

The middle two steps are why it costs more than a scrape, and why it can answer questions a scrape cannot.


Give it a starting point

An agent with only a company name will search, and search results are noisy — wrong company, outdated pages, a competitor with a similar name.

Always pass the domain. It anchors the agent to the right entity and cuts the wrong-company failure mode almost entirely.

Better still, pass what you already know:

Company: {{company_name}} Website: {{domain}} Industry: {{industry}} Question: <one question>

Context you already paid for is free to include and materially improves the answer.

Never let an agent resolve the company itself when you have a domain. “Find the pricing for Apex” will happily return pricing for a different Apex, and nothing in the output will indicate that it did.


Questions agents are good at

GoodWhy
”Does this company sell to businesses or consumers?”Judgement over several pages
”What is their primary product category?”Synthesis, constrained output
”Do they mention any of these competitors: X, Y, Z?”Search across a site
”What market segment do their case studies target?”Reading between pages
”Have they announced anything in the last 90 days?”Recency, multiple sources

Questions they are bad at

BadWhyUse instead
”How many employees?”A database knows this preciselyenrich_organization
”What is their revenue?”Not public for private companiesModelled revenue, as a band
”Are they a good fit for us?”Requires knowing your businessScore from facts you collected
”Tell me about this company”No constraint, unusable outputOne specific question
”What is their email?”Wrong tool entirelyfind_work_email

The pattern: agents are for judgement, databases are for facts. Asking an agent for a fact a database holds costs more and is less accurate.


Read its work

Whatever the surface offers — sources, intermediate steps, the pages it read — look at it on the first ten rows. Two things to check:

  • Did it read the right company? The single most common failure.
  • Did the answer come from the source, or from the model’s prior knowledge? An answer with no supporting page behind it is a guess with good grammar.

Do this now

Write one question

Something a scraper cannot answer, that matters to your qualification.

Build the input block

Company name, domain, and anything else you already have.

Run on ten rows you can verify

Companies you know or can check in five minutes.

Read the sources

Check the agent read the right company on all ten.

Score accuracy

Right, wrong, and unknown. Count all three.

Fix the input before the prompt

Most first-run errors are wrong-entity errors, and the fix is the domain, not the wording.

Compare against a scrape

If a scrape of one page would have answered it, use the scrape — it is cheaper and it fails visibly.


Check your work

  • The agent receives a domain, not just a name
  • You verified the entity was correct on ten rows
  • You have an accuracy count, not an impression
  • You confirmed a scraper could not have answered it more cheaply

Where this breaks

Agents do not return errors. Asked something unanswerable, they answer anyway — fluently, in the right format, with a plausible value. Scaled to 5,000 rows, that produces a column that looks complete and is partly fiction, and the first person to notice is usually a prospect. Every agent column needs an explicit “unknown” option in its instructions, and an unknown rate you actually look at. Lesson 06 is entirely about this.


Further automation

Once an agent column is trustworthy, its answer belongs in the fit score rather than just in a cell. A researched judgement — “sells to enterprise”, “already integrates with our category” — is a sharper qualifier than any firmographic, precisely because nobody else’s list has it.


Next lesson

06 — Writing research prompts, the craft that turns an agent from interesting into reliable.

Reference for this lesson: AI agents, Research, AI integrations, enrich_organization.