Skip to main content
Think of the agent as a capable analyst who is new to your domain and can only read the public web. It cannot know your business context, guess which “Acme” you mean, or decide a format you did not state. Every ambiguity you leave in becomes a guess in the output.

Where each instruction goes

A run has three places for instructions. Putting the right thing in the right place is most of the work. Keep input short. Long run prompts push the agent’s budget into reading instructions instead of the web: runs with prompts over about 1,200 characters returned partial output roughly twice as often in a recent month. Move anything that applies to every run into skill.

Skill is a playbook, not a feature list

A skill that reads “expert in B2B data, accurate, thorough, cites sources” gives the agent nothing to do. A skill that says what to achieve, how to approach it, and in what order, does.
On one enrichment task, rewriting the skill from a description into a procedure (“read the vendor’s lifecycle page first, include every schema property on every row, check optional fields before stopping”) raised the share of filled cells from 68% to 99% with no other change.

Goals are checkable requirements, not caveats

The agent checks each goal against its output before finishing. A goal it cannot check is noise. Three to six goals. More than that and they start to contradict each other.

Anatomy of a good input

From vague to production-ready

The same task at three quality levels. Only the third reliably returns what was meant.
Which “AI”? Which Europe? How many? What fields? The agent picks for you.

Rules that hold across use cases

  • One entity, or one homogeneous set, per run. Twelve unrelated products in one prompt returned five rows covering two of them, with the run marked completed. Split by entity or by category.
  • Known rows go in input_data, never in the prompt. Pasting a list into input wastes budget and loses the per-row pre_existing tracking. See Enrichment.
  • Say what to do when a value is not public. Without an absence rule the agent fills cells with prose like “Not stated publicly” or, worse, a plausible guess. “Return null” is the rule; a nullable field in the schema is the mechanism.
  • Give a row cap and a stop rule. Truncation is silent: a run that found 5 of 40 completes normally. Ask for a number and count what comes back.
  • Avoid “all”, “every” and “comprehensive” on the open web. They set an unreachable bar and the agent stops when its budget runs out, not when the task is done. Scope the ask, or run it per region or category. On a single named site at x-high, exhaustive is fine.
  • Name sources in the prompt. “Search funding news, investor portfolios and company sites” moved one user’s row-target adherence from 47% under target to on target.
  • Pass prior results as an exclusion list. Put them in input_data and say “exclude these domains”. Do not paste 300 names into the prompt.

The intern test

Before running, read the task as if handing it to a sharp intern who has never seen your domain:
  • Would they know where to look first?
  • Would they know when to stop?
  • Would they know what to write when a value is missing?
  • Would they know the exact output format?
If any answer is no, the agent will guess there too.

Next Steps

Output Schema

The schema is the contract

Controlling Sources

Allow, block, prioritize, avoid

Common Mistakes

Wrong and right, side by side