I Built an AI Agent That Monitors Websites. Here’s What It Caught in One Hour.
An AI website monitoring agent powered by an LLM that decides whether website changes are worth your attention β built by an AI agent, measured for cost, and tested on live sites.
The Problem With Website Change Alerts
Every website change monitor I’ve tried is useless within 48 hours. Ad rotations, timestamps, version bumps, cookie banners β each is technically a “change” and each is noise you don’t care about.
What you actually want to know: Did a competitor change pricing? Did that job board get a new listing? Did the government update a policy? Did Bitcoin drop below $50,000?
The difference between “the bytes changed” and “something meaningful happened” is exactly the kind of judgment LLMs are surprisingly good at.
Building the AI Website Monitoring Agent: One Prompt, 513 Lines
I gave OpenClaw one prompt: “Build an AI website monitoring agent.” 41 minutes later, 513 lines of Python across 5 files.
The Architecture
- Scraper β requests + BeautifulSoup
- Hasher β SHA-256 comparison
- Differ β difflib-based diff
- Classifier β DeepSeek with custom watch instructions
- Notifier β Telegram alerts per user
- Logger β structured JSON log
sentinel.py 195 lines
scraper.py 103 lines
classifier.py 93 lines
user_manager.py 300+ lines
storage.py 62 lines
notifier.py 60 lines
The Cost: Less Than Your Morning Coffee β Per Year
Every classification call averages ~260 tokens. At DeepSeek pricing: $0.00005 per call.
| Scenario | Monthly Cost |
|---|---|
| 5 URLs, every 15 min | $0.05 |
| 10 URLs, every 5 min | $0.43 |
| 20 URLs, every 2 min | $2.16 |
Live Test: Three High-Churn Sites
I pointed the agent at HN, CoinMarketCap, and NYT every 10 minutes for an hour, plus ainskills.com (which I was editing). 51 monitoring cycles, 17 SIGNIFICANT detections, 17 Telegram alerts.
What DeepSeek Actually Said: Real Classifier Outputs
Here’s the part that makes this system different from a regular diff tool β the LLM’s reasoning. I captured these examples live from the running daemon:
Hacker News: New Stories Detected
What changed (diff): REMOVED: 163 points, by nopg, 15 hours ago, 227 comments ADDED: 34 points, 44 min ago, 22 comments, 73 points, 39 comments, 66 points, 59 comments, 1647 points, 1143 points, "High Density Living, 2000 Years Ago: Inside the Roman Apartment Building" DeepSeek verdict: SIGNIFICANT "The page content has changed substantially with the removal of old comments and points and addition of new discussion items and a new article title, indicating a major content update."
CoinMarketCap: Financial Data Shifted
What changed (diff): REMOVED: 13.85%, $85.31B, 102.45%, 59.53%, 0.13, 0.41%, $83.27B, 18.63%, 59.5%, 0.63 ADDED: $146.98, 0.02%, 0.48%, 5.46%, $14.75M, $14,754,188, $1,810,615, 12.31K, $72,801.46, 0.30% DeepSeek verdict: SIGNIFICANT "The removal and addition of financial figures like percentages, dollar amounts, and market data indicates a major update to financial metrics or stock data."
New York Times: Timestamp Update (Correctly Ignored)
What changed (diff): REMOVED: May 29, 2026, 10:13 a.m. ET, "In the Iran-U.S. Standoff at Sea, a Test of Who Blinks First" ADDED: May 29, 2026, 10:16 a.m. ET, same article DeepSeek verdict: TRIVIAL "Only the timestamp changed from 10:13 to 10:16, with no substantive content difference."
Notice the NYT example β that’s a real case where a standard monitor would fire an alert for a timestamp bump. The LLM layer correctly suppressed it. This is exactly why the classifier exists.
{"url":"https://news.ycombinator.com/","verdict":"SIGNIFICANT","reason":"New stories and discussion items appeared on the front page"}
{"url":"https://coinmarketcap.com/","verdict":"SIGNIFICANT","reason":"Financial metrics updated β new dollar amounts and percentages"}
{"url":"https://news.ycombinator.com/","verdict":"TRIVIAL","reason":"Only user engagement metrics (points, comments) refreshed"}
{"url":"https://www.nytimes.com/","verdict":"TRIVIAL","reason":"Timestamp updated from 10:13 to 10:16, no content change"}
{"url":"https://news.ycombinator.com/","verdict":"SIGNIFICANT","reason":"Page content changed substantially with new article titles"}
{"url":"https://coinmarketcap.com/","verdict":"SIGNIFICANT","reason":"Major update to financial data and market metrics"}
{"url":"https://ainskills.com/","verdict":"SIGNIFICANT","reason":"New content added β article edits in progress"}
Multi-User Mode: Tell It What Matters to You
The agent supports user-defined watches with custom instructions. Each user registers, adds URLs with labels, and tells the agent exactly what to watch for:
$ python user_manager.py watch add <user_id> <url> –watch-for “description”
watch add alice “https://coinmarketcap.com/currencies/bitcoin/” –label “BTC Price” –watch-for “Alert if BTC drops below $50K”
watch add bob “https://example.com/jobs” –label “Tech Jobs” –watch-for “Alert if a new senior Python dev position appears”
| Use Case | Watch Instruction |
|---|---|
| Crypto Arbitrage | “Alert if BTC drops below $48K” |
| Job Hunting | “Alert if a new remote AI/ML job paying $150k+ appears” |
| E-Commerce | “Alert if price drops below $29.99 or if in stock appears” |
| Competitor Intel | “Alert on any pricing tier changes or removed features” |
| Government Policy | “Alert if any policy document is added or updated” |
Where It Breaks
1. JavaScript-Rendered Pages β CoinMarketCap returned 14K chars but prices are JS-loaded. You need Playwright.
2. Paywalls β NYT served 7K chars dominated by paywall overlay.
3. First-Visit Overhead β ~260 tokens wasted per new URL.
Would I Actually Run This?
Yes β this AI website monitoring agent is ideal for competitor pricing, job boards, government pages, product restocks, client websites, and crypto arbitrage. No β for news sites (you have RSS) and JS-heavy SPAs without headless browser support.
At $0.05/month for 5 URLs checked every 15 minutes, the cost is irrelevant.
The Meta Story
DeepSeek built the tool (wrote the code in 41 minutes), and DeepSeek powers the tool (classifies changes). This is what “agents building agents” actually looks like.
How to Extend It
- Web UI for registration (Flask/FastAPI)
- Headless browser scraper (Playwright/Selenium)
- Auth support (cookie/session management)
- Smart diff threshold (skip first-visit classification)
- Alert preferences per user (Telegram, email, SMS, webhook)
- Historical trends (hash history over time)
The Code
git clone https://github.com/Yitzkak/multi-agent-ai-research.git
cd website-sentinel
pip install -r requirements.txt
python user_manager.py users add myname --telegram 123456789
python sentinel.py --daemon
GitHub: Yitzkak/multi-agent-ai-research β
FAQ
How is this different from a regular monitor?
Regular monitors alert on every byte change. This AI website monitoring agent uses an LLM to reason about whether the change matters to you specifically β cutting out noise entirely.
Do I need a GPU?
No. The heavy lifting happens on DeepSeek’s servers. All you need is an API key.
Can multiple users share one instance?
Yes. The user_manager.py supports multiple users with their own watch lists and Telegram chat IDs.
What’s the catch?
JS-heavy pages need a headless browser. First-visit overhead costs ~$0.00005 per URL. The LLM occasionally calls something TRIVIAL you’d consider significant. But at $0.05/month, the cost is zero.
Related: When Multi-Agent AI Actually Helps Β· MCP Protocol Explained Β· Prompt Engineering Guide
