Cooldown Caller closes a gap its sibling project, Publish Window Keeper, deliberately left open: a dashboard you still have to remember to check. This agent doesn't wait to be asked a question - it acts on the world by itself.

A small tracked-items dataset (modeled on real recurring-action problems: ElevenLabs Music Marketplace's 5-tracks-per-rolling-24-hours publishing cap, a Craigslist listing that expires roughly every 45 days, a quarterly back-office audit) is evaluated against a Vercel Cron schedule (daily) plus an on-demand manual "Run check now" trigger for live demonstration - not continuously, and not the instant a cooldown clears. When a scheduled or manual check discovers an item has cleared its cooldown, Cooldown Caller calls CALL-E's Developer API (POST /v1/calls) to place a real outbound phone call that delivers the specific reminder in a live, goal-driven conversation - not a scripted robocall. Every call's real call_id, status, summary, and full transcript are pulled back from GET /v1/calls/{id} and shown on the live dashboard as calls are placed going forward.

An idempotency key derived from the item and its cooldown cycle means a re-run (cron + manual button both hitting the same cycle) can never place a duplicate real call. Both the call log and tracked items are persisted in Supabase, with real add/mark-done CRUD - no auth wall, so anyone visiting the live demo can add their own tracked item and see it evaluated on the same real pipeline. A "Ring the demo line" button also places one real call on demand, rate-limited and lifetime-capped so a public demo can't be abused or exhaust the shared CALL-E account budget.

Every real call in this project - during development and via the live demo - goes to the one number this app is explicitly authorized to call. This is deliberate, not a limitation: testers and judges can verify the real pipeline end to end (the live dashboard, the "run check now" and "ring the demo line" triggers, the real call log with real call_id/status/transcript) without needing to personally receive a call. The submitted demo video shows a real, live-triggered call end-to-end, cross-verified on CALL-E's own dashboard.

Nothing here is simulated: the demo dataset is honestly labeled as example data. Following a submission review, the real destination number and raw call payloads from development were removed from this public repo and its git history entirely, rather than merely having identifiers anonymized - the demo video, not a reconstructed JSON file, is the evidence for those calls.

Built With

  • calle-api
  • nextjs
  • react
  • tailwindcss
  • typescript
  • vercel
  • vercel-cron
  • vercel-edge-config
Share this project:

Updates