×case-tracking.case
REDACTEDreal work, anonymized — category + problem naming · relative metrics only

Public data · proactive systems

Zero-input case tracking where the state gives you nothing

Court websites publish everything and provide nothing: no APIs, no alerts, no memory. Lawyers refresh pages at midnight before hearings.

role · Product design — automated case tracking & alertsstatus · Running daily against live court data

§01The problem

Courts publish case statuses, orders, and cause lists — the day's hearing schedule — on public websites built for a different decade. There is no API, no notification, no way to say 'tell me when my case moves'. A lawyer with forty live matters checks each one by hand, or pays a junior to, or misses something.

Missing something has a special cost in litigation: an unnoticed listing means an unprepared appearance or an absent one. The stress isn't the work; it's the permanent low-grade fear of the unchecked page.

[ interactive diagram loading… — forty matters, one browser, midnight ]
fig — forty matters, one browser, midnight

§02The thinking

The product insight is that the data is public but the vigilance is private. Nobody needed a better court website; they needed to never look at one again. That means the system carries the vigilance: fetch, diff, and speak only when something changed.

Engineering reality shaped product scope: public court systems are fragile, inconsistent, and occasionally simply down. So the pipeline treats 'couldn't check today' as a first-class status the user sees — a silent failure in a vigilance product is a betrayal, the exact thing users came to escape.

Alert design was the actual UX battleground: too many notifications and lawyers mute you (vigilance lost), too few and you've recreated the fear. The answer was severity tiers — 'listed tomorrow' interrupts, 'order uploaded' informs.

+ Daily sweeps with change-detection and diffs

on-demand lookups

# the job is 'watch this so I don't have to' — pull-based tools leave the vigilance with the user.

+ Honest 'couldn't verify today' states

hiding upstream failures

# in a trust product, a visible gap maintains trust; an invisible one destroys it retroactively.

+ Severity-tiered alerts

notify-on-everything

# attention is the scarce resource; the hierarchy of interruption is the product.

§03What shipped

Every day the system sweeps the public sources for every tracked matter, diffs against yesterday's truth, and pushes only meaningful changes — tomorrow's listings loudest of all. Lawyers stopped refreshing pages; the system does the midnight worrying.

[ interactive demo loading… — the daily sweep: fetch, diff, decide, notify ]
fig — the daily sweep: fetch, diff, decide, notify

§04Outcomes

40 minutes → 30 seconds

a daily manual sweep across matters becomes reading one digest

Interruptions earn their rank

hearing-tomorrow alerts interrupt; the rest inform quietly

No silent failures

'couldn't check' is shown, never swallowed

§05Reflection

Products built on infrastructure you don't control teach defensive product design: every upstream flakiness becomes your reliability story. The discipline of surfacing what the system doesn't know became a pattern I now apply to AI products everywhere — confidence honesty is the same feature in a different costume.

$ cat takeaways.txt

  • Sell the vigilance, not the data.
  • On unreliable infrastructure, honest gaps are a feature; silence is a breach.
  • Ration interruption by severity — attention is the real currency.