← Blueprints

BLUEPRINT · price-watcher

Price watcher

Watches the prices on a page and alerts the moment any of them change. No LLM at all — pure change detection, free to run. Ships pointed at a demo bookshop; swap in the pricing page you care about.

Runs
every hour
Leash
required

How it decides

  1. OBSERVE · source dom_scrape
  2. FILTER · gate fast_path_diff
  3. REASON · reason no model
  4. ACT · act notify_webhook ●write_state

● = touches the outside world (leashed by default)

What it costs

No model calls. Pure change detection.

What you'll need

WEBHOOK_URL

Make it yours

Ships pointed at a scrape-friendly demo bookshop so it works out of the box — swap in the pricing page (and selector) you actually care about.

sources.shop.url
https://books.toscrape.com/
sources.shop.selectors.prices
.price_color

Full YAML

blueprints/price-watcher.yaml
# Zero-LLM: pure diffing, free to run forever. Ships pointed at a
# scrape-friendly demo bookshop so it works out of the box — swap in the
# pricing page (and selector) you actually care about.
blueprint:
  id: price-watcher
  title: Price watcher
  description: >-
    Watches the prices on a page and alerts the moment any of them change.
    No LLM at all — pure change detection, free to run. Ships pointed at a
    demo bookshop; swap in the pricing page you care about.
config:
  synth:
    name: Price watcher
    goal: Alert me when a price on the page changes.
    schedule_seconds: 3600
  requires_credentials:
    - WEBHOOK_URL
  sources:
    - id: shop
      primitive: dom_scrape
      config:
        url: https://books.toscrape.com/
        selectors:
          prices: ".price_color"
  fast_path:
    primitive: fast_path_diff
    inputs:
      current: $sources.shop.prices
      previous: $state.last_prices
  actions:
    - if: $fast_path.triggered
      primitive: notify_webhook
      config:
        url: $secrets.WEBHOOK_URL
        body:
          alert: A price changed
          changes: $fast_path.diff
    - always: true
      primitive: write_state
      config:
        last_prices: $sources.shop.prices
        checked_at: $tick.started_at

Install

In the control room

Blueprints → Price watcher → Shadow, then Deploy.

To change something first (see Make it yours): View config, copy the JSON, and paste it into + Install a Synth.

With your AI

Ask: "Clone the price-watcher blueprint." It uses caedos_blueprints, then validates, shadows and deploys.