Case study · September 2026 · 5 min read
Scanning 40+ channels a day, scoring every upload on six signals, and shipping a ranked report before the news cycle that made it relevant has closed.
yt-competitor-swipe40+
channels scanned every day
6
weighted signals behind one opportunity score
66
tests covering the scoring math
Competitive research in a fast-moving niche is a time trap. By the time a person has opened every competitor channel and judged every upload by eye, the window that made any of it useful has often already closed. The report has to exist before the deadline, or it is a history lesson, not intelligence.
Views-per-hour alone rewards channels that already have a huge audience, so the score blends it with five other signals: an outlier multiple measured against that channel's own baseline (a small channel's real breakout counts as much as a big one's), an engagement-velocity z-score, a demand-versus-supply keyword gap, cross-competitor title convergence, and a seasonal-calendar tailwind.
Convergence turns out to be its own useful signal: when 3 or more competitors post near-identical titles on the same hook within 48 hours, that clustering is itself worth flagging, independent of how any single video performed. The weights live in one config file, not in code, so a niche's priorities can change without touching a line of Python.
One YouTube Data API endpoint, search.list, costs roughly 100x what every other call costs. That fact shapes the whole pipeline: there is an explicit degradation ladder where a quota squeeze narrows keyword discovery first, then comment mining, before it ever touches the core channel scan. The scan itself is never the thing that gets cut when the budget is tight.
The report and a running history ledger are committed files in the repo, not an email or a slide deck that can quietly go stale in someone's downloads folder. A separate dashboard reads those same committed files at build time and serves a browsable, auth-gated view with expiring links for sharing one report outside the team.
The report states, up front, how long the equivalent manual sweep would have taken. That is the real value proposition: not a prettier report, a finished one, sitting in the inbox before the deadline a human sweep would have missed.
The full engine behind this write-up is public and open source at yt-competitor-swipe, with its own README, architecture diagram, and test suite.
More landing soon
Leave your email. One short note when a new write-up lands here, nothing else.
Just your email, stored on my own private database. Never sold, never rented. Reply to any email to unsubscribe.