Supermarket Offer Watcher

v0.2.0

Save a personal grocery product watchlist and check nearby supermarket deals automatically by radius. Use when the user wants to track products (e.g., coffee...

1· 258· 1 versions· 0 current· 0 all-time· Updated 12h ago· MIT-0
byLukas Osterheider@lukasosterheider

Install

openclaw skills install supermarket-offer-watcher

Supermarket Offer Watcher

Overview

Use this skill to maintain a local product watchlist and run recurring nearby-offer checks across supermarket chains.

Configurable after installation:

  • Home location (text)
  • Radius (km)
  • Product list
  • Check frequency (daily or weekly)
  • Check time and timezone

Default data file:

  • /data/workspace/data/supermarkt-watchlist.json

Quick setup

Run from the skill folder.

  1. Initialize config:
python3 scripts/watchlist.py init --location "<ZIP CITY>" --radius-km 15 --mode daily --time 07:00 --tz Europe/Berlin
  1. Add products:
python3 scripts/watchlist.py add "Senseo Coffee Pads" --aliases "Senseo Pads" --stores "REWE,EDEKA,Lidl,Aldi,Kaufland,Netto,Penny"
  1. Inspect config:
python3 scripts/watchlist.py list

Manage configuration later

Update location/radius:

python3 scripts/watchlist.py set-home --location "00001 Berlin" --radius-km 20

Update schedule:

# daily at 07:00
python3 scripts/watchlist.py set-schedule --mode daily --time 07:00 --tz Europe/Berlin

# weekly on monday at 07:00
python3 scripts/watchlist.py set-schedule --mode weekly --weekday monday --time 07:00 --tz Europe/Berlin

Remove product:

python3 scripts/watchlist.py remove "Senseo Coffee Pads"

Offer-check workflow

  1. Load watchlist config from /data/workspace/data/supermarkt-watchlist.json.
  2. For each product, run 2–4 web_search queries (product + "offer/deal" + location + optional chain).
  3. Open promising result pages using web_fetch.
  4. Validate each hit before reporting:
    • Product (or alias) is explicit
    • Store/chain is clear
    • Date window is currently valid (today/in current week)
    • Price or discount is visible
  5. Deduplicate same product/store/date combinations.
  6. Send compact alert summary.

Alert format

Use this line format per valid deal:

✅ <Product> — <Store> — <Price/Discount> — valid until <Date> — <URL>

If no safe deals are found, send:

No reliable nearby offers found today.

Cron setup guidelines

Use cron.add with sessionTarget: "isolated" and payload.kind: "agentTurn".

  • Daily cron expression: 0 7 * * *
  • Weekly cron expression example (Monday): 0 7 * * 1
  • Always set timezone from config (e.g., Europe/Berlin).

In the cron prompt, instruct the agent to:

  • read watchlist config,
  • run offer checks,
  • report only validated deals.

Version tags

latestvk977k6w3bhxc1fk0b7vqgtk90582pjgy