Build a Competitor Radar That Emails You Only What Changed
A free guide by Kamran Imam — Instagram · TikTok · YouTube
Most founders find out a competitor shipped something from a customer who already left. This guide walks you through a simple agent that watches your competitors’ pricing, changelog, and launches on a schedule and reports back only what actually moved — no scraping, no maintenance headaches. Built and tested by someone with an engineering and CS background, with the part everyone gets wrong called out explicitly.
What you’re building
A scheduled agent that reads a fixed list of competitor URLs — pricing page, changelog, blog, careers, homepage — summarizes each, compares the summary against what it saw last run, and emails you only the differences, ranked by how much each change threatens you.
No raw HTML parsing. No brittle selectors. Just structured summaries diffed against each other, and a short email that gets to the point.
Why not just scrape their site
Scrapers break the day a competitor redesigns their HTML. Selectors stop matching, the job silently returns nothing, and you stop trusting it within a month.
Instead, let Claude read the rendered page with web search turned on and produce a structured summary. You diff the summaries, not the raw HTML — so a full redesign doesn’t break you, and a subtle pricing change that wouldn’t change the HTML at all still gets caught.
Step 1 — List your targets
Pick 3–5 competitors. For each, collect the 5 URLs that actually signal change:
- Pricing page — tier names, prices, seat limits, annual discount
- Changelog / release notes — what shipped and when
- Blog — what they’re positioning, what problems they’re publicly claiming to solve
- Careers — who they’re hiring tells you their roadmap; a sudden cluster of ML roles is a signal
- Homepage — headline messaging shifts are usually the last thing to change before a major launch
That’s 15–25 URLs total. Paste them into a plain text list — that’s all you need for the next step.
Step 2 — The watch prompt
Give Claude this prompt with your URL list pasted in. Run it with web search enabled so it reads the live pages, not cached versions.
You are my competitor radar. For each URL below, read the page and write a
2–3 sentence factual summary of its current state (pricing tiers and prices,
latest changelog entries, newest blog posts, open roles, headline messaging).
Output strict JSON: an array of {url, summary, signals[]}.
Do not editorialize.
URLs:
[paste your list]
The output is a clean JSON array — one object per URL, a short summary, and a list of signals (e.g. ["new $49 tier", "SOC 2 badge added"]). Save this as radar_state.json. That’s your baseline.
Step 3 — Diff against last week (the important part)
This is where most setups go wrong. People run the watch prompt, read the summaries manually, and miss the change buried in paragraph three. The diff is what turns a 4,000-word page dump into a three-line Monday email.
On each subsequent run, load last week’s radar_state.json alongside the new output and send Claude this prompt:
Here is last week's radar JSON and this week's radar JSON.
Return ONLY what changed: new pricing, new changelog entries, new posts,
new roles, changed messaging.
For each change, add a 'threat' rating of low / medium / high based on
how directly it competes with us.
Ignore everything that stayed the same.
Then save this week's JSON as the new state file.
Last week:
[paste radar_state.json]
This week:
[paste new JSON output]
The diff strips out the noise. You’re not reading 25 summaries — you’re reading only what moved since the last run, with a threat rating already attached.
Step 4 — Put it on a schedule
Run it weekly. Monday morning is ideal — you get the update before the week starts rather than mid-sprint.
- State file persistence: the key is that
radar_state.jsonsurvives between runs. Store it somewhere it won’t get wiped — a Drive folder, a repo, or a simple file in cloud storage. Each run reads last week’s file and writes this week’s over it. - Delivery: have the agent email or DM you the diff output directly. A weekly Slack DM or plain-text email with the three-line summary is all you need.
- When to run more frequently: if a competitor is in a visible launch cycle (job postings spiking, blog frequency up, homepage messaging shifted), switch to daily for that competitor until things stabilize.
What good output looks like
One short email, once a week. For example:
- HIGH: Competitor A added a $49 starter tier — undercuts our entry plan by $10/month.
- MEDIUM: Competitor B shipped SSO. That removes one of our enterprise selling points.
- LOW: Competitor C posted two new sales roles. No product signal yet.
Ranked, skimmable, done in 30 seconds. If nothing changed that week, the email says “no significant changes this week” and you move on. The value is in the weeks where something did move — and you knew before your customers told you.
“You don’t need to watch your competitors. You need to know the second they move.”
Found this useful? Follow along for new guides.
New breakdowns drop every week across TikTok, Instagram, and YouTube.
← All free guides