Skip to content

active agent

A team of research agents that files one report

A team of 4. 3 research AI visibility, search and social signals in parallel. The last one turns what they find into a single business report.

Status
Live in research mode
Runs for
Our own audits, and client research before any build

The lesson

Only pass or fail counts as evidence. Unknown is not a result.

What it does

Point the team at a business. 3 researchers go out at once, each with one job, while a 4th agent waits on all of them.

AI visibility. Whether Claude, ChatGPT and Gemini name you when somebody asks them a question you should be the answer to. It asks all 3, records who gets cited instead of you, then checks whether your site is even structured so an AI answer can read it.

Search. A full crawl of the site, a technical audit including Core Web Vitals, on-page issues and keyword research. What you rank for now, what you clearly want to rank for, the gap in between.

Social signals. What is being said about your market, where, how recently. It reads Reddit, Hacker News, GitHub, Bluesky, Perplexity and Polymarket. The last of those is there because odds backed by money are a different quality of signal to opinions backed by nothing.

None of the 3 writes the report. They return findings. The 4th agent, the one that started them, turns those into a single curated business report: what is true about you today, what to do about it, in the order worth doing it. Every recommendation is linked to the finding it came from, so you can argue with a specific line instead of taking the document on trust.

Why it is a team and not one agent

A single agent asked to do all 3 jobs produces something that reads well and cannot be checked. It blends the AI visibility work into the keyword work, and when a client asks where a claim came from, the honest answer is somewhere in the transcript.

A team means each agent has one job, one output shape and its own failure. If the social pass finds nothing usable, that shows up as a gap in the report rather than as a paragraph of filler. They also work at the same time, so 3 jobs cost roughly the wall time of the slowest one.

Only pass or fail counts

Every action in the plan carries a verification result. The rule is that only a pass or a fail counts as evidence. Inconclusive, unknown or timed out never get promoted to a pass, no matter how many times the check runs.

This sounds obvious and it was the single biggest change we made. The first version treated a check it could not complete as roughly fine, because that kept the pipeline moving. What it actually did was launder uncertainty into confidence, one row at a time.

There is a limit on top of it. If an action gets reissued for verification more than 3 times without a clean result, the orchestrator parks it and flags it for a human. It does not retry forever and it does not quietly pass.

Self-healing beats fire-once

The first design used a webhook. A producer finishes, it calls back, the orchestrator moves on. That works until the callback is missed, and then the run sits there looking busy.

It now runs a sweep every 6 hours that reconciles what should exist against what does. Anything missing gets reissued. A dropped message costs a few hours instead of a silent dead run, and nothing depends on a single network call arriving.

What it does not do yet

Report assembly is the part that is still moving. The document template is built and the tests around it pass, but the upstream producers do not yet return the report slice the orchestrator expects.

So it records the gap by name and refuses to send. No client receives a report with a hole in it labelled as complete. That is the same rule as the verification one, applied to delivery: a missing thing is missing, not fine.

That is also why the status on this page says research mode rather than live. The research runs every week. The client-facing document is finished by hand at the end, and it will keep saying so here until it is not true.

Updated

All agents

Got a job that looks like this?

Send us the shape of it. We'll tell you whether it needs an agent or a script.