Model chooser  /  Research a market, company or topic  /  Recurring

For research that runs every week, use Claude Opus 5 with web search.

Competitor monitoring and account research run unattended, so the model has to decide what to search, read the results and stop when it has enough. Opus 5 does that well through the API's built-in web search tool, at half Fable's price.

Why Claude Opus 5

The reasons it wins for this job.

  • Anthropic's current web search and web fetch tools filter results with code before they reach the model, which cuts noise and tokens on long research runs. They work on Opus 5.
  • It scores 51 on the Artificial Analysis Intelligence Index, two points behind the leaders, at half the per-token price of Fable 5.1.
  • Structured outputs return findings as fields (claim, source URL, date) that you can store, diff against last week and alert on.
  • Server-side refusal fallbacks let a scheduled job finish instead of stopping when a request is declined, which matters when nobody is watching.

How to use it

4 steps to a first result.

  1. 1Write the brief as a checklistList exactly what to look for per company: pricing changes, launches, hires, funding. Vague briefs produce essays.
  2. 2Limit the searchSet max_uses on the search tool and, where you can, allowed_domains. It keeps cost per run predictable.
  3. 3Store the output, diff itSave each run as JSON. The useful signal is what changed since last week, not the full report.
  4. 4Schedule itRun from a cron job or a scheduled Managed Agent, and post only the changes to Slack.

Claude API, TypeScript

Start from this.

Edit the parts in capitals, then run it.

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const res = await client.beta.messages.create({
  model: "claude-opus-5",
  max_tokens: 16000,
  betas: ["server-side-fallback-2026-07-01"],
  fallbacks: "default",
  tools: [{ type: "web_search_20260209", name: "web_search", max_uses: 8 }],
  messages: [{
    role: "user",
    content: `Check COMPETITOR.com for changes in the last 7 days: pricing, product launches, leadership hires, funding.
Return a list of findings. Each finding: what changed, the source URL, the date on the source.
If nothing changed, say so. Do not report anything older than 7 days.`,
  }],
});

if (res.stop_reason === "refusal") throw new Error("declined");
for (const block of res.content) if (block.type === "text") console.log(block.text);
Nothing is sent anywhere. It copies to your clipboard.

Alternatives that also work

If Claude Opus 5 is not an option.

Gemini 3.8 FlashOfficial page →

Google · closed · cost: low

Pick it when you run research across hundreds of accounts and cost per account decides it. It is in the low cost tier and built for multi-step agent work.

OpenAI · closed · cost: medium

Pick it when your pipeline is on OpenAI. Sol is its flagship for complex professional work, one tier below Astra.

Claude Sonnet 5Official page →

Anthropic · closed · cost: medium

Pick it when each account needs only a quick lookup rather than a judgment call.

Watch out for

Doing this just once? For a one-off research question, ask GPT-6 Astra in ChatGPT. OpenAI built Astra for hard end-to-end work including research, it ties for the top score on the Artificial Analysis Intelligence Index, and ChatGPT gives it web search and file uploads without any setup.

Sources

Checked . Models change monthly; we re-check this page when they do.

Picking the model is the easy part.

Wiring it into a workflow that runs every week, with evals, fallbacks and a cost you can predict, is the work. Fifteen minutes, no deck.

Book fifteen minutes →