Manycrawl

Templates / Enrichment

Site Agent

Site Agent answers a question about each row by browsing that company's own website — owner name, services, pricing, a contact detail — without you writing selectors.

Enrichment Extension or desktop
Same site onlyit stays on the domain in the row

What it isEnrichment

An enrichment column. It reads a column you already have and writes a new one beside it.

InputWhat you give it

Input

A column that already holds the value this reads.

OutputWhat comes back

Output example illustrative
WebsiteQuestion askedAnswerEvidence page
linear.appDo they offer a free plan?Yes — free for up to 250 issueslinear.app/pricing
basecamp.comDo they offer a free plan?No — 30-day trial onlybasecamp.com/pricing
quiet-corp.comDo they offer a free plan?Could not determine—

Illustrative. Unlike a recipe, the agent looks at each page rather than replaying a pattern — which is what makes it cope with a list of mixed sites.

How it worksFive things you decide

  1. Ask one clear questionShort, specific questions work best: who owns this business, what does the cheapest plan cost. Type / to pull in another column when the question needs context the page itself won’t give up. Open-ended prompts give inconsistent columns.
  2. Add fields for structured outputOptional — skip it for one free-form answer. Each field becomes its own column: name it, pick its type, and use Output description to tell the AI what belongs there.
  3. Select your preferred LLM modelUnder LLM model settings. The list is whatever you've connected — an OpenAI, Anthropic or Google AI key from Settings, or Claude Code (local agent) with no key needed. Try a stronger one if answers come back wrong or truncated.
  4. Turn on vision only if neededUnder Advanced settings. Screenshots help on visual layouts but add tokens on every step. Text-only is much cheaper and usually enough.
  5. Give it roomUnder Advanced settings. Max steps is how many observe-and-act turns it may take before it must answer. Deeper sites need more; most answers land well inside the default.

FAQQuestions people actually ask

When should I use Scrape instead?

If the answer is on one page you can name, Scrape is cheaper and deterministic. Use the agent when finding the page is the hard part.

What goes in Output description?

It's the instruction the AI gets for that one field — you never see it again, the model does. Say the prompt is "Find basic company information from this website." One field: Column name "Founder Name", Output description "The person who founded or owns the company — check the About page or footer bio." Another: Column name "Founded Year" (type Number), Output description "The year the company was founded, as a 4-digit number — if not stated, use the copyright year." Leave it blank and the AI just gets "extract value", which works but drifts in format from row to row.

Multiple fields, or separate agent columns?

Group fields that are likely to be found together, not just ones that are topically related. One run gets a fixed number of page-reads no matter how many fields you ask for, so facts that live on the same page — founder name, founded year, HQ — are nearly free to add on. Facts that need different research, like a funding round versus a competitor's name, share that same fixed budget, so the agent may settle for N/A on the harder one instead of chasing it properly. Split those into separate columns instead.

Does it use any of my logins?

No. Every page it reads is a stateless, signed-out fetch — it never carries your cookies or a real session. Your Reddit / Apollo / Facebook / LinkedIn connections from Settings are separate accounts scoped to those specific collectors — Site Agent never touches them.

What does "Auto-run on new rows" do?

Runs this column by itself whenever new rows arrive — no clicking Run. It only picks up new arrivals; rows already in the table when you turn it on are left alone. It only fires while the app is open — closing it pauses everything until you reopen.

What does "Add run condition" do?

Skips rows where a condition on another column isn't met — e.g. only run if Email is empty. Skipped rows cost no actions, on both manual and auto runs.