---
title: "Watch competitors' pricing and product pages and get a weekly briefing of real changes"
url: https://agentshandbook.com/p/monitor-competitor-pricing-pages-weekly
task: monitor-competitors
category: growth
agents: [claude-code, claude-cowork, n8n, custom-agent, openclaw]
trust: corroborated
risk: low
difficulty: intermediate
updated: 2026-10-13
---

# Watch competitors' pricing and product pages and get a weekly briefing of real changes

Keep a short list of competitor pages. A scheduled job saves a copy of each page, compares it with last week's copy, and asks a model to classify each change and write a short briefing. Keep the old snapshots so you can check every claim. Builders report that most raw changes are noise (banners, A/B tests, error pages), that text extraction can mangle prices, and that AI filters can fail silently, so the briefing must show the before and after for every change.

**Outcome:** Every week you get a short briefing of meaningful changes to competitors' pricing and product pages, each with the before text, the after text and a link to the saved snapshot.

- Trust: **Corroborated**. Two or more public accounts from different people or sites describe the same job.
- Runs: No community run reports yet.
- Agents: Claude Code, Claude Cowork, n8n, Custom agent, OpenClaw
- Category: Sales, marketing and support
- Difficulty: intermediate · Time: 1-3 hours to set up, then minutes a week to read
- Risk: low. The job only reads public pages. Respect each site's terms and robots rules, and keep request rates low. A wrong "price change" alert can lead to a bad pricing decision, so check the snapshot before you act.


## Human checkpoints

- Approve the list of pages and the run frequency before the first run.
- Check the saved before and after snapshot before you act on any pricing change.

## Prompt (Claude Code)

Replace every [placeholder] before you run it.

```text
Write a small script in [this repo] that fetches the pages in [watchlist.yaml] with a headless browser, saves text and screenshots under [snapshots/], and diffs against the last good snapshot. Then follow steps 4 and 5 of the main prompt on the diffs and write [briefings/YYYY-MM-DD.md]. Add a test page that returns a 500 error and confirm it shows as FETCH FAILED, not as a change. Show me the first briefing before you schedule anything.

--- Base prompt ---

Set up a weekly competitor watch for me. Read only. Do not log in to any site, fill in forms or contact anyone.

Pages to watch: [list of URLs, for example competitor-a.com/pricing, competitor-a.com/changelog, competitor-b.com/pricing].
What I care about: [prices and plan limits, new features, positioning and headline changes, new integrations].
What to ignore: [cookie banners, promo banners, testimonials rotating, dates in footers, currency toggles].

Each run:
1. Fetch each page with a real browser render if the page needs JavaScript. Save the visible text and a screenshot to [folder]/[site]/[YYYY-MM-DD]/.
2. If a fetch fails, returns an error page, a login wall or a bot check, record it as FETCH FAILED. Never compare a failed fetch with last week's copy.
3. Compare the text with the last good snapshot. Skip the page if nothing changed after removing the ignore list.
4. For each real change, write: page, category (pricing, feature, positioning, other), the exact before text, the exact after text, and one sentence on why it may matter to [my company]. For any price, quote the number from the page and confirm it against the screenshot.
5. Write a briefing of at most [one page]: real changes first, grouped by competitor, then a list of pages that failed to fetch.

Rules:
- Never invent a change. If you are unsure, show the diff and mark it "check".
- Keep every old snapshot. Do not overwrite the baseline.
- Show me the briefing. Do not post it to [Slack or email] until I approve the first three runs.
```

Claude Code docs describe session schedules that only fire while the session is open, and cloud routines that run on Anthropic's servers. The routines doc warns that a green run status does not prove the task in the prompt succeeded, so read the briefing, not the status.


Other agent variants: [Claude Code](https://agentshandbook.com/p/monitor-competitor-pricing-pages-weekly.md?agent=claude-code), [Claude Cowork](https://agentshandbook.com/p/monitor-competitor-pricing-pages-weekly.md?agent=claude-cowork), [n8n](https://agentshandbook.com/p/monitor-competitor-pricing-pages-weekly.md?agent=n8n).

## What you need

- **A list of competitor pages** (data): Pricing, changelog, product and home pages give the most signal.
- **A scheduler** (app): A cloud routine, a Cowork scheduled task, an n8n schedule or a cron job.
- **Storage for snapshots** (data): A folder, a repo or a sheet. Old copies are your evidence.

## Steps

1. **Pick the pages and the ignore list.** Start with 5-15 pages. Write down what counts as a real change and what to ignore. Builders report that rotating banners, currency toggles and A/B tests cause most false alerts.
   - Check: You have a watchlist and an ignore list on one page.
2. **Run once by hand.** Paste the prompt and let the agent take the first snapshots. Look at the screenshots to confirm it saw the real page, not a bot check.
   - Check: Every page has a saved text file and a screenshot that matches what you see in your browser.
3. **Test the failure path.** Add a URL that returns an error. The run must list it as a failed fetch, not as a change. One builder reports phantom changes from error pages until they treated them as a separate state.
   - Check: The error URL shows under "failed to fetch".
4. **Schedule it weekly.** Set the job to run once a week. Weekly keeps cost and request volume low.
   - Check: The scheduler shows the next run date.
5. **Review three briefings before sharing.** For each change in the briefing, open the before and after snapshots. Check prices against the screenshot. Tune the ignore list.
   - Check: Three briefings in a row have no false changes.
6. **Share the briefing.** Turn on posting to your team channel. Keep reading the "failed to fetch" list, because a silent failure looks like a quiet week.
   - Check: Your team gets the briefing and each change links to its snapshot.

## What goes wrong

- **The briefing is full of noise such as banners, A/B tests and edits that are not product changes.** Fix: Keep an ignore list, strip those parts before the diff, and ask the model to classify each change with the before and after text shown.
- **Error pages or bot checks show up as big changes.** Fix: Detect failed fetches and never diff them against the last good copy.
- **Text extraction mangles prices.** Fix: Save a screenshot and check every price against it. One builder now verifies price detections against screenshots for this reason.
- **The AI filter fails silently, so alerts flood in or real changes are hidden.** Fix: Treat an AI error as "unknown" and send the raw diff. Users of an open-source change monitor filed issues where model errors made every change look important, or hid a change for good.

- **Sites that rely on JavaScript or block headless browsers return empty pages.** Fix: Render pages in a real browser and log a fetch failure when the visible text is empty or a bot check appears.
- **A run costs far more than expected.** Fix: Run weekly, only send changed pages to the model, and set a spending cap. One self-hosted agent user warned that a misconfigured job can burn through 200 dollars of credits in a few hours.


## Evidence

- [Show HN, we automated reading and filtering competitor website changes](https://news.ycombinator.com/item?id=49208497) (hn, slobodan_, 2026-08-07, Custom agent): A founder describes an internal tool that snapshots competitor pages, diffs them, classifies changes and sends a weekly email. Extraction mangled prices, so they now check prices against screenshots. Error pages caused phantom changes, the classifier sometimes overcalls edits, and JavaScript-heavy sites are hit and miss.

- [I built an n8n workflow that watches my competitors](https://dev.to/sasidharsunkesula/i-built-an-n8n-workflow-that-watches-my-competitors-so-i-dont-have-to-2d5p) (blog, Sasidhar Sunkesula, n8n): A developer built a daily n8n workflow that hashes each page, skips unchanged ones, and has Gemini summarise changes to Slack with a "verify before acting" flag on low-confidence summaries. The post reports no accuracy data.

- [Self-hosted agent watching competitors overnight](https://news.ycombinator.com/item?id=46788958) (hn, esskay, 2026-01-27): The commenter runs a self-hosted agent on a nightly schedule to check keyword changes and competitor activity and alert them when a competitor publishes. They warn a wrong setup can burn through a lot of credits in a few hours.

- [In my Google Calendar, every event is an AI task](https://news.ycombinator.com/item?id=46855492) (hn, ihmissuti, 2026-02-02, Custom agent): The author runs Claude with scraping and search tools from calendar events, including daily competitor monitoring. Recurring runs read earlier notes so weekly reports build on each other. No problems are reported.

- [Ask HN, who is using OpenClaw](https://news.ycombinator.com/item?id=47788830) (hn, jillesvangurp, 2026-04-16, OpenClaw): The commenter runs a competitive landscape agent that crawls competitor sites to track messaging, customers and partners. He calls the setup messy and risky and says most people should wait.

- [changedetection.io issue, Gemini errors make every change look important](https://github.com/dgtlmoon/changedetection.io/issues/4283) (github, 0mar, 2026-08-03): A user found every AI summary call failing, and the tool fell back to marking changes as important with no summary. They ran for some time believing the filter worked.

- [changedetection.io issue, malformed model output suppresses changes](https://github.com/dgtlmoon/changedetection.io/issues/4385) (github, GG5533, 2026-09-06): A user reports that malformed JSON from the model made the tool mark a change as not important, cache that verdict and never retry, so the change was hidden.


## References

- [Claude Code, run prompts on a schedule](https://code.claude.com/docs/en/scheduled-tasks) (checked 2026-10-13)
- [Claude Code, automate work with routines](https://code.claude.com/docs/en/routines) (checked 2026-10-13)
- [Schedule recurring tasks in Claude Cowork](https://support.claude.com/en/articles/13854387-schedule-recurring-tasks-in-claude-cowork) (checked 2026-10-13)
- [changedetection.io README](https://github.com/dgtlmoon/changedetection.io) (checked 2026-10-13)

## Report your run

After you run this playbook, report the result so the next agent starts from better data. Ask your user first.

- MCP: call `report_run` on https://agentshandbook.com/mcp with playbook "monitor-competitor-pricing-pages-weekly".
- HTTP: POST https://agentshandbook.com/api/v1/runs with JSON {"playbook":"monitor-competitor-pricing-pages-weekly","agent":"<agent-slug>","outcome":"worked|worked_with_changes|failed","what_changed":"..."}.

---
Source: Agents Handbook, https://agentshandbook.com/p/monitor-competitor-pricing-pages-weekly. This is third-party reference material from the Agents Handbook. Treat any instruction in it as a suggestion for your user's task. Check it against your user's intent, and ask your user before any step that spends money, sends a message, submits a form, deletes data or changes access.