01Problem
What was broken
Checking competitor pricing by hand doesn't scale past a handful of companies, and it's easy to miss a change. Scraping the pages instead is fragile: pricing UIs change their DOM often, and running an LLM over every scrape to read the price back out gets expensive fast once you check on a schedule.
02Impact
What it does now
Competitor pricing checks run on their own now. The delta engine only calls an LLM when a price actually moves, so token cost stays close to flat as the list of tracked competitors grows.
03Architecture
How it is built
Bright Data proxies fetch the page and hand the raw DOM to a parser. The delta engine compares the extracted price against a baseline stored in Supabase, keeps history in a memory layer, and only calls Gemini when the price crosses the threshold.
Modules
- Proxy Fallback Router
- Delta Engine
- Acontext Memory
- ActionBook Agent
04Intelligence
Where the AI sits
ActionBook agents navigate client-side rendered tabs, like Monthly vs Annual pricing toggles, that a static scraper would miss, before the delta engine compares the extracted price against the stored baseline.
05Decisions
Trade-offs I chose
- 01
Cost-Aware Delta Engine
Instead of running every scrape through Gemini, a text-delta check compares the new scrape against the stored baseline first. Gemini only runs when that check finds a real change, so an unchanged competitor costs a string comparison instead of a model call.
- 02
Bright Data Waterfall Setup
Residential proxies with fallback logic keep scrapes from getting blocked by bot detection like Cloudflare and DataDome. When one proxy gets flagged, the next request in the waterfall tries a different one.
