How it works
A CS team covering 9,000+ healthcare customers can't run account plans for all of them. Most accounts are healthy and quiet on any given day. This agent does the reading, then surfaces the handful with a real reason to talk: expand, protect the renewal, or turn into an advocate.
- 1
Watch every account, cheaply
Each day the agent pulls recent news for every account from Google News RSS. Articles it has already analyzed are skipped, so a quiet account costs one free RSS request and zero model calls.
- 2
Only call Claude when something is new
New articles go to Claude Haiku with a Paubox-specific rubric. It ignores namesakes and noise, and returns a score (−2 risk to +2 opportunity), an update type, and a concrete Paubox play with a next step.
- 3
Watch the industry, not just the accounts
A second pass reads The HIPAA Journal, the Federal Register (HHS and CMS rules), and topic searches for breaches, OCR enforcement, and state privacy laws. Claude keeps only items a CSM could act on and tags the segments each one affects.
- 4
Rank, don't list
Every signal gets a weight by strength, decays with a 14-day half-life, and is multiplied by account value: the ARR band, with a bump for accounts inside the 90-day renewal window. Segment-wide industry news nudges ranking but can't surface an account alone. Accounts above the threshold rise into the queue on their own; the rest stay quiet.
- 5
Persist and publish
A scheduled GitHub Action commits results back to the repo (the git history is the audit trail), and Vercel redeploys this static dashboard automatically.
Priority formula
priority = value × ( Σ signal_weight × 0.5^(age_days / 14)
+ Σ named_industry_mentions
+ min(segment_industry_boost, 1.3) )
signal_weight: +2 → 10 +1 → 5 0 → 0.5 −1 → 6 −2 → 12
(brand/press × 0.5; a −2 in the last 45 days flags "At risk")
value: ARR >$25k 1.5 >$10k 1.25 >$3k 1.1 else 1.0
× 1.25 if renewing within 90 days
surfaces at: priority ≥ 3What it costs at Paubox scale
News fetches are free. Claude Haiku costs roughly a cent per account that has new coverage. If 5% of 9,000 accounts have news on a given day, that's about 450 calls, or a few dollars a day. The industry pass is a handful of batched calls no matter how many accounts there are.
What production would add
- HubSpot as the account source of truth (segment, ARR, renewal, owner, product mix), plus signals written back as tasks on the owning CSM's queue
- First-party signals: seat changes, login and send volume, support tickets, NPS
- Routing rules: enterprise to named CSMs, the long tail to a pooled or digital-touch motion
- A shared feedback loop. The 👍 Useful / 👎 Noise buttons on each signal work today, but votes stay in your browser. In production they'd be stored centrally: signal types that CSMs keep marking as noise would lose weight in the priority formula, and recent labeled examples would go into Claude's prompt, so the agent learns the team's judgment. "Agent precision" (percent marked useful) becomes the metric for the agent itself.