2dehands deal board

Spec read from want.json — the same file the monitor uses, so a change here changes the scheduled runs too. 79 listings from the last pipeline run, generated 2026-10-30 23:22. Titles link to the actual listing.

Live refetch works because the request goes to this same origin, which forwards it to the 2dehands API and answers with `Access-Control-Allow-Origin` — the browser could not call the API directly, which is why this page used to be limited to re-filtering the last run. Facet fields (condition, RAM band, storage type, GPU presence, price, postcode, distance) are applied server-side; fields the platform has no facet for (GPU/CPU model, storage size, DDR type) are read from listing text and stay flagged when a listing does not state them. Live rows are classified by `spec.py` on the server — the same implementation the scheduled runs use. If the service is unreachable the page falls back to its own copy of the rules over the embedded snapshot, and the header says which one produced what is here.

Search values (facets — applied by the service on a live refetch)
Spec values (classify the rows; a live refetch sends this config to the service)

Showing the last pipeline run. Refetching sends this config to the service, which resolves the facet values live and classifies with spec.py.

Live verification of the gaps is opt-in (`?verify=N`) because it costs one extra request per listing, and `robots.txt` disallows `/lrp/api/search*` for `User-agent: *` — a human clicking refetch is low volume, and the scheduled runs stay the low-volume cron job. The service caches each query for 60 seconds and spaces upstream calls.

Without a refetch this page runs its own copy of the tier rules over the snapshot. That duplication is deliberate and known: for scheduled runs `spec.py` is authoritative, and the two were cross-checked against each other.

Good matches — every gate met on stated facts

Partial matches — a machine that holds part of the spec, but a stated value is below it

Cannot be judged — the listing never stated what the spec needs