Skip to main content

Every feature, in one place.

CronDoctor isn't a checkbox monitor. Here's the full list of what ships today — what we detect, how we diagnose, where we notify, and what makes it pleasant to operate for years.

Detect

Know the moment a job stops running — and catch the ones that hung partway.

  • Smart cron normalizer

    Paste any cron format you have lying around. We translate.

    @daily, Quartz 6/7-field, AWS cron(), Jenkins H, ?, seconds-based — all normalized to a standard 5-field expression on save.

  • Three signal levels

    A bare ping, an exit-code-and-duration ping, or a full payload with stderr. You choose how much your job tells us.

    Signal 1 is one curl line. Signal 2 adds query params. Signal 3 POSTs JSON. All hit the same endpoint; richer signals enable richer diagnosis.

  • Stuck-job detection

    Catch jobs that started but never finished. Not just jobs that crashed — jobs that hung.

    Send a `start` ping when your job begins and an `end` ping when it finishes. We alert if `end` doesn’t arrive in your expected window.

Diagnose

Don't just get alerted. Get an answer.

  • AI root-cause diagnosis

    GPT-4o-mini reads your stderr and tells you what went wrong. Not an alert — an answer.

    Confidence scores included. Disclaimers shown when confidence is low. PII redacted before any data leaves our infrastructure.

  • Knowledge base + AI fallback

    Common errors get instant free answers from a curated knowledge base. Unusual errors route to AI.

    ~30–40% of failures match the knowledge base for $0 cost and zero added latency. The rest get full GPT diagnosis with an 8-second timeout fallback.

  • Alerts include the diagnosis

    The AI summary lands in your Slack/email/PagerDuty alert. You don’t click through to read it.

    Severity, root cause, suggested fix, and confidence score appear inline in every channel’s alert payload. Confidence below 70% is surfaced explicitly.

Notify

Reach you the way you want to be reached, with thresholds that learn each job.

  • Every channel, every account

    Email, Slack, Discord, Microsoft Teams, PagerDuty. All five included on every account. No tier upsells.

    Configure once in Settings. SSRF protection on webhook URLs. 10-second per-channel timeout so a slow integration doesn’t block the others.

  • Adaptive thresholds

    Each job’s normal duration is learned, not configured. Slow runs alert before they become outages.

    P95 baseline + 20% buffer kicks in after 10 successful runs. Pro users can configure percentile and buffer per monitor.

  • Job health warnings

    Job exited with code 0 but printed errors? We can flag that as a soft warning, not just a clean success.

    Configurable per monitor via the "Detect problems in successful jobs" toggle (on by default). Distinct severity tier so warnings don’t fight critical alerts for attention.

Operate

A monitor you can actually run for years without it becoming the thing you have to babysit.

  • Per-job pricing

    First job is free. Each additional job is $2/month, prorated. No tier upsells, no minimum commitment.

    You pay for what you watch. Pause monitors during maintenance windows; the bill drops the moment the count drops.

  • Status badges

    Embed an SVG status badge on your README, status page, or internal dashboard.

    One URL per monitor. Returns up/down/late/paused in real-time with cache headers tuned for live status pages.

  • Pause without uninstalling

    Maintenance window? Pause the monitor for a day. We stop alerting; the curl line in your job stays where it is.

    Paused monitors continue receiving pings and recording history; we just don’t alert on missed ones. Resume in one click.

  • PII redaction before AI

    Stderr is scrubbed for credentials, tokens, and emails before any of it leaves our infrastructure for AI diagnosis.

    9-pattern scrub: AWS keys, GitHub PATs, JWTs, URL credentials, password=, api_key=, Bearer tokens, JSON-style "password":"…", and email addresses.

  • Always-200 ping endpoint

    Our ping endpoint never returns an error to your job. If our DB is down, your script doesn’t notice.

    Returns 200 OK on every ping — even invalid monitor IDs, disabled monitors, or upstream outages. Failures are logged server-side without affecting your job’s exit code.

  • Endpoint protection

    Lock a monitor to your job alone. Optional per-monitor token; pings without it are rejected at the door.

    Token generated once at monitor creation, accepted via URL param or `Authorization: Bearer` header. Unauthorized attempts log as security events for after-the-fact review.

First job free. $2/month for each additional.

No tier upsells. No minimum commitment. Pay for what you watch.

Name the one job that's been bugging you →