A restaurant client of ours was about to launch a new physical menu, and asked us to update the menu on their website to match.
Fair request. It falls squarely under their maintenance agreement, and it’s exactly the kind of thing we’re here for.
So I did it. They sent photos of the new menu, I had Claude Code do the tedious part, and the website was updated and live the same day. There’s no reason to spend a human hour transcribing menu items by hand when AI does it faster and doesn’t get bored on item forty. The site was correct. I moved on.
Then this landed in my inbox.
”We still have the old menu on the website”
That can’t be right, I thought. I’d checked it myself.
So I asked for a screenshot. What he sent back wasn’t the website at all — it was the menu on his Google Business Profile. Which, I’ll be honest, I didn’t know was a thing restaurants could even put there. To the client, it’s all “the website.” To me, it was a second menu living in a completely different system that I’d never touched.
No problem. New surface, same job. I’ll update it and, while I’m at it, automate it away so it’s never a manual chore again.
That was the plan, anyway.
There is no easy button
Here’s what I found after some research: Google Business Profile gives you exactly two official ways to bulk-update a restaurant menu. One is to connect an integrated point-of-sale system. The other is through their API — which you have to formally apply for and get approved to use.
The POS route wasn’t happening on this timeline. And I’d promised the changes would be done today, which meant waiting on an API approval process was off the table too.
What I had instead was a web form. One menu item at a time. Thirteen sections. One hundred and eight items.
I was not going to do that by hand. Hand-entry was the last resort, the thing I’d do only if every other door was locked and bolted.
Anything can be automated. It’s a budget question, not a possibility question.
I believe this genuinely, and it’s worth saying plainly:
The whole world could be automated. The reason it isn’t is that someone has to decide the automation is worth more than the hours and dollars it costs to build. That’s it. That’s the only real constraint. Most “we can’t automate that” is actually “we haven’t decided it’s worth automating yet.”
For 108 menu items I had one across the line at a place where it was clearly worth it. So I built it.
How it actually got done
I worked out how Google’s form and submission flow behaved, then wrote a Node script using Puppeteer to drive it — filling and submitting each item the way a human would, just without the tedium or the typos.
The interesting wrinkle was the anti-bot layer. Google doesn’t love being automated, which is fair. The way through was enabling remote debugging, which let the script operate the real browser session instead of getting flagged as a robot at the door. A round of fine-tuning later, I had a script that updated the entire Google Business Profile menu — every section, every item — on its own.
The client’s menu was current everywhere it needed to be, the same day, as promised.
Was it faster? Honestly, probably not. That’s not the point.
I’ll be straight with you: building the script took about as long as grinding through 108 items by hand would have.
So why do it?
Because the next time a client has 108 of anything that lives behind a form, I’m not starting from zero — I’m starting from a script. Because “I didn’t know that system existed” turned into “I now know exactly how that system works.” And because the muscle you build solving the annoying one-off is the same muscle that handles the version of this problem that isn’t a one-off.
That’s the actual job here. Not menus. The belief that the tedious thing is a problem to be engineered around, not endured — and the willingness to go prove it on a Tuesday when a faster path didn’t exist.
Automations are also just more fun than data entry. I’m not going to pretend that wasn’t part of it.
Got a tedious thing eating your week that you’re convinced “just has to be done by hand”? It probably doesn’t. Book a blunt audit → and we’ll tell you straight whether it’s worth automating — or whether, this once, the by-hand way actually wins.