From the Kedlin workshop
We built an AI that runs Google Ads β and gave it away.
For small-business owners tired of overpaying agencies or burning budget on bad clicks. It's a Claude Code agent that reads your live account, tells you the truth about what's working, and makes changes with your approval. Free, open source, yours to fork.
Don't feel like reading?
That's the whole point. This tool is "just ask your AI to do it." So throughout this post you'll find buttons like the ones below β click one and we'll copy a ready-to-paste prompt to your clipboard. Paste it into Claude (or your AI of choice) and let it walk you through the step.
The problem: Google Ads is built for big spenders
If you run a small business, you already know the trap. Agencies charge a fat monthly retainer plus a cut of your spend β often more than the ads are worth at your scale β and small accounts tend to get the least of their attention: junior staff, copy-paste campaigns, and no one who really cares whether your money is working. Try to manage it yourself and you're staring at a dashboard built for full-time media buyers, quietly paying for clicks from people searching "how to do it yourself" or "free pickup near me." The platform rewards volume and sophistication, and most owners have neither the time nor the interest to become experts. So money leaks, month after month, and nobody tells you where.
What we built
It's a Claude Code agent skill β a bundle of instructions and helper tools that turn Claude into your Google Ads manager. You run Claude Code inside the project folder, and instead of clicking around a dashboard you just talk to it in plain English:
βReview how my ads performed over the last 30 days. What's working and what's wasting money?β
Claude reads your live account through the official Google Ads API, analyzes it, proposes changes, and β once you say yes β makes them. Here's what it handles:
Performance & ROAS review
Pulls spend, clicks, conversions, cost-per-conversion, and revenue, then tells you in plain language what's earning and what's leaking.
Campaign builds from templates
Spins up a well-structured Search campaign β ad groups, keywords, ads, budget, negatives β from a reusable brief instead of a blank page.
Negative-keyword mining
Reads your search-term report and surfaces the junk queries you're paying for β jobs, DIY, "free," competitors β so you can block them.
Budget & pause management
Recommends what to scale, trim, or pause β and asks before making any meaningful spend change. You stay in the driver's seat.
Optional revenue tracking (advanced)
Feed real completed-sale data back into Google Ads via offline conversions, so the algorithm learns to optimize for actual money earned β not just clicks and form fills.
Three things worth saying up front:
- βYour data and credentials stay yours. Everything runs on your own machine against your own account. Nothing is routed through us.
- βIt asks before spending your money. New campaigns and big budget changes are gated behind a clear yes/no.
- βIt's free and open source (MIT). Use it, read it, fork it, improve it. No seats, no retainer, no lock-in.
We didn't build this in a vacuum. We tested it running real campaigns for a local home-services business β pulling weekly performance, mining negatives out of the search-term report, and feeding real revenue back as offline conversions. This is the tool we actually use, cleaned up and handed over.
Not sure where to start? Let it interview you.
You don't need a marketing plan before you begin. Ask the agent to research your business for you and it starts by interviewing you β a short, pointed set of questions about what you sell, who your best customers are, the areas you serve, what a job is actually worth, and where you make your margin.
Then it does the homework: your market, your competitors, and the search terms real customers use to find businesses like yours. It comes back with a shortlist of recommended campaigns β structured and ready β for you to approve, tweak, or reject. No blank page, no guesswork, nothing spent without your say-so.
A few of the things it'll ask you:
- βWhat do you sell, and which jobs are the most profitable?
- βWho's your ideal customer, and which areas do you serve?
- βWhat's an average job worth β and what would you happily pay to land one?
- βWho are your competitors, and what makes you the better call?
Get started in 3 steps
No coding required. If you can copy a few values into a file and type a command, you can run this. The repo has a full guide for each step β the condensed version is below.
Install Claude Code
Claude Code is Anthropic's tool for talking to Claude from your terminal. You'll need Node.js (grab the "LTS" installer, click through the defaults), then install Claude Code and start it. On first run it walks you through signing in β a Claude Pro/Max subscription or an API account both work.
# install Claude Code globally npm install -g @anthropic-ai/claude-code # then start it (it opens your browser to sign in the first time) claude
Get Google Ads API access
This is the fiddly part β but you only do it once. The agent talks to your account through the official Google Ads API, which needs a handful of credentials. You'll create (or reuse) a Google Ads Manager account, apply for a Developer Token (upgrade it from Test to Basic access so it works on your real account), set up an OAuth client in Google Cloud, and generate a refresh token. Those six values go into a .env file:
# copy the template, then paste in your six values cp .env.example .env # .env (digits only, no dashes, on the ID lines) DEVELOPER_TOKEN=your_developer_token CLIENT_ID=your_oauth_client_id CLIENT_SECRET=your_oauth_client_secret REFRESH_TOKEN=your_refresh_token LOGIN_CUSTOMER_ID=your_manager_account_id CUSTOMER_ID=your_ad_account_id
The best part: the agent can generate the trickiest credential β the refresh token β for you. Once you have your Client ID and Secret, just run claude in the folder and ask it to do the login flow. The full API guide covers every screen.
Clone the repo & run it
Download the project (Code β Download ZIP on GitHub, or git clone), move into the folder, and start Claude. Because you launched it inside the project, Claude loads the agent instructions and your .env automatically.
# grab the repo and jump in git clone https://github.com/uwskiguy/claude-google-ads-agent.git cd claude-google-ads-agent # start the agent claude
Then say "Can you connect to my Google Ads account and confirm what account you see?" If it reads your account name back, you're wired up. Head to the day-to-day usage guide.
What a typical week looks like
Once it's running, the agent is just a conversation. It usually gives you the takeaway first, then the numbers behind it. Copy any of these to start β or hit the button to send it straight to your AI.
βReview how my ads performed over the last 7 days. What's working and what's wasting money?β
βPull my search-term report from the last 2 weeks and suggest negative keywords to block.β
βWhich of my keywords are underperforming? Suggest ones to pause or cut, and why.β
βWhich campaigns should I scale up and which should I pause? Explain why.β
βBuild a new Search campaign for [my service] using the template. Target [city/area].β
βIs conversion tracking working on all my campaigns? Are GCLID and UTMs in place?β
Seeing the money: revenue per campaign
Clicks and form fills are easy to count. What actually matters is how much revenue each campaign brought in β and that's the number most small advertisers never see. Their dashboard stops at "leads," so they can't tell a campaign that fills the calendar from one that just fills the inbox. The agent can close that loop.
Point it at your real sales data β a CSV export, your CRM, your invoicing tool, or your books (QuickBooks and the like) β and it matches completed jobs back to the clicks that produced them. Feed that to Google as offline conversions and two things happen: you get honest revenue-and-ROAS-per-campaign reporting, and Google's bidding starts optimizing for money earned instead of cheap clicks.
βHow much revenue did each campaign bring in last month? Which had the best return on ad spend?β
βHere's a CSV of my completed sales with the click IDs. Match them to campaigns and show me revenue and ROAS per campaign.β
βSet up offline conversion tracking so Google optimizes for revenue, not just form fills.β
A little honesty about the safety rails
This is a power tool, and we want you to use it with your eyes open:
- βYou're the owner. Claude recommends and executes what you approve, but you are responsible for your own account, spend, and results. Read what it proposes before you say yes.
- βYour credentials live in a gitignored
.env. They never get committed or shared. Only you and the Google Ads API see them. - βNot affiliated with Google. "Google Ads" is a trademark of Google LLC. This is an independent, open-source tool built on the public Google Ads API, provided as-is with no warranty. You use it at your own risk.
Free & Open Source
Take it, run it, make it yours.
If you're a small-business operator who spends on Google Search Ads, clone it and put it to work this week. If you're a builder, fork it and make it better β that's what open source is for.
Get it on GitHubgithub.com/uwskiguy/claude-google-ads-agent