11,000 runs a week, zero work done. What the logs showed after every scheduled agent job came back on: 10,080 runs a week from one recovery job set to every minute, 1,440 empty calls a day each returning disabled, about 1,000 runs a week from two Slack pollers finding no answers, and zero outputs a person read or used.

Hi everyone,

Two issues ago I promised you a split. Nine trial agents and a Monday review. How many stayed on, how many went back a step.

I never ran that review. I did something else with the nine, and I will tell you what below.

First, the thing I found when I switched the fleet back on.

11,000 runs a week, doing nothing

On August 14 I paused every scheduled agent job we had. Twenty-five schedules went down to one. I wrote at the time that I was not using the agents. Nothing should run until the job was clear.

On Saturday September 12 I turned the whole fleet back on. Then I read the logs.

One recovery job was set to run every minute. That is 10,080 runs a week. Every single one returned "disabled" in a few milliseconds. The feature it protects is switched off in production. 1,440 empty calls a day.

Two more jobs polled Slack every ten minutes. They were looking for answers that were not there. About 500 empty heartbeat rows in three and a half days. Call it 1,000 runs a week.

Add it up. About 11,000 runs a week. Zero work done.

Here is the part that bothers me. In issue #231 I told you about a watchdog. It reported healthy for 20 days while it was dead. These jobs were the opposite. They reported busy for days while doing nothing. Both dashboards looked fine. Both were wrong.

A schedule is not a job. A job has a trigger, a result, and someone who reads the result. A schedule just has a clock.

What I changed

On Tuesday I shipped two fixes.

The recovery job now runs every five minutes. 288 calls a day instead of 1,440. It still catches what it needs to catch. The app wakes that worker on demand anyway. The cron was only ever a safety net.

The two pollers stopped polling. Drafting now starts when someone clicks the Done button in Slack. The daily pass at noon is a catch-net for anyone who typed "done" instead. About 1,000 runs a week became about 35.

Same output, a fraction of the runs. Runs per week before and after each job got a trigger instead of a clock: the recovery job went from 10,080 to 2,016, the two Slack pollers from about 1,000 to about 35.

Two pull requests, one afternoon. The whole change was a schedule string and a button handler.

Nothing in the output changed. The same drafts land in the same place. The only difference is that the log now shows work, and only work.

If you run scheduled AI jobs, open one log this week. Count the runs. Count the outputs a human actually used. If the second number is zero, the schedule is the job.

So what happened to the nine

The vote never happened. Here is what happened instead.

Every seat came back, on a lighter schedule. Twenty-six scheduled jobs today, most of them once a day or once a week.

And I gave them a boss. Mia, my chief-of-staff agent, now owns the roster. Four rituals sit around it. A daily approvals digest, where the queue depth is the health signal. A Friday fleet review with a per-seat run table. One seat a month checked against its own brief. Cost against contribution every quarter.

The split was the wrong question. I stopped asking which nine pass. I started asking who checks them, and when.

That is the honest end of the promise. No numbers, because there was no vote to count.

A three-hour job that now takes five minutes

One of our programmes finishes its first cohorts this week. A private equity firm, four cohorts, close to 300 people, since late June.

Two things stood out as it wrapped.

The recordings did real work. Two senior people wrote in without being asked. One was on annual leave. One had missed the first session. Both said the same thing. The recording let them catch up.

And the jobs that went first were the small, interrupted ones. One person built a skill in about ten minutes. It pulls receipts out of a PDF and drops them into the monthly expenses sheet. She said the job would have taken three hours. Mostly because she would have been interrupted. It now takes five minutes.

Nobody measured that job before. It was too small to put on a slide.

What is the three-hour job on your team that nobody has ever measured?

OpenAI Select Partner

Last week OpenAI named AI Operator an OpenAI Select Partner.

What it changes for the reader: most ChatGPT rollouts I see stall by week three. The seats get bought, the training happens, and people drift back to the old way. The partner track puts our training closer to the source for that problem.

What it does not change: we still pick the model for the job. About 15 of our own agents run on Claude, including the ones in this issue.

New on YouTube

I published a video on Thursday: Why AI Adoption Fails: Buying Tools Isn't Enough. It is the argument behind the paragraph above.

One thing to try this week

Pick one scheduled AI job. Open its log.

Count the runs in the last seven days. Then count the outputs a person actually read or used.

If the second number is zero, give the job a trigger instead of a clock. A button. A new file. A reply. Something that means there is work to do.

Count the runs, in three steps: count the runs in the last seven days, count the outputs a person read or used, and if the second number is zero give the job a trigger instead of a clock.

Save this for the next cron you inherit.

Another couple

Something personal to close.

Another Couple, In A New Life. The single cover: Tim in an orange sequin robe, Becky in a blue one, by a pool in the sun.

In A New Life, out September 28. Cover shot at home, no AI anywhere near it.

Twelve years ago I was DJing at a friend's garden party in Essex. A girl came and danced in front of the decks. Twelve years and two kids later, we are still together.

I was a sound engineer back then. I had a studio, an online radio station, a lot of late nights. We made her first EP in that studio.

Then we spent ten years failing to make music together. We could dance together, rave together, raise kids together. We could not finish a track.

A New Year's Eve a couple of years ago changed that. We played a 45-minute live set at a private party. Her on guitar and vocals, me on the machines, our own songs. That night we understood we could do this.

So we started a band. We called it Another Couple, because that is what we are. Our first single, In a New Life, comes out on September 28. You can pre-save it here. The teasers are on Instagram.

One rule. No AI in the music. Becky will not have it, and I agree with her. I build with AI all week. This is the thing I keep for us.

The real reason we did it is the kids. We want them to see their parents follow a passion, badly at first, in public.

What is the thing you do that AI does not touch?

Hit reply and tell me. I read every reply, and our conversations help shape the newsletter.

Thanks for reading.

Tim