Case study Champdatatek
Seventy automations, and no way to tell which had died
The client provides labour poster compliance, annual filings, and regulatory services to businesses across the USA, powered by 70+ scrapers and automations spread over multiple servers. As the ecosystem grew, nobody could answer the only question that mattered: is everything still running, and is the data any good?
Services Monitoring platform & dashboard engineering
Category Automation observability
Client ChampDataTek
Stack .NET · Windows Services · Next.js · Supabase
ChampDataTek
The problem
The automation ran the business, and nothing watched the automation.
Scrapers fail quietly. A broken job looks exactly like a job with nothing to report, until a compliance deadline proves otherwise.
✓70+ scrapers across multiple servers, tracked manually ✓No central view of which jobs had run or failed ✓Silent failures discovered days later, or by a client ✓Troubleshooting starting from scratch every time ✓No data-quality checks on what was collected ✓Exporting data a manual, repeated chore
What it was costing
✓Compliance services built on data nobody had verified ✓Engineering time spent hunting rather than fixing ✓Scaling the automation ecosystem increasing the risk ✓Client trust exposed to a failure nobody had noticed
Our approach
Build the control room
A single portal where every automation reports its own health, and a failure announces itself instead of waiting to be found.
✓Centralised portal covering all 70+ automations ✓Per-job health monitoring and run history ✓Failure notifications the moment a job breaks ✓Data-quality checks on collected records ✓Streamlined export workflows ✓Quick identification of which job failed, and where
Core capabilities
What it does now
Real-time visibility across the whole automation ecosystem.
✓One dashboard for every scraper and automation ✓Health monitoring with run history per job ✓Automated failure alerting ✓Data-quality validation on ingested records ✓Self-serve data export ✓Troubleshooting measured in minutes, not days