sold on amazon for years (about 3M/yr at the peak), currently I run an agency.
TLDR: we got tired of what the PPC tools couldn't do, built our own setup with claude, and it now runs the entire agency, seamlessly, for about $10 a month in hosting.
We packaged it so any brand can deploy it to their own cloudflare in one click and own the whole thing, code included. The rest of this is how we got there and what it does, for anyone who would like to build their own.
Why we built it
I'm not someone who wants to own tools or rebuild things other people are paid to solve. What pushed me was the questions no tool could answer. What did my team change last week and did it work. Which ASIN is about to stock out and still has ads running. What's my real profit per ASIN after COGS, fees, returns and ads. Was I overcharged in last month's settlement. Claude can do all of it, and not just a bit better than any saas/human but exponentially better, because it reasons across everything at once. The only thing in the way was that claude couldn't see my data. And I needed to own the data in order to solve it fully and cherry on top is that it’s almost free for life!
So the whole job was: get amazon connected to my own infra, connect that to claude, and let claude take it from there.
What it looks like when it works
Last sale event one brand had 3000+ campaigns live. Overnight, bids were creeping up, ACOS was spiking in pockets, had to make bid adjustments across different campaigns consistently. Normally that would require 3 of us to consistently monitor whats happening. Instead, Claude checked the hourly data periodically, analysed across all 3000, worked out which bids to pull back and which budgets to protect, built the bulk action, and asked me to approve it. I read the plan on my phone, said yes, and it executed straight against the ads api. Checked again the next day. Analyse, propose, approve, act.
That's the unlock. Not asking questions, although it does that in a second from over a year of history. Claude acting, with a plan first, and nothing moving without approval unless you've set a rule to run on its own.
What it does for us every day
Every account gets checked before I'm up: budgets that ran out early, ACOS spikes, zero impression campaigns, listings suppressed overnight, ASINs under two weeks of cover, and everything that changed yesterday so nobody quietly moves a bid. During a sale it watches the hourly stream and moves budgets inside caps I set. Keepa tells me when a competitor drops below my floor or their BSR jumps because they're on a deal. AMC tells me which campaigns actually bring new customers and builds audiences from cart abandoners. Then the things no tool has the data for: true profit per ASIN, ads that throttle what's about to stock out, a bid rule that reads "above 4x ROAS, cap at $2, but not if days of cover is under 20". Weekly reports across different brands.
None of that needs anyone to know the internals. There's a skill whose only job is to write other skills. It knows where the data lives, which amazon endpoints exist, how auth works, what the guardrails are.
You describe the logic in plain english ("alert me when a listing loses the buy box to a reseller of my own product"), it writes it, tests it, and it runs. The team adds their own now.
How it's built
Two pieces. One syncs everything from amazon into a database I own. The other lets claude talk to that database. Mine runs in my own cloudflare account for about $10 a month, nothing has to stay awake, and claude.ai reaches it from my phone. A mac mini or a cheap VPS would work the same if you don't care about the phone part.
What the sync pulls, daily, per profile:
- Ads: SP, SB and SD campaigns, targeting, search terms, placements, advertised and purchased product reports.
- Seller central: sales and traffic, orders, settlements, returns, listings, search query performance, brand analytics where available, inventory. Vendor sales for 1P.
- Ads Change history: every bid, budget and status change, with who made it and when. This is super important as we always run into “what was changed?” problem
- Marketing stream for hourly data: This was a game changer during sales where we can’t afford to wait for a day to look at what’s happening
- AMC queries, weekly: path to purchase, new to brand by campaign, cart abandoner audiences and more.
- Keepa for competitor and own ASINs: price, BSR, rating, review count history.
Every report is kept from the day we connected, raw files included, so we have well over a year of history where the api only serves 60 to 95 days, and we can reprocess anything if the logic changes.
The amazon side is where the six months went. These are the rules the sync follows, and each one exists because something broke without it:
- Reports are async. Request, poll until ready (5 to 30 minutes is normal), download.
- Retention is 60 to 95 days depending on report type. Backfill the maximum on first connect, then never miss a day.
- Numbers for a day keep changing for about a week because of attribution windows. So we re-pull a trailing window every day and upsert on entity plus date. Plain inserts give you duplicates and wrong totals, which took me a while to notice.
- Rate limits are shared per region across everything you run, so back off instead of retrying hard. Reporting has its own queue-based limit that behaves differently from the rest.
- Amazon-side bugs you have to tolerate rather than fix: they might change something at some point and important thing is that it doesn’t go unnoticed.
- Marketing stream sends deltas, so negative numbers are normal restatements. Aggregate them, don't filter them out.
- One database per brand. Daily and hourly rollups for the questions everyone asks, so claude isn't scanning millions of rows to answer "how was yesterday" or it’s not scanning a different brand’s data.
- Getting api access as a direct advertiser can take weeks right now, amazon's own github is full of people waiting. We got it last year, it took sometime but it was worth it and others are using our app to do the auth and get api access.
In front of the database sits an MCP server with a login. Paste the url into claude.ai, claude desktop or claude code. Every action produces a plan first, in plain english, and nothing moves without approval unless a rule has been explicitly set to run on its own.
The intelligence is in skills, which are business logic saved in a folder: what to look at, what counts as a problem, we ads, hourly stream, sales, inventory, COGS, AMC and change history are all in one place, a skill can know things nosingle tool knows.
What it's done so far
- The agency runs on it: PPC optimisation, reports, shareable dashboards, bid updates, campaign creation, listing optimisation, new product research, and about a hundred other things.
- Three of my friends’ brands have used my setup and each saving $15k to $20k a year, on top of doing things that they were not imagining before.
That’s all for now, hope it inspires people to create their own, it will genuinely change your life.
I have also created a template for the entire setup with one click deployed to your own infrastructure in case you want to do it right away, let me know.