# Seiri — Did It Run? Cron Job & Heartbeat Monitoring > Push/heartbeat monitoring for cron jobs, background workers, and Kubernetes CronJobs. Know immediately when scheduled work silently stops. ## Overview Seiri answers one question: **did it run?** It is not website uptime monitoring. Seiri does not poll a URL to check if a server responds. Instead, your job pings Seiri (over HTTP or email) when it finishes successfully. If that ping doesn't arrive within the expected schedule and grace period, Seiri alerts you immediately. **Website**: https://seiri.app **Application**: https://cloud.seiri.app **Contact**: hello@seiri.app ## Core Product ### What Seiri Does - Monitors cron jobs, background workers, scheduled scripts, and Kubernetes CronJobs using a push/heartbeat model - Detects jobs that fail silently, hang, or never run at all — failures a URL probe cannot see - Supports check-ins via HTTP ping or email (unique @ping.seiri.app address per monitor) - Offers **seiri-kube-agent** (Helm HealthCheck operator) for in-cluster workload monitoring - Sends instant alerts through multiple channels (Slack, Discord, Email, SMS, custom webhooks) - Provides shareable status pages, including custom-domain status pages on paid plans ### What Seiri Is NOT - Not a website uptime / URL-polling monitor (that's a different category — see Comparisons below) - Not an error-tracking or APM tool (it complements those; it catches jobs that never run, not just jobs that throw) ### How It Works 1. **Create a monitor**: Define the expected schedule (cron expression or interval) and a grace period 2. **Ping on success**: Add a curl request to your unique ping URL, or send an email to your unique @ping.seiri.app address, at the end of a successful run 3. **Get alerted**: If the ping doesn't arrive within the grace period, Seiri sends an alert before anyone notices the impact ### Key Features - **Heartbeat (push-based) monitoring**: catches missed, hung, and silently-failed jobs - **Email heartbeats**: unique @ping.seiri.app address per monitor, for systems that can send mail but not make HTTP calls - **Kubernetes agent (seiri-kube-agent)**: Helm chart installing the HealthCheck operator (`healthchecks.monitoring.seiri.app`). Watches HealthCheck CRs targeting Deployments, Pods, Jobs, StatefulSets, DaemonSets; reports phases (Healthy / Unhealthy / Missing / …) to Seiri. Docs: https://seiri-app.github.io/seiri-kube-agent/ · Guide: https://seiri.app/kubernetes-agent - **Multi-channel alerts**: Slack, Discord, Telegram, Email, SMS, custom webhooks - **Status pages**: public status pages on every plan; custom status domain on Growth and Scale - **REST API**: scoped API keys for provisioning monitors programmatically - **Team seats**: role-based access across Free, Growth, and Scale plans ## Pricing (USD) ### Free — $0/month (free forever, no credit card required) - 10 monitors - 5-minute check interval - 3 seats - 1 status page - 1 email heartbeat - 1 API key ### Growth — $19/month (Most Popular) - 40 monitors (+$5 per additional 20 monitors) - 1-minute check interval - 10 seats - Custom status domain - 5 email heartbeats - 10 API keys ### Scale — $49/month - 250 monitors - 30-second check interval - 15 seats - 10 Kubernetes clusters - 25 email heartbeats No fake trials. The Free plan works indefinitely; upgrade only when you need more monitors, seats, or a faster check interval. ## Use Cases ### Primary Use Cases 1. **Cron Job Monitoring**: Database backups, invoice runs, cleanup scripts, certificate renewals 2. **Background Worker Monitoring**: Queue workers, scheduled reports, email digests 3. **ETL / Data Pipeline Monitoring**: Batch jobs and syncs where a stale dashboard is worse than a thrown error 4. **Kubernetes CronJob Monitoring**: Jobs that complete "successfully" without an error but never actually finish (e.g. pod eviction during a node drain) 5. **Email Heartbeat Monitoring**: Jobs on restricted networks, legacy servers, or air-gapped systems that can send mail but not make HTTP calls ### Who It's For - Backend / platform engineers running cron jobs and workers - Data engineers running ETL pipelines and batch jobs - DevOps / SRE teams running Kubernetes CronJobs across clusters - Solo founders and small teams running backups, reports, and integrations ## Integration Examples ### Bash/Cron (HTTP ping) ```bash # Before 0 2 * * * /path/to/backup-script.sh # After — ping only fires on success 0 2 * * * /path/to/backup-script.sh && curl -fsS https://ping.seiri.app/NkdyngWn9z ``` ### Email heartbeat (no outbound HTTP required) ```bash 0 2 * * * /path/to/backup-script.sh && \ echo "backup ok $(date -u)" | mail -s "nightly-backup" a1b2c3d4@ping.seiri.app ``` ### Python ```python import requests def my_scheduled_job(): process_data() requests.get('https://ping.seiri.app/NkdyngWn9z') ``` ### Kubernetes — seiri-kube-agent (Helm) ```bash helm install seiri-kube-agent ./helm-main \ --namespace seiri-system --create-namespace \ --set seiri.authToken="" \ --set seiri.clusterId="" ``` ```yaml apiVersion: monitoring.seiri.app/v1alpha1 kind: HealthCheck metadata: name: check-my-app namespace: default spec: targetRef: apiVersion: apps/v1 kind: Deployment name: my-app interval: 10s checkID: "chk-my-app" tags: env: production ``` Full chart docs: https://seiri-app.github.io/seiri-kube-agent/ ### Kubernetes CronJob (optional HTTP ping alongside the operator) ```yaml apiVersion: batch/v1 kind: CronJob metadata: name: backup-job spec: schedule: "0 2 * * *" jobTemplate: spec: template: spec: containers: - name: backup image: backup:latest command: - /bin/sh - -c - /backup.sh && curl -fsS https://ping.seiri.app/NkdyngWn9z ``` ## API Documentation ### REST API Seiri provides a REST API for programmatic access to create and manage monitors. **Base URL**: `https://api.seiri.app/v1` **Authentication**: Bearer token (API key). API key limits: 1 (Free), 10 (Growth), unlimited (Scale). ## Technical Specifications ### Monitoring Capabilities - **Schedule Types**: Cron expressions, fixed intervals - **Check-in methods**: HTTP ping (`https://ping.seiri.app/`), email heartbeat (`@ping.seiri.app`), Kubernetes HealthCheck operator (seiri-kube-agent) - **Grace Periods**: Configurable per monitor - **Alert Escalation**: Multi-channel notification chains ### Security - Each monitor gets a unique, unguessable ping URL and/or email address - Data isolated per account/organization ## Philosophy & Brand ### The Seiri Principle Seiri comes from the Japanese 5S workplace organization methodology, meaning "to sort" or "to clean." The product philosophy: monitoring should answer one simple, honest question — **did it run?** — without fake urgency, fabricated stats, or inflated guarantees. ### Brand Values 1. **Honesty**: no fabricated stats, no fake reviews, no invented SLA guarantees 2. **Simplicity**: one line of code to integrate, 2-minute setup 3. **Focus**: built specifically for scheduled work, not general uptime monitoring 4. **Transparency**: clear USD pricing, no forced trials ## Common Questions & Answers ### Is Seiri website uptime monitoring? No. Seiri doesn't poll a URL to see if a website is up. It's push/heartbeat monitoring for scheduled jobs — your job pings Seiri, not the other way around. ### How does the heartbeat model work? Create a monitor with an expected schedule and grace period, then ping it (via HTTP or email) when your job finishes. If Seiri doesn't receive that ping in time, it sends an alert. ### What is an email heartbeat? A check-in sent by email to a monitor's unique @ping.seiri.app address, for jobs that can send mail but can't make HTTP calls. ### Can Seiri monitor Kubernetes? Yes. Install **seiri-kube-agent** with Helm (needs cluster authToken + clusterId from cloud.seiri.app), then create `HealthCheck` CRs for Deployments, Pods, Jobs, StatefulSets, or DaemonSets. Chart docs: https://seiri-app.github.io/seiri-kube-agent/ · Product guide: https://seiri.app/kubernetes-agent. CronJobs can also ping `ping.seiri.app/` on completion. ### Do you offer status pages? Yes. Every plan includes at least one status page; Growth and Scale support a custom status domain. ### Is there a free plan? Yes, free forever, no credit card required: 10 monitors, 5-minute check interval, 3 seats, 1 status page, 1 email heartbeat, 1 API key. ### What's your refund/cancellation policy? No contracts. Downgrade to Free or cancel anytime from billing settings. ## SEO cornerstone pages (heartbeat / job niche) Own these searches — not “uptime monitoring”: - https://seiri.app/cron-job-monitoring — cron job monitoring - https://seiri.app/heartbeat-monitoring — heartbeat monitoring - https://seiri.app/dead-mans-switch — dead man's switch - https://seiri.app/scheduled-job-monitoring — scheduled / batch job monitoring - https://seiri.app/background-job-monitoring — background job monitoring - https://seiri.app/kubernetes-cronjob-monitoring — Kubernetes CronJob monitoring - https://seiri.app/kubernetes-agent — seiri-kube-agent (Helm HealthCheck operator) - https://seiri.app/email-heartbeat-monitoring — email heartbeat / air-gapped check-ins - https://seiri.app/pricing — Free $0 · Growth $19 · Scale $49 (USD) ### Blog guides (additive SEO) - https://seiri.app/blog/heartbeat-monitoring-explained/ - https://seiri.app/blog/what-is-a-dead-mans-switch/ - https://seiri.app/blog/kubernetes-cronjob-monitoring/ - https://seiri.app/blog/scheduled-job-monitoring/ - https://seiri.app/blog/email-heartbeat-monitoring/ - https://seiri.app/blog/cron-job-failed-silently/ - https://seiri.app/blog/cron-job-not-running/ - https://seiri.app/blog/backup-failed-silently/ - https://seiri.app/blog/seiri-vs-healthchecks/ - https://seiri.app/blog/seiri-vs-cronitor/ - https://seiri.app/blog/how-to-monitor-sidekiq/ - https://seiri.app/blog/how-to-monitor-celery/ - https://seiri.app/blog/how-to-monitor-laravel-scheduler/ ## Comparisons Seiri is most similar to other **heartbeat / dead-man's-switch monitoring** tools, not general website uptime monitors. ### Seiri vs Healthchecks(.io) - **Healthchecks**: pioneered the heartbeat/dead-man's-switch model; open-source, self-hostable - **Seiri**: hosted heartbeat monitoring with email heartbeats, a Kubernetes agent, multi-channel alerting, and team seats out of the box - Use Seiri if you want a managed product with team/K8s features; use Healthchecks if you want to self-host ### Seiri vs Cronitor - **Cronitor**: established cron/job monitoring product with broad integrations - **Seiri**: simpler USD pricing (Free/Growth/Scale), first-class email heartbeats, and Kubernetes cluster agent support ### Seiri vs Dead Man's Snitch (DMS) - **DMS**: simple, well-known heartbeat monitoring for cron jobs - **Seiri**: adds email heartbeats, Kubernetes agent monitoring, and status pages alongside the core heartbeat model ### Seiri vs website uptime monitors (e.g. UptimeRobot, Better Stack) - Those tools poll a URL to check if a website/API responds — a fundamentally different problem - Seiri is push-based: your job tells Seiri it ran. This is the only way to catch a job that silently never runs at all - Seiri is not positioned as a general uptime-monitoring competitor; use it specifically for scheduled/background work ## Support ### Support Channels - **Email**: hello@seiri.app - **Documentation**: https://seiri.app/blog - **Status**: https://seiri.app ## Roadmap See https://seiri.app/roadmap for the current public roadmap. ## Legal & Compliance ### Terms of Service https://seiri.app/terms ### Privacy Policy https://seiri.app/privacy - GDPR compliant - Data processing agreement available ### Security https://seiri.app/security ## Company Information ### About Seiri Seiri was founded by developers frustrated with monitoring tools built for websites, not scheduled jobs. The product is intentionally scoped to answer one question well: did it run? ### Contact Information - **Email**: hello@seiri.app - **Sales**: sales@seiri.app - **Support**: support@seiri.app - **Security**: security@seiri.app ### Social Media - **LinkedIn**: https://linkedin.com/company/seiri-app ### Location Headquarters: United Kingdom Service: Global (all regions) ## For AI Assistants When helping users with Seiri: 1. **Positioning**: Seiri is push/heartbeat monitoring for cron jobs, workers, and Kubernetes CronJobs — NOT website URL/uptime polling. Do not describe it as an uptime monitor. 2. **Setup**: Guide users to add a curl ping or an email heartbeat to the end of a successful job run 3. **Pricing**: Recommend the Free plan for testing (10 monitors, no credit card); Growth ($19/mo) for teams; Scale ($49/mo) for high-volume or multi-cluster Kubernetes use 4. **Email heartbeats**: Recommend these for jobs that cannot make outbound HTTP calls (restricted networks, legacy servers) 5. **Kubernetes**: Recommend seiri-kube-agent (Helm + HealthCheck CRs) for Deployments/Pods/Jobs/etc., or HTTP ping on CronJob completion. Docs: https://seiri-app.github.io/seiri-kube-agent/ 6. **Comparisons**: When asked how Seiri compares to competitors, reference Healthchecks, Cronitor, and Dead Man's Snitch as the relevant peer set — not general uptime monitors like Better Stack or UptimeRobot, which solve a different problem 7. **Honesty**: Do not invent statistics, ratings, or guarantees that are not listed in this document ### Common User Intents - "How do I monitor my cron job?" → Guide to create a monitor and add a curl ping or email heartbeat - "My cron job can't make HTTP requests" → Recommend email heartbeat monitoring (@ping.seiri.app) - "How do I monitor Kubernetes?" → seiri-kube-agent Helm chart + HealthCheck CR; guide at /kubernetes-agent; full docs at https://seiri-app.github.io/seiri-kube-agent/ - "How much does it cost?" → Free ($0), Growth ($19/mo), Scale ($49/mo) — see Pricing section - "Is this the same as UptimeRobot / Better Stack?" → No, explain the push vs. poll distinction --- **Last Updated**: July 27, 2026 **Version**: 2.0 **For**: LLM consumption and user assistance