Rejected by AdSense a Fifth Time, I Made Our Entire Multi-Agent AI Operations Architecture Public: 15 Modules Built by a Designer Who Can't Read Code, After Six Months of Arguing with AI
Article last updated: 2026-10-16
I’m the founder of AMPM, and the only human in this whole system.
A few days ago Google AdSense emailed me again. Fifth time. Same familiar line: “Low value content.”
Honestly, I wasn’t surprised. The internet is full of AI tool directories that scrape a few pages, slap on a template and go live. If I were the review bot, I’d probably file this one under “yet another site hoping to coast on clicks,” too.
But if all I wanted was ad money, I really wouldn’t have put myself through this.

Confession first: the founder draws for a living and can’t read code
I’m a designer. A terminal full of white-on-black text makes me dizzy, and I genuinely cannot read programming syntax.
Everything on this site, from setting it up, writing the code, scheduling jobs and publishing, all the way to the article you’re reading now, was done by AI while I talked. No engineer friends, no contractors. Just me and AI, arguing one sentence at a time, for six months.
I’m basically the site foreman. I say what I want, it builds something, I send it back when it looks wrong, and it tries again. It can write code and run tests, but it has no idea what “a reader can actually follow this” means. That part only happens because I keep shouting about it.

The day of rejection number five, I decided to show the insides
If everyone assumes tool sites are black boxes, fine. I’d move the server’s live activity right out to the front door.
That’s how the “AI at work, live” page came about. Which programs run behind the site, what they’re doing right now, where something went wrong and how it was handled: it refreshes every 5 seconds, straight from the server’s run records.

Every number up there is what actually ran at that moment: how many runs today, how many failed, which problem hasn’t recovered yet. The flattering and the unflattering are both on display. I didn’t pick.
What the machine looks like

The whole machine has 15 modules arranged in five steps, and a piece of work moves from left to right.
On the far left is collecting. Every day the Sensor brings in outside news, official prices from each vendor’s site and what people are searching for. Then comes deciding: the Scheduler wakes everyone up on time like an alarm clock, and the Controller decides what to write first and which prices have enough evidence to be stamped as confirmed. There’s also a module called “Evolution” that reviews results and tunes the next round within fixed rules. To be clear, it does not grow new features on its own. It just has a grand name.
In the middle is doing the work. The Engine runs each job safely and keeps a record, and Production writes columns and updates tool pages. All tool data lives in one master copy that everyone reads from, and nobody is allowed to quietly keep a private version.
Then comes verifying, the part that makes me feel safest. The Interlock means nothing gets written without a work order and nothing goes live unless the guard says yes. Inspection checks formats, price evidence and links. The Monitor patrols every few minutes and alerts a human when something’s off. On the far right is keeping records: the Logbook writes each lap into memory, and Cleanup clears out old backups so the machine doesn’t bury itself.
In the middle of it all sits an AI on duty called “Heiyao.” It hands out work, collects results, and wakes up anything that gets stuck.

Honestly, only 5 of the 15 are complete
That sounds impressive, right? But I had the AI check every module against the architecture inventory we made in early October, one by one, and the result is a little funny. Only five are complete and running steadily every day: the Scheduler, Interlock, Monitor, Console and Production. The other ten all “run, but are missing a piece.”
A few of the more awkward ones: the signals the Sensor brings in are currently just written into memory, and no other module picks them up yet. It’s like someone faithfully collecting the mail every day and leaving it unopened on the desk. The Repair module has been wired up for a while, but as of today there isn’t a single confirmed record of “something broke, then it fixed itself.” The Evolution module adjusts how topics are weighted, but the part where it checks whether readers actually click and learns from that isn’t connected yet; it can change data and topic choices, not code or rules. And the Logbook keeps three separate memories that aren’t in sync, like one person using three notebooks that all say different things.
So if you ask me, “Is this an AI that gets smarter on its own?” my answer is: not yet. It’s a machine that follows a timetable, gets blocked, and gets caught making mistakes. The smart part is still slowly growing.
So what does it actually do all day?
There are more than a hundred scheduled jobs in there, like a long row of alarm clocks. The hardest worker is the Patroller, which handles scheduled patrols and anomaly monitoring: it keeps checking whether the site or any program is broken and raises the alarm when something is. A status check regularly confirms that each module is still running, and the topic planner keeps doing laps, tidying memory, looking at what people are searching for and deciding what to write next. The failure patroller sorts the failures and flags the ones that keep coming back. The writer handles scheduled content generation and quality checks, and nothing it writes is released until it clears a stack of automatic checks.
About price checks, I’ll be straight with you too: the program that reads official pricing pages does periodic price verification and cross-checking, looking at only part of the tool list in each round. It does not re-check everything in one go. Slots are limited, which is why every page shows a “last checked” date so you can judge how fresh it is.
Before any change goes live, it has to pass close to 20 automatic checks and then the guard. My own live page got stopped by the guard once today, so I can promise you it really does block things. It isn’t there for decoration.
How it was made today, unedited
The live page wasn’t built in one go. This one work order alone went live more than a dozen times today, from a little after 8 a.m. to past 3 p.m.
It started with one question: “Can these AIs get job titles? How far along is each one?” The AI built a first version in Chinese, English and Japanese. Around noon I opened it and replied, “Nothing’s moving. I can’t tell what it’s doing,” so it added a moving network diagram. Then I asked, “Why does everything go the same direction? Shouldn’t finished work come back?” and it made the beams go out when work is handed out and come back when it’s handed in. I said, “Nobody can understand these messages,” so it cut the jargon and rewrote every program’s update as one plain sentence. In the afternoon I sent over a dashboard mockup, and it rebuilt the whole page to match. Finally I said, “The explanations down there are way too long. Nobody will read them,” and it trimmed every box down to a single sentence.
The AI wasn’t exactly flawless either. It turned “11% more than yesterday” into “142% more than yesterday” because it missed yesterday’s log files, which get moved overnight; it recounted another way, caught the mistake and fixed it itself. It sent three checkers to audit its own work, and one of them accidentally grabbed an extra work-order number, which then had to be logged as an “empty number.” It tweaked a table’s column widths and squeezed the ticket numbers out of sight, so it had to ship once more to fix that. And the last version even got stopped by the guard once: a backup was being packed while another program was writing files, the guard won’t publish without a complete backup, and so it waited politely for the next slot.
I don’t see a reason to hide any of this. Making mistakes, getting caught, fixing them and keeping a record is exactly what this system does every day.
What still doesn’t work, and what goes wrong
We promised not to hide anything, so this part gets its own section. At 8 a.m. today, the “Spend guard” noticed that server AI usage had gone over the free tier for one day, with an estimated cost of US$0.07. That’s pocket change, but it still turned the light amber, and it was still marked “in progress” when I wrote this.

Plenty still needs a person, too. Going live has to pass the guard and an approval, and logging into accounts has to be me; AI can’t do those. When nothing new is happening, the live page’s animation replays the most recent real record and labels it “Replay,” so it never pretends to be live. And the mockup I gave the AI originally had metrics like “API response time” (how long the server takes to answer). We don’t measure that, so it isn’t there. If we didn’t measure it, we don’t draw it. That’s the line.

Why go to all this trouble?
AMPM’s motto is Ask More, Pay Minimum.
AI subscriptions keep getting pricier, and what this site tries to do is actually simple: check whether official prices quietly changed, whether a “free tier” is really free, and whether there’s a cheaper alternative. So what this system cares about isn’t how many articles it writes. It’s whether the evidence can be found, and whether mistakes get seen.
Finally
As the founder, whether Google approves us this time no longer matters most to me. This thing that runs every day, makes mistakes and gets fixed is the most honest piece of work I can hand to the internet.
It’s rough. A real engineer would probably find plenty to laugh at. If you work in backend or operations and spot something that could be better, I’d genuinely love to hear it. I’ll pass it on to the AI word for word, and then watch it ship a few more versions.
👉 Open the AI at work page and see what it’s busy with right now
Last checked: 2026-10-15
