Break alerts for web scraper selectors

Dev toolWeb1 weekNext.jsPlaywrightSupabase

The idea

Scrapers fail in the worst possible way: silently, returning empty arrays that flow downstream as zeros until someone notices the dashboard looks odd a week later. For anyone whose product or growth motion runs on scraped data, that week is directly lost revenue, and the cause is usually mundane, a target site shipped a redesign and .price no longer matches anything.

Uptime monitors are useless here because the page returns 200 the whole time. The wedge is monitoring the selector, not the site: does this CSS path still match, does it still look like a price. The retention hook is the repair loop, alerting with a DOM diff and an LLM-proposed replacement selector you can validate in one click, which turns a debugging session into a two-minute fix.

Who pays

The buyer is a data-product builder, growth engineer or indie founder running revenue-relevant scrapers, price monitoring, lead enrichment, aggregation sites. At 19 to 79 dollars a month it prices against the cost of one silent dead week. Distribution: scraping and automation communities (r/webscraping, Scrapy/Playwright Discords), SEO on scraper broke after redesign queries, and the free two-monitor tier as the hook.

MVP scope

  • Monitor registration with labeled selectors and per-selector expectations
  • Scheduled Playwright checks with distinct detection of blocks/CAPTCHAs vs selector rot
  • Alerts with extracted-value history and localized DOM diff
  • LLM-suggested replacement selector with live one-click validation
  • Free tier, Stripe-billed paid tiers with hourly checks at the top
  • Skip for v1: running the customer’s full scraper code, proxy management as a service, JavaScript-API/XHR endpoint monitoring, data delivery pipelines
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build SelectorSentinel, a monitoring service for web scraper selectors. Stack: Next.js dashboard, Playwright workers for headless checks, Supabase for auth, data and scheduled jobs; Stripe checkout for paid tiers.

Core flow: user registers a monitor: target URL, a list of CSS/XPath selectors with labels (price, title, stock_status), check frequency (daily on cheap tiers, hourly on top tier), and an optional expectation per selector (matches at least N elements, extracted text matches a regex, numeric value within a range). A Playwright worker loads the page on schedule with realistic headers and a rotating user agent, evaluates each selector, and compares against the last healthy snapshot.

On failure (zero matches, expectation violated, or page-level failure like a 403 or a CAPTCHA interstitial, which should be detected and reported distinctly from selector rot), send an email/Slack alert containing: which selectors broke, the extracted-value history, and a DOM diff of the region around the last-known-good element. Then run the stored last-good outerHTML plus the new page HTML through an LLM to propose a replacement selector, shown with a one-click test-now button that validates it live before the user accepts it into the monitor.

Pages: landing with an interactive try-it (paste URL and selector, instant check), monitors dashboard with health badges, monitor detail with value history sparkline and incident log, alert settings, billing.

Implementation notes: store per-check snapshots of matched outerHTML, not full pages, to keep storage sane; jitter check times to avoid looking like a bot fleet.

Pricing: free 2 monitors daily; 19 GBP/month 15 monitors; 79 GBP/month 100 monitors hourly.

// More Dev tool ideas