

One command. Claude reads the business website, finds every service and city, and produces a Google Ads keyword table — grouped by intent, matched correctly, campaign-ready. Add the free Google Ads API for real volume and CPC.
❯ /keyword-strategy https://miamirvac.com
Fetching site... Found: AC Repair, Furnace Install, Duct Cleaning
Location: Miami FL · Coral Gables · Hialeah
Generating keyword strategy with real data...
What you get — free, no subscription required
The /keyword-strategy skill file · Google Ads API helper script (zero dependencies) · Complete setup guide with screenshots
Works immediately. No API keys, no scripts, no config beyond placing one file. Claude generates the keyword strategy using its knowledge of your trade and location.
Claude Code is Anthropic's official CLI. It gives Claude access to your filesystem and terminal — which is how the skill reads the business website automatically.
npm install -g @anthropic-ai/claude-code
Using ~/.claude/skills/ installs the skill globally — works from any folder on your machine. Use .claude/skills/ (no tilde) for project-only access.
mkdir -p ~/.claude/skills/keyword-strategy mv ~/Downloads/SKILL.md ~/.claude/skills/keyword-strategy/SKILL.md
Claude fetches the site, extracts your services and cities, and produces the keyword table. If it can't find them on the site, it asks you directly.
# Start Claude Code claude # Then type: /keyword-strategy https://yourbusiness.com
Most people don't know it exists. Basic access lets you call Google's Keyword Planner API directly — the exact same data powering every $300/month keyword tool. Free to get, approved in 1–3 business days, no billing required. The guide below covers every step — including the parts Google's own documentation skips.
Phase 1
Apply for Basic Access in API Center
Phase 2
Set up OAuth2 in Google Cloud
Phase 3
Get your refresh token via OAuth Playground
13 steps, no skips. Every trap is flagged. Screenshots from each screen so you know exactly what you're looking at.
You must be inside the Manager Account — not a regular client account. In the top-right of Google Ads you'll see your Manager account ID. From there: Admin → API Center.
You only do this once. Fill in every field — Google reviews these manually.

Click "Apply for Basic Access" on the API Center page. This opens a longer form. Here's exactly what to fill in:



Go to console.cloud.google.com → click the project dropdown at the top → New Project. Name it something clear: "keyword-planner" or "gads-keyword-tool".
Inside your new project: go to APIs & Services → Library → search for "Google Ads API" → click it → click Enable. This takes about 10 seconds.
Go to Google Auth Platform → Clients → click Create Client. Fill in the following:


After clicking Create, Google shows you your Client ID and Client Secret. Copy both and store them somewhere safe — you'll need them in the next step. You can also download the JSON file which contains both.

Go to developers.google.com/oauthplayground. Click the gear icon in the top-right → enable "Use your own OAuth credentials" → paste your Client ID and Client Secret → click Close.

In the left panel, scroll down to find "Google Ads API" and select it. Then click "Authorize APIs". Google will ask you to sign in — use the Google account that has access to your Manager (MCC) account. Grant access when prompted.

After granting access, you're redirected back to OAuth Playground. Click "Exchange authorization code for tokens". The Refresh Token appears on the right side of the screen.


You now need three more values from Google Ads:

Create a .env file in the folder where you'll run keyword-planner.js. Paste all five values:
GADS_DEVELOPER_TOKEN=your-developer-token-here GADS_CLIENT_ID=your-client-id.apps.googleusercontent.com GADS_CLIENT_SECRET=your-client-secret GADS_REFRESH_TOKEN=your-refresh-token GADS_CUSTOMER_ID=1234567890
Move keyword-planner.js into a scripts/ folder alongside your .env. Run this to confirm the whole chain works:
mkdir -p scripts mv ~/Downloads/keyword-planner.js scripts/keyword-planner.js node scripts/keyword-planner.js \ --services "roof repair, storm damage, gutter install" \ --location "Austin TX" \ --limit 20
If it works, you'll see JSON output like this:
[
{ "text": "roof repair austin", "avgMonthlySearches": 880, "competition": "HIGH", "avgCpcDollars": 9.20 },
{ "text": "storm damage repair austin tx", "avgMonthlySearches": 390, "competition": "HIGH", "avgCpcDollars": 11.40 },
...
]If something breaks, the error message usually tells you exactly which step went wrong.
DEVELOPER_TOKEN_PROHIBITEDYour token is permanently bound to a different GCP project. Create a new GCP project, new OAuth credentials inside it, and redo the auth flow from Step 4.
invalid_grant (401)Your refresh token is invalid or the Google account you authorized with lost access to the MCC. Re-run Phase 3 (Steps 8–10) to get a fresh token.
redirect_uri_mismatchThe redirect URI in your GCP OAuth client doesn't match. Go to GCP → your OAuth client → make sure Authorized redirect URIs includes https://developers.google.com/oauthplayground exactly.
CUSTOMER_NOT_FOUNDGADS_CUSTOMER_ID has dashes, or it's a sub-account ID when it should be the MCC ID. Strip all dashes and use the Manager account ID.
avg_monthly_searches is nullNormal for very new or very niche keywords — Google has no historical volume data for them. They still appear in output with null volume.
Request had insufficient authentication scopesYou authorized the wrong API scope in OAuth Playground. Re-do Steps 8–10 and make sure you selected "Google Ads API" specifically.
Screenshots adapted from OWOX documentation
Path A — Skill only
Path B — Skill + Google Ads API
Fill in your details on the right — downloads unlock instantly on this page. No email sent to you.
Built and used on real client campaigns by Anastasios Tzenos
Anastasios Tzenos
I build Google Ads systems and AI tools for local service businesses at Ad-Hive. This skill runs live on client campaigns. I publish what I build because the agency world hoards too much. More skills coming — follow me on LinkedIn to see them first.