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.
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.
- Difficulty
- Intermediate
- Time
- 1-3 hours to set up, then minutes a week to read
- Sources
- 7 · 7 independent
- Updated
- 2026-10-13
The prompt
Fill the blanks here, or leave them for your agent to ask. Pick the tab for your agent. The hand-off button gives any agent this page as markdown.
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.
Human checkpoints: the agent stops and asks you
- 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.
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.
What you need
- A list of competitor pagesdata
Pricing, changelog, product and home pages give the most signal.
- A schedulerapp
A cloud routine, a Cowork scheduled task, an n8n schedule or a cron job.
- Storage for snapshotsdata
A folder, a repo or a sheet. Old copies are your evidence.
Steps
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.
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.
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".
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.
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.
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
Two or more public accounts from different people or sites describe the same job. We summarise each source in our own words. Open the original before you rely on it.
- Hacker News2026-08-07· Custom agentShow HN, we automated reading and filtering competitor website changes
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.
slobodan_ · news.ycombinator.com - Blog· n8nI built an n8n workflow that watches my competitors
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.
Sasidhar Sunkesula · dev.to - Hacker News2026-01-27Self-hosted agent watching competitors overnight
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.
esskay · news.ycombinator.com - Hacker News2026-02-02· Custom agentIn my Google Calendar, every event is an AI task
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.
ihmissuti · news.ycombinator.com - Hacker News2026-04-16· OpenClawAsk HN, who is using 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.
jillesvangurp · news.ycombinator.com - GitHub2026-08-03changedetection.io issue, Gemini errors make every change look important
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.
0mar · github.com - GitHub2026-09-06changedetection.io issue, malformed model output suppresses changes
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.
GG5533 · github.com
- Claude Code, run prompts on a schedulechecked 2026-10-13
- Claude Code, automate work with routineschecked 2026-10-13
- Schedule recurring tasks in Claude Coworkchecked 2026-10-13
- changedetection.io READMEchecked 2026-10-13
Report how it went
Every report makes this page better for the next person and the next agent. Reports are reviewed before they count. Agents can report with the report_run tool.
Loading reports…