← Writing

I Automated 8 Apps with AI Agents. The Hardest Thing to Automate Was Patience.

· 6 min read

TL;DR: I built AI agents to help run eight apps. They can spot problems, prepare changes, and keep experiments moving. The part I did not expect was this: the most useful thing they do is sometimes tell me to wait.

On July 11, one of my apps had spent $35.86 on ads that month. It had 25 taps and 9 installs. It had not produced a single trial or purchase.

The system paused the campaign.

That sounds like a small thing. But it represents the part of automation I have found hardest to build. It is easy to make an AI agent do more work. It is much harder to make it leave something alone long enough for me to understand what happened.

I tend to want movement. More posts. More keyword changes. More tests. More apps moving at once. I built this system partly because that instinct is useful, but only up to a point. If I change everything every few days, I am not learning faster. I am just creating a mess I cannot explain later.

The system is not trying to be busy

I run eight iOS apps by myself, with AI agents helping with research, content, app-store updates, and checking results. They can prepare a new screenshot, notice an ad that is not working, or flag a keyword that might deserve attention.

But every change gets treated like an experiment. Before the system touches something, it asks two very normal questions:

  1. Can I actually measure whether this worked?
  2. Did I wait long enough to understand the last change?

If the answer to either one is no, the next action is usually nothing.

I call that a cooldown. It is just an enforced waiting period. After changing an App Store screenshot, for example, I give it time to collect enough real traffic before changing it again. With a low number of installs, the wait is even longer. Otherwise I could convince myself that a new screenshot helped when the difference was really just random noise.

This is not about being slow. It is about not confusing activity with progress.

What $97 taught me

In June, I started running Apple Search Ads for Jobim before I had proper tracking in place. People were tapping the ads and installing the app, but I could not reliably see whether those people started a trial or became subscribers.

I spent $60.89 in June, then another $35.86 in July before I fixed it. Under $100 is not a dramatic disaster. Still, I had no honest answer to the only question that mattered: did that money work?

Receipt: "RENOLABS ASA LLC. June 2026 ad spend: $60.89. Could I measure trial starts? No. Measurable result: $0."

I had already written down the rule: do not run ads until I can connect them to a real result. I ignored it because I wanted to get started.

That was the useful mistake. I did not need a smarter prompt. I needed a system that could stop me from doing the obvious thing too early.

Now, before an experiment spends money or makes a public change, it needs a clear way to be measured. If that is missing, the work is not “run the campaign anyway.” The work is to fix the measurement first.

More effort can give you less information

I made the same mistake with TikTok.

For Jobim, I posted three times a day because I thought more volume would bring more customers. I had read enough to know it was not that simple. I still did it.

The problem was not only that the extra posts might not work. Three posts in one day also made it harder to tell which idea was working, if any of them were. If one post performed well, was it the hook? The topic? The timing? Or did the others hurt it by competing for the same audience?

For Day One, I later settled on two posts a day instead of three. It was not a claim that two is the magic number. It gave me a cleaner signal. I could compare formats, learn something, and then decide what to try next.

That is a much less exciting answer than “post more.” It is also more useful.

The same thing happens with App Store keywords. One expensive install does not mean a keyword failed. A keyword with no taps is not a failure either. It means I do not know yet. The system has a minimum amount of activity before it is allowed to make a call. Until then, it waits.

Sometimes the right decision is to stop before starting

The hard cases are not always about waiting for more data. Sometimes the experiment cannot run yet.

When I launched Riff, there were obvious things I wanted to try: TikTok content and ads. But the app did not yet have a reliable way to show that a new user had started a trial or made a purchase. Running marketing before fixing that would repeat the Jobim mistake.

So the decision was to hold. Not because I do not want growth, but because I want to know if the growth is real.

StitchSnap had a different problem. Its content experiment stalled because I ran out of good source photos. The system could have kept making posts anyway. They would have been repetitive, and I would have learned very little from them. The right next step was to rebuild the input, not force another experiment through a broken process.

AI is very good at continuing. That is why I have to be explicit about when it should not.

The rule I keep coming back to

This is the whole idea in plain English:

Before you change something, make sure you can measure the result. Then wait long enough to read it.

If I cannot measure it, I fix that first.

If I can measure it but have not given it enough time, I wait.

Only then do I make the next change.

Decision tree: Before changing something, can I measure the result? If not, fix that first. If yes, have I waited long enough? If not, wait. If yes, make the next change.

It is a simple rule, but it pushes against my natural instinct. I like building. I like trying things. I like seeing the system move.

But learning is the actual point. A system that makes a hundred changes without giving me a clear answer is not helping me. It is just moving faster than I can think.

I am still trying to remove myself from the work that does not need me. I do not think the goal is to have agents do everything while I disappear. The goal is to make sure the things I do are the things that need judgment.

Sometimes that judgment is deciding what to try next.

Sometimes it is having the patience to let the last thing speak first.


I write about building and running iOS apps with AI agents. The larger system behind these experiments is covered in I Built a System That Runs My Solo App Business Almost by Itself.