Jobs Done
Agents & LLMs: Use the Markdown version of this page for easier parsing.
Cron-as-a-Service

Schedule webhooks. Ship faster.

Jobs Done is a reliable job scheduler. Register once, get an API key, and start firing cron-triggered HTTP callbacks in minutes — no infrastructure required.

Create free account See how it works
Terminal
# Register and get your API key
$ jobs_done user register "My App"
Name:    My App
API Key: jd_sk_8f3e...c21a

# Schedule a daily cron job
$ jobs_done cron create \
    --name "daily-report" \
    --cron "0 9 * * *" \
    --url "https://myapp.com/webhooks/daily"
{"id": 1, "name": "daily-report", "active": true}

Everything you need to ship

A focused feature set — no noise, no vendor lock-in.

Persistent cron jobs

Create, pause, resume, and delete cron jobs live — no redeploys needed. Standard 5-field cron expressions supported.

🔁

Automatic retries

Configure max attempts per job. Failed webhook calls are retried with exponential backoff.

🔑

API key auth

Each user gets an isolated API key. All resources are strictly scoped — you only see your own jobs.

📬

One-off webhooks

Need a single fire-and-forget job? Use POST /api/enqueue or the CLI enqueue command.

📊

Job analytics

Track success, failure, and retry counts per cron job via GET /api/users/me/stats.

📖

OpenAPI spec

Full OpenAPI 3.0 spec at /api/openapi with SwaggerUI included. Integrate in minutes with any language.

Up and running in 3 steps

  1. 1

    Register and get your API key

    One POST /api/users call — or one CLI command.

    curl -X POST https://jobsdone.claudlabs.com/api/users -d '{"name":"My App"}' -H 'Content-Type: application/json'
  2. 2

    Create a cron job

    Pass your webhook URL and a cron expression. We handle the rest.

    curl -X POST .../api/crons -H 'X-API-Key: <key>' \
      -d '{"name":"ping","cron_expression":"* * * * *","webhook_url":"https://myapp.com/hook"}'
  3. 3

    Receive webhooks & check stats

    Your endpoint receives a POST with the JSON body on schedule. Monitor with GET /api/users/me/stats.

CLI & Automation

A CLI built for developers & agents

The jobs_done CLI gives you full control from your terminal, CI pipeline, or LLM agent. JSON output everywhere — pipe it, parse it, automate it.

Key commands

jobs_done CLI
# Register and get your API key
$ jobs_done user register "My App"
Name:    My App
API Key: jd_sk_8f3e...c21a

# Schedule a daily cron (fires at 09:00 UTC every day)
$ jobs_done cron create \
    --name "daily-report" \
    --cron "0 9 * * *" \
    --url "https://myapp.com/webhooks/daily"
{"id": 1, "name": "daily-report", "cron_expression": "0 9 * * *", "active": true}

# List all your cron jobs
$ jobs_done jobs list
[{"id":1,"name":"daily-report","active":true,"next_run":"2026-03-27T09:00:00Z"}]

# Enqueue a one-off job (idempotent — safe to call multiple times)
$ jobs_done jobs enqueue \
    --id "send-welcome-email-user-123" \
    --url "https://myapp.com/webhooks/welcome"
{"logic_id": "send-welcome-email-user-123", "status": "scheduled"}
🤖

LLM & agent-friendly

Every command outputs clean JSON — perfect for piping into jq, scripting in CI, or driving from an AI agent. Pass --output json to suppress any decorative output. The CLI is stateless and reads JOBSDONE_API_KEY from the environment — no interactive prompts in automation mode.

Pricing

Pricing not defined yet.

We are launching soon. Early users will get the lowest possible price -- starting at $1/month.

Ready to schedule your first job?

No credit card required. Start in 60 seconds.