Watch a list of web pages and get an email when one changes
Published 2026-10-20
Plenty of things you care about live on someone else's web page: a vendor's price list, a partner's terms, a form that gets new versions, a competitor's pricing, a grant or listing that opens and closes. They change without telling anyone. ChatGPT or Claude can read a page when you paste the link and summarize it. It cannot look again tomorrow, and it has no record of what the page said last week to compare against.
What a chat cannot do alone
A chat runs only while you have it open, so nothing checks the page on a Tuesday night when the price moves. It also has no place to keep yesterday's copy, and that copy is the only way to say what changed rather than what is there now. Browsing inside a chat fetches the page fresh each time and forgets it afterward. Most people end up with a calendar reminder to check the site, which gets skipped, or a paid monitoring tool for each page.
What your assistant builds with Sails
Sails is a coding agent you connect over MCP, with cloud deployment built in. Your assistant writes the code and Sails runs it in the cloud. For this job it builds four pieces.
A table of pages to watch. Each row has the URL, a short name, an optional part of the page to focus on (such as the pricing table or the main text, so ads and footer dates do not count as changes), and how often to check.
A scheduled job written as ordinary shell code with no model in the loop. On each run it fetches every page, strips scripts and markup down to readable text, and compares the result with the last saved copy.
A file store of snapshots. Each check that finds a difference saves the new text with a timestamp, so you keep a history of every version and can see exactly what a page said on any date.
A mailbox for the alert. When a page changes, you get one email with the page name, the link, and the lines that were added or removed. If a page fails to load several times in a row, the email says so too, so a moved or broken link does not go quiet.
Why it works
The comparison is plain text against plain text, so the same input always gives the same answer, and each run costs almost nothing. Focusing on one part of each page keeps noise out, which means an alert is worth reading when it arrives. The snapshots live in files your assistant can open later, so you can ask it how a vendor's terms changed over the year, or pull up the old price when you need to quote it back to someone.
Hand it off
Copy this into your assistant:
Add Sails from https://sails.app/start. Build me a page watcher. Keep a table of web pages with a name, URL, optional section to focus on, and check frequency. Write a scheduled job in plain shell code with no model involved that fetches each page, reduces it to readable text, compares it with the last saved snapshot, and saves a new timestamped snapshot when it differs. Email me from my mailbox with the added and removed lines for each change, and tell me if a page fails to load three times in a row. Start with the pages I give you and show me how to add more. Ask me anything you need before you start.