Public Radar
One Engine, Many Public-Data Alert Products
A B2B alert platform where each product pulls from a free, commercial-use-OK public API, uses Claude to score relevance and write a plain-English brief, dedupes, and emails or Slacks subscribers only what matters. FDA Watch, Patent Pulse, Insider Filings, and more all share one product-agnostic engine — a new vertical is one new adapter, not a new app.
Tech Stack
Results & Metrics
Challenges Faced
One Engine, Many Products
Each alert vertical has a different data source and domain, but rebuilding subscribers, scoring, dedup, delivery, and billing per product would be unmaintainable.
AI Cost Control
Relevance scoring runs per candidate match, so naively calling Claude on every item from every API would make per-subscriber costs spiral out of control.
Genuinely Free Data
Most 'free' APIs (Open-Meteo, Reddit, Alpha Vantage) forbid commercial use. The product needed data sources that are clean to monetize.
How I Solved Them
Adapter Architecture
Defined a product as a four-method Adapter (name, instructions, fetch, prefilter). Everything else — subscribers, AI, dedup, delivery, billing — is a shared engine, so a new vertical is one file.
Prefilter-Gated Scoring
A cheap keyword prefilter gates items before any Claude call, and scoring runs on Haiku — keeping a few hundred subscribers at cents per day, with batching ready if volume grows.
Public-Domain Sources Only
Built exclusively on CC0 / US-public-domain APIs — openFDA, USPTO Open Data Portal, SEC EDGAR, and ClinicalTrials.gov — all explicitly clean for commercial use.
System Architecture
A product-agnostic Python engine (stdlib core: models, storage, AI scoring, delivery, and the shared run loop) that each product plugs into via an Adapter. A FastAPI service serves landing pages, Stripe webhooks, signup capture, and the daily /cron/run on one origin. State persists in Postgres (Neon) or a SQLite fallback; the daily run is a free GitHub Actions cron; Claude scores relevance and writes briefs; delivery is email digest plus Slack.