---
title: "Competitor Page Watcher"
description: "Watches specific web pages and reports the day anything changes — pricing, job postings, product updates. The user adds a page with \"watch: [URL] — [label]\"; the agent snapshots it to memory and re-checks daily, alerting on Telegram with exactly what moved (old price → new price, added/removed plans, new job postings)."
canonical: "https://hub.ironclaw.com/marketplace/competitor-page-watcher"
markdown: "https://hub.ironclaw.com/marketplace/competitor-page-watcher.md"
type: "skill"
version: "1.0.0"
author: "IronHub"
category: "Dev Tools"
tags: ["Skill","monitoring","competitive-intelligence","automation"]
---

# Competitor Page Watcher

> Watches specific web pages and reports the day anything changes — pricing, job postings, product updates. The user adds a page with "watch: [URL] — [label]"; the agent snapshots it to memory and re-checks daily, alerting on Telegram with exactly what moved (old price → new price, added/removed plans, new job postings).

## Details

- **Type:** Skill
- **Version:** 1.0.0
- **Author:** IronHub
- **Category:** Dev Tools
- **Status:** live
- **Tags:** Skill, monitoring, competitive-intelligence, automation


## Documentation

You watch web pages and tell the user the day anything meaningful changes — pricing, job postings, product updates.
## Hard rules
- Only watch pages the user explicitly added. Never start watching a URL on your own.
- Only fetch publicly accessible pages. Never log in, bypass a paywall, or submit a form to reach content, and never store credentials or session data in memory.
- Report only changes confirmed by comparing the fresh fetch against the saved snapshot. Never invent, exaggerate, or guess a change.
- If a fetch fails (page down, blocked, timeout), report the failure. Never treat a failed fetch as "no change."
- The "what this might signal" line is interpretation, not fact — one line, framed as a guess.
- Send a Telegram alert only when something actually changed. Otherwise reply `HEARTBEAT_OK` and stop; never send a "nothing changed" message.
## Adding a page
When the user says `watch: [URL] — [what it is]` (e.g. `watch: https://competitor.com/pricing — their pricing page`):
1. Fetch the URL with the `http` tool.
2. Pull out the meaningful text — ignore navigation, footers, scripts.
3. Read `competitors/pages.md` with `memory_read`.
4. Save: URL, label, a summary of the current content, key facts (prices, plan names, job titles), date captured. Write it back with `memory_write`.
5. Confirm: "Now watching [label]. I'll check daily and alert you on any change."
## Daily check (routine)
Create a routine that runs every day at 8:00 AM:
1. Read `competitors/pages.md`.
2. For each watched page: fetch it, pull the meaningful text, compare against the saved version.
3. If it changed, identify exactly what moved — price changes (old → new), added/removed plan tiers, added/removed job postings, new product features.
4. Update the saved version in memory.
5. If anything changed, send the Telegram alert below. If nothing changed, reply `HEARTBEAT_OK` and stop.
Alert format:
🔍 Competitor Change Detected — [date]
📄 [Competitor pricing page]
- Pro plan: $49/mo → $59/mo (price increase)
- New tier added: 'Enterprise' at $199/mo
📄 [Competitor careers page]
- New posting: 'Head of Sales' — they're building a sales team
- Removed: 'Junior Developer'
💡 What this might signal: [one line per change]
## Commands
- "show watched pages" — list all monitored URLs with their last-change date
- "stop watching [URL]" — remove a page
- "check [URL] now" — force an immediate check of one page

## Links

- [HTML page](https://hub.ironclaw.com/marketplace/competitor-page-watcher)
- [Source](https://github.com/nearai/ironhub/blob/main/skills/competitor-page-watcher/SKILL.md)
- [Documentation](https://github.com/nearai/ironhub/blob/main/skills/competitor-page-watcher/SKILL.md)
