Case studies
KAS listing monitor - near real-time scraping and alerts
A daemon that scans KAS and tax-office listing pages every 2.5 seconds, detects new sale offers, prepares the e-mail application from the listing data, and reports every step to Discord.
Case study updated:
Client and context
An operations workflow built around buying assets from public KAS (National Revenue Administration) and tax-office sale listings, where the first applicant wins.
Business problem
The process is first come, first served. Manual page checks were slow and error-prone, and changing website behaviour increased the risk of missing a listing.
Approach and solution
I built a modular daemon that crawls the sources on a schedule, deduplicates listings by page hash, classifies the listing type, assembles the required data, and triggers the e-mail application automatically. Playwright is used as a fallback where plain HTTP scraping was unreliable.
Delivery scope
- Scanning every 2.5 s with time-window, multi-frequency scheduling.
- Deduplication and an idempotent notification pipeline with persistent state in SQLite.
- Field extraction and e-mail templates per listing type, with send-status logging.
- Playwright fallback for pages where pure HTTP scraping was not reliable.
- systemd deployment with auto-restart, logging, and daemon, run-once, and dry-run modes.
- Discord integration for full observability: new listings, application actions, sent messages.
Business impact
- The team is notified within seconds of a listing being published.
- Shorter time from a listing appearing to a complete e-mail application being sent.
- No duplicate alerts and no manual page checking.
- Full operational overview in Discord without reading logs or inboxes.
- A stable monitoring foundation ready for additional sources.