SaaS jobs
Digest emails, billing runs, and trial sweeps
Run the recurring jobs your SaaS depends on — reliably, with retries and alerts when one fails.
The problem
Every SaaS has a handful of scheduled jobs that quietly matter a lot: the weekly digest, nightly billing reconciliation, trial-expiry sweeps, usage rollups. When one silently stops, you don't notice from the dashboard — you notice from an angry customer or a revenue gap a month later.
How SteadyCron solves it
- 1 Define each job as an HTTP call to your app's internal endpoint, secured with a header token.
- 2 Schedule it in the right timezone (your billing day shouldn't drift with DST).
- 3 Set retries so a brief database blip doesn't skip a whole billing run.
- 4 Get alerted on failure or repeated failures, and auto-resolved when it recovers.
jobs:
- name: weekly-digest-email
kind: http
method: POST
url: https://api.myapp.com/jobs/digest
schedule: "0 9 * * 1"
timezone: Europe/Berlin
retries: 3
- name: trial-expiry-sweep
kind: http
method: POST
url: https://api.myapp.com/jobs/trial-expiry
schedule: "0 6 * * *"
timezone: Europe/Berlin
Jobs
| weekly-digest-email | HTTP | 0 9 * * 1 | in 2 days | 3 days ago | ||
| nightly-db-backup | Heartbeat | 0 2 * * * | in 19 h | 5 h ago | ||
| stripe-reconciliation | HTTP | 0 */4 * * * | in 38 min | 3 h ago | ||
| cache-warmup | HTTP | */15 * * * * | in 11 min | now | ||
| search-index-sync | Heartbeat | */30 * * * * | in 6 min | 24 min ago |
| seed-test-data | HTTP | 0 4 * * * | in 14 h | 10 h ago | ||
| preview-env-cleanup | Heartbeat | 0 */6 * * * | in 2 h | 4 h ago | ||
| trial-expiry-sweep | HTTP | 0 6 * * * | — | yesterday |
Every job's status, schedule, and last run — at a glance.
Keep it in version control
Define all your scheduled jobs in a YAML manifest and reconcile them with
steadycron sync jobs.yaml from CI. Your staging and production schedules stay
identical, and changes go through review like any other code.
One place for the whole fleet
Execution and monitoring share a dashboard, so the digest you run on SteadyCron and the backup you monitor with a heartbeat sit side by side — one status view for everything scheduled.
Related documentation
Stop finding out the hard way
Start on the free tier — no credit card required.
Start free