3 checks free, then $5/month

Your database backup has been failing for three weeks.

You'll find out when you need it.

CronSignal alerts you the moment a scheduled job doesn't run. One line of code. No SDK. No configuration.

crontab -e
# Backup database every night at 2am
0 2 * * * /usr/local/bin/backup.sh && \
    curl -fsS cronsignal.io/ping/abc123

One line. If your job runs, we know. If it doesn't, you know.

<50ms
Global latency
99.99%
Uptime SLA
180+
Edge locations

Cron jobs fail silently.
That's the whole problem.

Your server's cron daemon doesn't care if your script crashes halfway through. It doesn't care if the disk filled up, or the API timed out, or someone commented out the wrong line. It just... doesn't run the job. And doesn't tell anyone.

You find out when a customer asks why their report is missing. Or when you reach for a backup that doesn't exist. Or when the database you thought was being cleaned up is suddenly 500GB.

Most monitoring tools alert you when something fails. But cron jobs don't "fail" in a way those tools can see. They just don't run.

That's why heartbeat monitoring exists. And that's what CronSignal does.

Three lines of config.
Zero ongoing maintenance.

1

Create a check

"Nightly backup" — every 24h — 30min grace

Your URL: cronsignal.io/ping/x7k2m

2

Add to your cron job

0 2 * * * /backup.sh && curl -fsS ...
3

We watch. You don't have to.

2:14 AM — Ping received
Next expected: tomorrow 2:00 AM

No ping by 2:30 AM? You get an email. Immediately.

Your checks, at a glance. Click any to see full history.

Checks

Nightly DB backup
UP
Hourly report sync
UP
Weekly cleanup job
DOWN
Cache warmup
NEW

What you get

Instant alerts everywhere

Email, Slack, Discord, Telegram, or webhooks — within 60 seconds of a missed ping. Recovery alerts when it's back.

Configurable grace periods

Your backup takes 20 minutes? Set a 30-minute grace period. No false alarms.

Global edge network

Your ping hits Cloudflare's edge in <50ms, anywhere. Not a single server in Virginia.

Full ping history

Every check-in logged. See patterns. Debug issues. Know exactly when things broke.

No vendor lock-in

It's a URL. Curl it. Wget it. Call it from Python, Ruby, Node, Go, PHP, Bash. Whatever.

Works with everything

Linux cron, systemd timers, Kubernetes CronJobs, GitHub Actions, Laravel, Django. Yes.

Pricing that doesn't punish growth

Most monitoring tools charge per monitor. We don't.

Free

Get started with essentials

  • 3 checks
  • Unlimited pings
  • Email + Slack + Discord + more
  • Full history
Get Started Free
$5 /month

For serious monitoring

  • Unlimited checks
  • Unlimited pings
  • Email + Slack + Discord + more
  • Full history & API
Get Started Free

Start free, upgrade when you need more

Meanwhile, at other monitoring tools:

CronSignal Cronitor
10 monitors $5/month $20/month
50 monitors $5/month $100/month
100 monitors $5/month $200/month

Same features. Flat price. Your bill shouldn't scale with your infrastructure.

FAQ

How does it work?
Your cron job pings our URL when it finishes. If we don't hear from it when expected, we email you. That's the whole thing.
What if my job runs but fails?
Use && in your cron line: your-script.sh && curl cronsignal.io/ping/xxx. The curl only runs if your script exits successfully.
Why not just use Cronitor?
Cronitor is great. They charge $2/monitor. If you have 50 cron jobs, that's $100/month. We charge $5 total. See the full comparison →
What about Healthchecks.io?
Also great. Open source, solid product, free tier for under 20 checks. Once you cross 20 checks, our flat $5/mo becomes the better deal. See the full comparison →
What alert channels do you support?
Email (always on), plus Slack, Discord, Telegram, and custom webhooks. Configure them all in Integrations.

Your cron jobs are running right now. Probably.

Find out for sure.

We'll send you a magic link. No password to forget.

Already have an account? Log in