Know when a cron job breaks.
Ask your agent why.
Sereno is a free cron job monitor built for you and your agents. It watches up to 200 jobs, one check each.
https://asksereno.com/mcphttps://asksereno.com/mcpFind this project's scheduled jobs and watch them with Sereno.Find this project's scheduled jobs and watch them with Sereno.
Connect steps for Claude Code, Claude, Cursor, VS Code and ChatGPT.
New here? Sign up.
Example · 07:02
Called whats_failing
Three jobs are failing. Product import has failed 6 runs in a row since 02:00. The last one exited 1 with “connect ECONNREFUSED 203.0.113.7:443”. It runs from crontab on web-1.
Invoice sync missed its 06:00 run on GitHub Actions, and price scraper started at 06:30 and never finished. Sereno itself is healthy.
Want me to read the import's logs on web-1?
A missed run leaves no error
Each job reports every run to Sereno.
“Cron job delivery is best effort.”
Vercel docs
“In a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in 60 days.”
GitHub docs
Sereno marks the missed run and reminds you until you acknowledge it
Invoice sync missed its 06:00 run. Sereno alerted you at 07:00.
Next reminder 11:00, then every 4h until acknowledged.
- 06:00Missed
- Oct 23, 06:00On timejob success: https://github.com/acme/shop/actions/runs/18803344215
- Oct 22, 06:00On timejob success: https://github.com/acme/shop/actions/runs/18776102934
Your agent adds report lines to the jobs you pick
Connect
Add Sereno to your agent app, sign in and tap Allow.
After this you'll go back to claude.ai.An app calling itself Claude wants to connect to Sereno.Recommended: all of theseSee your checks and what's failing (always)Set up and change checksSilence, pause or loosen alertsRetire checksYou can change these, or disconnect it, any time in Settings → Agent access.AllowCancelPick jobs
Your agent finds them in cron, Vercel, GitHub Actions and Supabase.
Example
Find this project's scheduled jobs and watch them with Sereno.I found 4 scheduled jobs.
product-importcrontab on web-10 * * * *invoice-syncGitHub Actions0 6 * * *price-scrapercrontab on web-130 6 * * *sitemapVercel cron0 3 * * *Each gets a report line. The GitHub Actions and Vercel ones read the report address from ALERTS_URL, so it stays out of the repo. Which should Sereno watch?
All fourDone. A test report arrived from web-1. The GitHub Actions and Vercel jobs will confirm on their first scheduled run. Alerts go to your email. Phone alerts need ntfy, in Settings → Alerts.
Add phone alerts
Alerts go to your email. Set up the free ntfy app in Settings → Alerts.
ExampleStill down: Product importnowfail: exit 1: connect ECONNREFUSED 203.0.113.7:443 · since Oct 24, 02:01Product import is down4h agofail: exit 1: connect ECONNREFUSED 203.0.113.7:443 · Shop
One question gives your agent the context to fix a broken job
- What's failing, and since whenProduct import · since 02:00
- What the job printed last, its exit code, or a link to its runexit 1: connect ECONNREFUSED 203.0.113.7:443
- Where it runs, as your agent recorded itcrontab on web-1
- What failed and recovered in the last 3 daysnone
- Whether Sereno itself is healthyhealthy
Sereno tells your agent to ask before anything risky.
Moving from Healthchecks.io usually means changing the report address
- Switching
- Sereno tells your agent to create each check before swapping the report line. See Sereno vs Healthchecks.io and Sereno vs Cronitor.
- Restarts
- Report lines retry for a minute or two. Sereno's own restarts don't count against your jobs.
- Secrets
- Recognized passwords and API keys become [hidden] before they're saved or sent.
- Interfaces
- MCP and a web API at /api/v1.
- Guides
- Step by step for crontab jobs, Vercel cron jobs, GitHub Actions schedules, Supabase cron jobs and asking your agent what failed.
- https://hc-ping.com/CHECK_UUID+ https://asksereno.com/k/PROJECT_KEY/CHECK_SLUG /start run started; no finish within max runtime = failed/fail run failed/EXIT_CODE 0 worked, 1 to 255 failed/test a test report; never changes the check?rid=RUN_ID a repeat with the same id counts once # cron: alerts-run also reports the start and the last lines of output0 * * * * ALERTS_URL=https://asksereno.com/k/PROJECT_KEY /usr/local/bin/alerts-run product-import -- /path/to/your-jobAdd one address. Paste one prompt.
https://asksereno.com/mcphttps://asksereno.com/mcpFind this project's scheduled jobs and watch them with Sereno.Find this project's scheduled jobs and watch them with Sereno.
- Cost
- Free: up to 200 checks, 50 alert emails a day, and phone alerts through ntfy. See every limit.
- Not included
- Slack, Discord, webhooks, website checks, status pages, text alerts.
New here? Sign up.