01
Kentucky Legislative Session Monitor
Automated ingestion of 131+ committee meetings across the 2026 Kentucky General Assembly — surfacing story leads at $1.65 per aired story.
Read case study →
02
DOT CAM: Live Traffic Camera Dashboard
Replaced antiquated VLC workflow with a browser-based live camera monitoring system. Built in 4.5 hours. Live in production at $18/month.
Read case study →

Case Study 01 — Legislative Intelligence

Kentucky Legislative Session Monitor

Automated monitoring of the 2026 Kentucky General Assembly — ingesting every committee meeting, surfacing enterprise story opportunities, and delivering editorial intelligence directly to reporters at scale.

131
Committee meetings ingested
469
Story ideas surfaced
38
Stories that aired
$1.65
Cost per aired story

The Kentucky General Assembly's 2026 session ran from January 6 through April 15 — a 10-week sprint of committee hearings, floor votes, and policy debates across dozens of standing committees. On a typical session day, the General Assembly runs six to ten committee meetings simultaneously. Our newsroom could staff two of them.

The result is predictable: stories get missed. Legislative action on education funding, healthcare access, and public safety advances with little to no coverage, because the newsroom was late or never knew it happened.

A fully automated pipeline built in MindStudio monitored the Kentucky Legislature's YouTube RSS feed continuously throughout the session. When a new committee meeting recording is posted, the system ingests it without human intervention — extracting audio, transcribing it via AssemblyAI, and analyzing the transcript with a large language model prompted to think like a beat reporter.

The output is a structured editorial report delivered by email to the Executive Producer. Story ideas are reviewed, filtered for newsworthiness and broadcast relevance, and forwarded to reporters for assignment — preserving human editorial judgment at every step.

"The AI surfaces. The journalists decide. That division of labor is intentional — and it's reflected in the numbers."

MetricResultNotes
Committee meetings ingested131Full automated coverage
Story ideas generated469$0.13 per idea
Stories pitched to reporters46After editorial review
Stories assigned3883% pitch acceptance rate
Stories aired38100% completion rate
Total system cost$62.69$1.65 per aired story
Challenge 01
Hallucination Guardrails — Lawmaker Attribution
The Kentucky General Assembly does not announce legislators by name during committee hearings — members are addressed by district number. In early testing, the LLM inserted lawmaker names by cross-referencing training data to fill the gap. The solution was explicit prompt engineering: the system was instructed never to attribute a statement to a named individual unless that name was spoken verbatim in the transcript.
Challenge 02
Pipeline Architecture — Live Video Filtering & Duplicate Prevention
The RSS feed surfaces the five most recent committee meeting videos — but at any given moment, one or two may be live streams still in progress. A single-step filtering approach failed consistently. The solution was two discrete steps: first, identify and discard live streams; second, check remaining videos against previously processed IDs and route the oldest unprocessed video for transcription.
Challenge 03
Reporter Feedback Loop — Output Design
The system was built with reporters, not just for them. An early version led with story ideas followed by a meeting summary. Reporters found themselves scanning past the ideas to understand context before evaluating them. Inverting the format — summary first, story ideas second — was a small change with meaningful impact on usability. Accuracy was validated by comparing system output against reporter observations from meetings attended in person.

Case Study 02 — Production Infrastructure

DOT CAM: Live Traffic Camera Dashboard

Replaced antiquated VLC workflow with a browser-based live camera monitoring dashboard. Built in 4.5 hours of working time. Live in production. $18/month to run.

Try it live →

Best experienced on desktop.

4.5 hrs
Total build time
$18
Monthly operating cost
7
Producers using the system

Spectrum News Louisville has access to a statewide network of more than 200 Kentucky DOT traffic cameras — but was accessing them through VLC Media Player using XSPF playlist files. The workflow created three significant operational problems in live production.

  • No visual preview. Cameras were listed as raw UUID stream URLs. Producers had no way to see what any camera showed before selecting one for air. As one producer described it: "playing Russian roulette."
  • Slow load times. Opening a camera in VLC took 10–15 seconds — operationally significant during breaking news when real-time decisions matter.
  • No multi-camera workflow. VLC allowed producers to view only one camera at a time. Each camera required a full stop-and-restart cycle.
VLC workflow demonstration
CapabilityVLC SystemDOT CAM
Camera previewNoneSnapshot refresh grid
Load time10–15 seconds~1–2 seconds
Simultaneous cameras1Up to 5 (queued)
Visual organizationUUID listZone-filtered grid
FavoritesNonePersistent across sessions
Multi-camera transitionsManual restartSeamless slide transition
Access methodDesktop applicationBrowser bookmark
Decision 01
Cloud Hosting Over Local Deployment
Early in the project, testing confirmed the Kentucky DOT RTSP streams are publicly accessible from outside Spectrum's internal network. That single discovery eliminated the need for IT-managed infrastructure — the backend runs on a $18/month DigitalOcean droplet, accessible from any browser in the building. It also fast-tracked IT approval: no software installation on managed machines.
Decision 02
Snapshots for the Grid, HLS for Fullscreen
Streaming live video in every camera tile across 200+ cameras would be CPU-prohibitive. The grid displays JPEG snapshots refreshed roughly every minute — enough visual information for producers to make camera decisions. When a camera is opened fullscreen or added to a queue, the server starts an on-demand HLS stream for that specific camera only, keeping resource usage proportional to actual use.
Decision 03
Dual-Channel Video for Seamless Transitions
The most technically complex problem was eliminating a black flash between cameras during queue cycling. The solution: two video elements play simultaneously at all times, stacked via CSS z-index. Chrome does not throttle video elements that are visible on screen, even when obscured by another element. Transitioning between cameras became an instantaneous z-index swap rather than a stop-load-play sequence.

"The gap between 'identifying a problem' and 'shipping a solution' has never been smaller for people willing to engage seriously with AI as a development partner."

DOT CAM was built by an Executive Producer with no formal software engineering background, during normal working hours, in between editorial responsibilities. The limiting factor was not technical knowledge — it was the ability to define problems precisely, evaluate outputs critically, and iterate with editorial judgment.

The build took 4.5 hours. The tool is live. It costs $18 a month. That ratio — problem identified to solution shipped — is what changes when domain experts engage seriously with AI as a development partner rather than a search engine.

v1.4 May 31, 2026
New Feature
  • Created timelapse capability for 2 cameras during I-65 construction project
Bug Fixes
  • Fixed stale stream on first open — clears cached HLS segments before starting new stream
v1.3 May 29, 2026
Camera List Update
  • Updated camera list from KYTC — replaced and added new cameras (210 → 244)
  • Created 65 construction tab ahead of major road project
Bug Fixes
  • Fixed tile reset when adding cameras to favorites or queue
  • Single ESC now returns to grid (previously required two keypresses)
v1.2 May 27, 2026
Infrastructure
  • Server upgraded to 2 shared vCPU
  • Added 20-minute idle stream cleanup to prevent FFmpeg process accumulation
v1.1 May 22, 2026
Bug Fixes
  • Fixed queue transitions: dual z-index stack eliminates black flash between cameras
v1.0 May 21, 2026
Initial Launch
  • Live camera grid with 210 cameras across four zones (Louisville, Lexington, NKY, Bowling Green)
  • Star favorites — persist across sessions
  • Queue mode — add up to 5 cameras, cycle with arrow keys in fullscreen