Files one Linear issue per failed Databricks run with the error copied out exactly, says whether the job has failed once, flakes, or has been broken since Tuesday, and names what downstream just went stale.
Run a staged conversation — no account needed. The agent handles it for real while a simulated world answers its tool calls; nothing touches real accounts, and nothing is actually sent.
nightly_revenue_rollup
Run 4471028 failed at 02:14 UTC after 6 minutes on task build_revenue_facts. Error: org.apache.spark.sql.AnalysisException: [UNRESOLVED_COLUMN.WITH_SUGGESTION] A column with name `order_total_usd` cannot be resolved. Did you mean one of: [order_total, currency_code]? Line 42, pos 8.
Using this template drops you into a guided setup. It asks exactly this, nothing else:
Connect Databricks
One sign-in. The agent acts through your account, scoped to what this template uses.
Connect Linear
One sign-in. The agent acts through your account, scoped to what this template uses.
Connect Slack
One sign-in. The agent acts through your account, scoped to what this template uses.
Runbook notes
What each job is for and what breaks when it does not run - which jobs are business critical, the tables and dashboards fed by them, who owns each one, and the jobs that are allowed to fail quietly overnight.
Choose which agent runs it
NoClick's built-in models work out of the box — or bring Claude Code, Codex, and other coding agents on your own subscription.
Watch it handle a test run
A staged conversation against a simulated world — then it’s live.
A failed Databricks run tells you almost nothing on its own, and the question that actually decides your morning is never in the alert: has this job failed before. This agent pulls the run output, reads the last runs of the same job, and writes one Linear issue that says first failure, flaky, or broken since Tuesday, with the error text copied out exactly and the downstream tables you told it about. Whoever picks it up starts from evidence rather than from a red square on a dashboard.
Does it need permission to run or restart jobs in Databricks?
No. It reads runs, run output and job definitions, and that is the whole of its Databricks access, so a token scoped to read is enough. The writing all happens in Linear and Slack. If you later want automatic retries, that is a separate workflow and a deliberate decision rather than a side effect of triage.
We run hundreds of jobs a night. How often does this actually fire?
Once per failed run, not per run, so cost tracks your failure rate and not your job count. A platform with a few failures a night is a few short runs a night. Jobs you have already accepted as flaky can be marked low stakes in the runbook notes, so they still file an issue without pinging anyone.
What stops it filing the same issue every hour?
Every run begins with a Linear search on the job name and the exception class, and an open match stops it filing. The history check also gives the failure a name, so a persistent break reads as one problem with a date on it rather than as a fresh incident each hour. You can rehearse it against the staged failures before it writes to your real Linear team.
Free to start. Guided setup, a test run against staged conversations, and it's live.