Keep your cron.
We verify results.
One curl line. Zero execution changes. Stop writing alert connectors.
14-day free trial · No credit card required
Monitor Everything in One Place
Real-time status updates and instant alerts for all your cron jobs
Active Monitors
4 monitorsDaily Backup
Expected every 24h
Database Sync
Expected every 1h
Report Generator
Expected every 6h
Health Check
Expected every 5m
The uncomfortable truth
Most cron jobs don't fail loudly.
They succeed… incorrectly.
zero rows processed
partial data
wrong counts
outdated results
skipped logic paths
And no alert fires.
Why existing monitoring tools fail here
Plain webhooks (Discord / Slack)
- • You must write your own connectors
- • Logic buried in scripts
- • No shared state
- • No recovery
- • No "job didn't run" detection
- • Every script behaves differently
After 10 jobs: "I don't remember which script checks what."
DeadManPing = Stop writing connectors. One curl line. Rest in the dashboard.
Error monitoring tools
- • alerts only on exceptions
- • requires code-level decisions
- • thresholds = deploys
- • no concept of "wrong result"
If your job returns count = 3 instead of 100, error trackers are silent.
Binary ping monitors
- • binary signal: ping or no ping
- • job ran ≠ job succeeded
- • zero awareness of results
"The cron ran" is not the same as "The cron did its job."
Job schedulers (Jenkins, Airflow)
- • Require migration from cron
- • GUI-based configuration
- • Vendor lock-in
- • Complex setup and maintenance
DeadManPing works with your existing cron. No migration needed.
What DeadManPing is NOT
DeadManPing is not a job scheduler
DeadManPing does not run your jobs
DeadManPing does not replace cron
DeadManPing does not touch execution
DeadManPing only observes the effects of execution
What DeadManPing does differently
DeadManPing separates execution from evaluation.
Your cron runs your scripts.
Your scripts send facts.
DeadManPing decides if that's OK.
What You DON'T Need to Build
Connectors to Slack/Discord/Email
Everything is in the dashboard
Logic to check if job executed
DeadManPing does this automatically
State management
DeadManPing tracks state changes
Recovery logic
Alerts only on state change, no spam
Monitoring dashboard
Everything in one place
Payload validation logic
Rules in UI, not in code
Stop writing alert connectors. One curl line. Rest in the dashboard.
How It Works
Add one line at the end of your existing script
Cron runs your script. Your script executes logic and collects data. At the end of your script — one curl line with data from execution.
Important: Curl must be INSIDE the script, not in the cron line, because only in the script do you have access to variables from execution results.
# sync_users.sh
#!/bin/bash
users_synced=$(./sync_users_logic.sh)
if [ $? -eq 0 ]; then
curl https://deadmanping.com/ping/abc123 \
-H "Content-Type: application/json" \
-d "{\"success\": true, \"count\": $users_synced}"
else
curl https://deadmanping.com/ping/abc123 \
-H "Content-Type: application/json" \
-d '{"success": false}'
fi# In crontab: */5 * * * * /path/to/sync_users.sh
- • No SDKs.
- • No branching logic.
- • No alert decisions in code.
- • Data comes from execution, not hardcoded.
Define rules in the dashboard
Example rules:
- •
success == true - •
count >= 100 → OK - •
count < 100 → WARN - •
no ping for 15 min → FAIL
Change rules anytime. No redeploys.
Get state-aware alerts
DeadManPing tracks transitions:
- • OK → FAIL
- • FAIL → OK
- • job didn't run
- • result degraded but not broken
No spam. No silence.
Real-World Examples
Different types of verification that DeadManPing can monitor:
File Verification
Check if backup file exists and size (GB)
if [ -f "$BACKUP_FILE" ]; then
FILE_SIZE_GB=$(du -h "$BACKUP_FILE" | ...)
curl ... -d "{\"file_exists\": true,
\"size_gb\": $FILE_SIZE_GB}"
fiStatus Verification
Success/failure with context
if ./backup.sh; then
curl ... -d "{\"success\": true,
\"backup_size\": \"$SIZE\"}"
else
curl ... -d "{\"success\": false,
\"error\": \"$ERROR\"}"
fiDuration Verification
How long script execution took
START_TIME=$(date +%s)
./generate_report.sh
DURATION=$((END_TIME - START_TIME))
curl ... -d "{\"duration_seconds\": $DURATION}"Threshold Verification
Numeric values (more/less than X)
FILES_DELETED=$(./cleanup.sh | wc -l)
curl ... -d "{\"files_deleted\": $FILES_DELETED}"
# In dashboard: files_deleted >= 10 → OK, < 10 → WARNCount Verification
How many records/items were processed
RECORDS_PROCESSED=$(./sync.sh | grep -c "synced")
curl ... -d "{\"count\": $RECORDS_PROCESSED}"Key Differentiators
Result-aware monitoring
We monitor outcomes, not just execution.
Declarative rules
Rules live in the UI, not inside scripts.
Built-in recovery logic
Alerts fire on state change, not every run.
Missing-run detection
If your cron never executes — you still get alerted.
Zero custom logic per customer
Same payload schema. Same evaluation engine. No support burden.
What You Get
| Feature | DeadManPing |
|---|---|
| Detect job didn't run | ✓ |
| Inspect job results | ✓ |
| Payload-based rules | ✓ |
| Thresholds in UI | ✓ |
| OK → FAIL tracking | ✓ |
| Requires SDK | ✗ |
| Requires code logic | ✗ |
Integrate with Your Workflow
Get alerts where your team already works
Discord
Real-time alerts in your Discord channels
Slack
Notifications directly in your Slack workspace
Instant email notifications for critical alerts
Simple, Transparent Pricing
14-day free trial • No credit card required
Who This Is For
Built for:
- • backend developers
- • solo founders
- • infra & ops
- • data pipelines
- • maintenance & batch jobs
Not for:
- • realtime apps
- • error debugging
- • APM
- • log aggregation
DeadManPing is not an error tracker.
It's a job outcome verifier.
Error trackers tell you when your job crashed.
DeadManPing tells you when it succeeded… incorrectly.
Stop trusting green checkmarks.
Monitor results, not assumptions.