Pricing Researcher

Scrape competitor pricing pages, decode tier structure and gating, and recommend a positioning move backed by real comparison data.

Scrape competitor pricing pages, decode tier structure and gating, and recommend a positioning move backed by real comparison data. A pricing audit from a consultancy costs $25k and ships once. This runs every quarter and refuses to recommend a move without real comparable data.

This is the whole blueprint, nothing held back: the model, the tools, the exact prompt, the source on disk, and the setup. Everything you need to run Pricing Researcher yourself is on this page, and it deploys in an afternoon.

What it does

Pricing Researcher handles the work end to end:

  • Scrape pricing pages across competitors, handling annual/monthly toggles
  • Decode tier structure, gating dimension, and hidden enterprise pricing
  • Build normalized comparison matrix across all visible competitors
  • Recommend one positioning move backed by at least 3 comparable competitors

The anatomy

An agent is a composition, not a prompt: a model, the tools it is allowed to call, the integrations that give those tools reach, and the rules that keep it honest. Here is Pricing Researcher on one card.

Pricing Researcherblueprint
Model
claude-sonnet-4-6
Tools
scrape_pricing_pageanalyze_tiersbuild_comparisonrecommend_position
Integrations
Browser UseZod
Guardrails
always normalize prices to monthly billed annually for comparison.; identify the gating dimension (seats, usage, features, support) for each competitor

The instructions

Every run is governed by this prompt. It is short on purpose: enough to make Pricing Researcher reliable, not so much that it can misread itself. Copy it as a starting point for any agent you build.

Pricing Researcher
You are a pricing strategy analyst. You reverse-engineer competitor pricing and recommend defensible positioning. WORKFLOW: 1. Call scrape_pricing_page on each competitor URL. 2. Call analyze_tiers to decode tier names, prices, included features, and gating logic. 3. Call build_comparison to produce a normalized matrix across all competitors. 4. Call recommend_position to suggest one move (raise, lower, restructure, repackage) backed by the comparison. RULES: - Always normalize prices to monthly billed annually for comparison. - Identify the gating dimension (seats, usage, features, support) for each competitor. - Flag competitors who hide pricing as "enterprise-gated" — do not guess their numbers. - Refuse to recommend a positioning move backed by fewer than 3 comparable competitors.

The source, on disk

Three files carry the whole agent: the definition with its tools, the environment it expects, and the setup. Walk them.

pricing-researcher/pricing-researcher.ts1.4 KB
1import { agent, tool } from "@agent-sdk"
2import { z } from "zod"
3
4const scrapeInput = z.object({
5 url: z.string().url(),
6})
7
8const analyzeInput = z.object({
9 raw: z.string(),
10 competitor: z.string(),
11})
12
13export default agent({
14 model: "claude-sonnet-4-6",
15 permissionMode: "bypassPermissions",
16 maxTurns: 18,
17 systemPrompt: `...`, // see System Prompt section above
18 tools: {
19 scrape_pricing_page: tool({
20 description: "Scrape competitor pricing page (handles toggles)",
21 inputSchema: scrapeInput,
22 execute: async ({ url }) => {
23 // Browser Use → handles annual/monthly toggle
24 },
25 }),
26 analyze_tiers: tool({
27 description: "Decode tier names, prices, features, gating",
28 inputSchema: analyzeInput,
29 execute: async ({ raw, competitor }) => {
30 // returns { tiers, gatingDimension, hiddenEnterprise }
31 },
32 }),
33 build_comparison: tool({
34 description: "Normalize across competitors into one matrix",
35 inputSchema: z.object({ analyses: z.array(z.any()) }),
36 execute: async ({ analyses }) => {
37 // returns markdown matrix + JSON
38 },
39 }),
40 recommend_position: tool({
41 description: "Suggest a positioning move with justification",
42 inputSchema: z.object({ comparison: z.any(), userPricing: z.any() }),
43 execute: async ({ comparison, userPricing }) => {
44 // returns { move, rationale, expectedImpact }
45 },
46 }),
47 },
48})

The business case

If you run an agency, Pricing Researcher is also a product. It sells into b2b saas, pricing strategy consultants, product marketing, and the numbers work at very small scale.

$2,300

setup you can charge

$380/mo

monthly retainer

4

jobs off your plate

Ship it

The whole install is a handful of commands and the keys from the env file. Run the list, then point Pricing Researcher at real work.

Deploy checklist

0 of 4

That is the entire blueprint: one model, 4 tools, and a prompt. Built by hand it costs you an afternoon. Inside Ultron it costs you a sentence, because you can build this exact agent in the workforce and watch it run before you commit to anything.

Build Pricing Researcher in Ultron

1
Describe what you want

Start from this blueprint or your own words. Ultron reads the intent and picks the tools.

2
It builds the agent

The model, the tools, the prompt, the console. Assembled in front of you, nothing to wire.

3
Watch it run

Test it live in the chat, then put it to work. You review what it does, it does the rest.

Keep reading