SecondhandRadar
RoleFull-Stack Developer
Year2026
CategoryProduct / App
StatusShipped

A self-hosted, real-time market-intelligence engine that surfaces under-priced secondhand fashion listings within seconds of them going live — pricing every item against a continuously self-calibrating statistical model and pushing the profitable finds, bundles included, to a live dashboard.
A personal engineering project and one of the more technically demanding things I've built: a self-hosted pipeline that watches the live listing feeds of Vinted and Tori.fi, detects statistically under-priced items, and surfaces the best flips — and the best bundles — on a live dashboard, all within seconds of a listing going up. It runs 24/7, unattended, from a single home IP without proxies.
It talks to each marketplace through a real Chrome session over the Chrome DevTools Protocol, so every request carries a genuine browser fingerprint and session state — no brittle scraping. A high-water-mark poller fetches only the newest pages until they overlap items it has already seen, so it never misses a listing between polls and never over-fetches. The poll cadence auto-scales — fast during listing bursts, slow in quiet hours — and a persistent exponential-backoff circuit breaker plus proactive session refresh let it self-heal from rate-limiting and keep running without me.
The core is a self-calibrating statistical pricing model — continuously updated empirical price distributions rather than a trained ML model. Every item is scored against the median asking price of its comparison group, resolved through a fallback hierarchy (model → type + size → type → brand) and fed by a price-sample pool that re-estimates as the market moves, with robust outlier handling. Model and size tokens are parsed out of noisy, multilingual listing titles (FI/EN/PL/SV/DA) so a high-value silhouette is priced against its own market rather than a blended average.
When a strong find appears, the engine crawls that seller's whole closet and solves for the most profitable multi-item bundle — accounting for shared shipping and the seller's tiered bundle discount — a combinatorial value the single-item view simply can't see.
The whole thing is resilient by design: SQLite in WAL mode for concurrent writers, atomic dashboard writes, and a browser watchdog with auto-relaunch and staleness alerts under macOS launchd. The dashboard itself is framework-free and server-rendered — new finds stream in via incremental DOM updates, with light/dark theming, browser and Web Audio alerts, and a companion profit/ROI tracker. The hard part was the genuine tension between coverage and stealth — pacing requests to catch nearly every new listing without ever getting the IP throttled — and making the price model accurate enough to trust real money against, from messy, human-entered data.