Heartbeat monitors compared: Did It Run?, Healthchecks.io, Cronitor, Dead Man's Snitch, UptimeRobot
All five do the same core thing: your job checks in (pings a URL) when it runs, and you're alerted when a check-in doesn't arrive on schedule. The differences are who they're built for and what they check beyond "a ping arrived".
Did It Run?
An outside watchdog that alerts you when a scheduled AI agent or automation is missed, late, failed, or comes back empty. Works with ChatGPT tasks, Claude Code, n8n, Zapier, Make, GitHub Actions and cron. Free: 3 watches. Solo $15/mo (30 watches). Pro $39/mo (150 watches, client folders). Annual = 2 months free.
At a glance
Competitor details are from their public pages as of October 20, 2026. Check each site for current plans and features.
| Feature | Did It Run? | Healthchecks.io | Cronitor | Dead Man's Snitch | UptimeRobot (heartbeat) |
|---|---|---|---|---|---|
| Built for | Scheduled AI agents and no-code automations (ChatGPT and Claude tasks, n8n, Zapier, Make), plus cron and GitHub Actions | Cron jobs and background tasks; developer-first | Cron jobs, plus uptime and other monitoring; developer-first | Cron jobs; deliberately simple | Website and uptime monitoring; heartbeat is one monitor type |
| Check-in method | Ping URL, with /start and /fail. Email check-ins: coming soon | Ping URL, email, and more | Ping/telemetry API, SDKs | Ping URL, "Field Agent" CLI | Ping URL |
| Checks the output, not just the ping | Yes: minimum item count, minimum size, required keyword → "empty" alert | Keyword filtering on email check-ins (start / success / failure keywords) | See their docs | Not listed on their plans page | Not listed for heartbeat monitors |
| Schedules | Plain English ("every weekday by 9:15am") or cron, with timezone and grace | Cron or period, with timezone and grace | Cron or interval | Basic and enhanced intervals | Interval |
| Summary or digest emails | Yes, daily roll-call (Solo and Pro) | Weekly or monthly email reports; hourly or daily reminders while a check is down | See their docs | Not listed on their plans page | Monthly uptime email reports |
| Open source / self-host | No | Yes (open source) | No | No | No |
| Alert channels | Email; Slack, Discord, Telegram on Solo and Pro | Many integrations | Many integrations | Email; integrations on higher plans | Email, SMS, voice, Slack, Telegram and more, depending on plan |
| Published pricing | Free: 3 watches. Solo $15/mo (30 watches). Pro $39/mo (150 watches, client folders). Annual = 2 months free | Free: 20 jobs. Paid from $20/mo (100 jobs) | Free: 5 monitors. Business: $2 per monitor/mo + $5 per user/mo | Paid plans from $5/mo (3 snitches); see deadmanssnitch.com/plans | Heartbeat monitoring is on paid plans (Solo and up), from $12/mo billed annually (prices vary by region). The Free plan (50 monitors) doesn't include heartbeats |
Pick Healthchecks.io if…
You're a developer with lots of cron jobs, you want a generous free tier (20 jobs) or the option to self-host open-source software, and "the ping arrived" is the check you need.
Pick Cronitor if…
You want cron monitoring in the same tool as uptime checks and broader telemetry, and per-monitor pricing suits you.
Pick Dead Man's Snitch if…
You want the simplest possible cron check-in with very little configuration.
Pick UptimeRobot heartbeats if…
You already use UptimeRobot for your websites and just need a few background-job heartbeats alongside them.
Pick Did It Run? if…
- Your scheduled work lives in ChatGPT or Claude tasks, n8n, Zapier or Make, not only in a crontab, and you want copy-paste recipes for each.
- Your most common failure is "it ran and returned nothing": an agent refusal, a search with 0 results, a Zap that succeeded with empty fields. Item-count, size and keyword checks turn that into an alert.
- You want one morning email across every platform: what ran, what's missing, what came back empty.
- You're an automation agency and want each client's workflows in its own folder (Pro).
Where we're weaker today
Fewer integrations than the established tools, no self-hosting, email check-ins not live yet, and a smaller free tier than Healthchecks.io (20 jobs) or Cronitor (5 monitors).
Related
FAQ
What is a heartbeat monitor?
A service that expects a check-in from your job on a schedule and alerts you when the check-in doesn't arrive. It catches jobs that never started, which error alerts can't see. It's also called a dead man's switch.
Can I move my checks over from another heartbeat monitor?
Create a watch with the same cron expression and grace window, then swap the ping URL in your job. To report a start or a failure, call the ping URL with /start or /fail appended.
Does Did It Run? support email check-ins?
Not yet. Email check-ins are coming soon. Today every check-in is an HTTP request to the watch's ping URL.
Know the next time it doesn't run
Know when your AI agents and automations didn't run. Free for 3 watches.
Start free