I had a problem. I needed a real SEO strategy for a new project — a list of keywords I could actually rank for, not the generic “AI content writing” or “best SaaS tools” suggestions that every AI tool spits out.
I didn’t want to pay for SEMrush or Ahrefs (yet). I didn’t want a list of 200 “people also search for” keywords with no idea which ones to actually target. And I didn’t want to spend three weeks doing it manually.
So I built a workflow. It’s the same one I used for smspm.com and now it’s the playbook I use for every new project. Here’s exactly what I did — step by step, with screenshots of my actual screen.
Why I used Kimi WebBridge (not a headless browser)
Before I get into the steps, a quick note on the tool. The agent I work with (Hermes) has a skill called Kimi WebBridge. The short version: it lets an AI agent control my real Chrome browser — the one with my bookmarks, my logins, my cookies, my tabs.
Why does that matter? Because the moment you try to do SEO research, you need to be logged in to a bunch of services:
- Google Keyword Planner — for real search volumes
- Google Trends — for seasonality
- Google Search Console — to see what your own site already ranks for
- Ahrefs / SEMrush — if you have them
- Reddit, Twitter, your CMS — anywhere you want to check rankings
If the agent uses a headless browser, it has to log in from scratch every time. ReCAPTCHA blocks it, sessions expire, two-factor auth pops up. With Kimi WebBridge, the agent sits on top of my real Chrome, where I’m already logged in to everything. It just clicks and types like a person would.
The other thing: I can watch it work. Real Chrome means the actual browser window is on my screen. I see every page it opens, every click it makes. If it goes off the rails, I take over. It’s not magic — it’s me, with an AI sidekick.
Step 1: Open the project site
First, I told the agent the project name and the domain. It opened the homepage in my real Chrome, took a snapshot, and showed me the H1, sub-headline, meta title, primary CTAs, the navigation, and the footer link map.
📸 What should be here: A screenshot of the agent’s terminal output showing the homepage snapshot — H1, sub-headline, the 3 feature pillars, the navigation menu, the footer. Annotated with a red box around the H1 to highlight what the agent extracted.
Why this matters: before generating any keywords, the agent has to actually read the site. Not summarize a search snippet — read the HTML, see the navigation, understand what the product does. The output of this step is a one-page brief: “Here’s what the site is, who it’s for, what it sells, what the conversion paths are.”
Step 2: Crawl the rest of the site
Once it had the homepage, I told it to keep going: the pricing page, the about page, the blog index, any free tools, the docs. Each page got its own snapshot in the same format.
📸 What should be here: Three side-by-side terminal panels, each showing a different page snapshot. The annotations should call out: “Pricing page has 184 country cards — programmatic SEO gold”, “About page confirms ICP is dev teams”, “Blog has 3 posts — thin content, room to grow”.
If your site has a free tools section or a pricing/coverage directory, stop and pay attention to those. They are almost always the lowest-effort, highest-ROI SEO assets you have. The agent flags them in the observations section of each snapshot.
Step 3: Generate seed keywords, grouped by cluster
Now the fun part. With the site understood, I asked the agent: “Based on what you just read, give me 30-50 seed keywords in 5-8 intent clusters.”
What came back was a table for each cluster — Brand, API/developer, Use-case, Pricing, Free tools, Comparison, Compliance, Integration. For every keyword, the agent suggested a target page on the site (existing or to-be-built) and the search intent (informational, commercial, transactional, navigational).
📸 What should be here: A markdown-rendered table showing the cluster structure. Highlight the “white-space” rows (keywords with no current page on the site) in a different color — these are the new pages you’ll need to build.
🛑 Checkpoint 1: I read every keyword
This is the part I almost always skip when I read other people’s SEO playbooks. Don’t skip this. I sat with the list for 15 minutes and did three things:
- Killed the bad ones. Anything that doesn’t match our positioning, anything we’d be embarrassed to rank for, anything legally dicey. Gone.
- Added the ones the agent missed. Stuff only I know because I’ve talked to customers. Specific vertical terms, weird internal jargon, exact phrases my support team hears in tickets. The agent has my product but not my customer calls.
- Re-clustered the forced ones. “This isn’t really a compliance keyword, it’s a use-case. Move it.”
The agent waits for me. It doesn’t barrel ahead to step 4 until I say “go.” If yours doesn’t, tell it to.
Step 4: Expand to 55+ candidates
The 30-50 v1 list is a starting point, not the final list. Now I told the agent: “Add 15-25 more by pulling from common SEO patterns — comparison terms like ‘X vs Y’ and ‘Y alternative’, integration terms like ‘Zapier’, ‘Shopify’, ‘WordPress’, long-tail siblings of the head terms, people-also-search-for expansions.”
This gets the list to ~55 candidates, which is the right size to throw at Google Keyword Planner without burning the API budget (if you have one) or the time.
Step 5: Validate every seed in Google Keyword Planner
Here’s where Kimi WebBridge pays for itself. Google Keyword Planner is inside Google Ads, and it requires a logged-in Google Ads account. Headless browsers get blocked by reCAPTCHA constantly. Real Chrome, where I’m already logged in as 4bigfoot@gmail.com through the mTaxi Solutions OU ad account, just works.
The agent opened GKP, went to Tools → Planning → Keyword Planner → “Get search volume and forecasts”, pasted all 55 candidates, and pulled three columns:
- Avg. monthly searches (last 12 months, World, EUR)
- Competition (Low / Medium / High — the Google Ads auction bucket, not organic)
- Top-of-page bid low / high (a rough CPC proxy)
It exported the raw data as a CSV next to the research folder.
📸 What should be here: A screenshot of GKP’s “Get search volume and forecasts” view, with the 55 keywords pasted in the left column and the results table on the right showing volume ranges and competition buckets. Highlight the row that returned “no data” — those are the seeds that get dropped.
A note on volumes: GKP returns ranges (like “1k – 10k”) unless your account has active ad spend. My account doesn’t, so I get buckets. That’s fine for ranking the list — I only need to know “lots of searches” vs “no searches,” not the exact number. If you need exact volumes later, you can pay for SEMrush or Ahrefs (and we’ll get to that).
🛑 Checkpoint 2: Reality check the data
Open the CSV. If a 50K/mo keyword shows up as “10-100,” your location or date filter is wrong — re-run. If everything looks sane, move on.
Step 6: Cluster-by-cluster decisions
This is where the v1 list becomes a v2 list. I asked the agent: “For each cluster, mark every keyword with one of three actions:
- 🟢 KEEP+ — build first (high volume, low competition, the obvious wins)
- 🟡 KEEP — build later (decent volume or high intent but harder to rank for)
- ❌ DROP — zero volume, no one is searching for this”
This step surprised me. I expected maybe 5-10 keywords to drop. 11 of 55 dropped in the SMSPM run. Half of them were terms I would have written blog posts for if I hadn’t checked. “Webhook SMS delivery” — zero searches. “Send SMS from Claude” — zero searches (we kept the page anyway, as a differentiator, but not as a traffic play).
📸 What should be here: A rendered markdown table showing the per-cluster decisions. The DROP rows should be highlighted — call out “11 of 55 keywords returned zero volume. These are the blog posts you didn’t write.”
End of step 6: I have a prioritized list of ~42 keywords in 3 tiers. Tier 1 = build this quarter. Tier 2 = build next quarter. Tier 3 = defend, opportunistic.
🛑 Checkpoint 3: I review the Tier 1 list
Tier 1 is the next 90 days of content work. Read every keyword in it. Push back on any I don’t actually want to write about. Promote any I do.
Step 7: Write the “data gaps” file
This step has no tool — it’s just honesty. The agent writes a file called “Data Gaps” that lists everything GKP can’t tell us.
The biggest one: GKP’s “Competition” column measures the Google Ads auction, not the organic SERP. A keyword can show “Low competition” in GKP and still be dominated by 5 DR-90 sites in organic. The GKP data is volume-accurate but competition-rough.
The gaps file ranks 13 known gaps by impact. For each: what’s missing, what we’d need to close it, the tool, the cost, the time. The top three things to do “tomorrow” are always:
- Set up Google Search Console for the site (free, 1 hour, biggest payoff).
- Run Screaming Frog on the site and find the existing pages one position away from page 1.
- Use GKP’s “Discover new keywords” on each Tier 1 seed to find 50-100 new candidates.
Step 8: Google Trends cross-check
For the top 20 keywords, the agent opened Google Trends (geography = World, last 12 months) and captured: Min, Max, first-week value, last-week value, Δ over 12 months, and a trend label (📈 strong uptrend / ↗️ rising / ➡️ flat / ↘️ declining / ⚠️ no data).
The data is normalized 0-100, not absolute volume, so you can’t compare two keywords to each other. But you can see the shape of the curve — is it rising, flat, seasonal, declining?
📸 What should be here: A composite of 3-5 Google Trends chart screenshots in a row. Annotate each: ”↑ rising — build this now”, ”→ flat — evergreen, no urgency”, ”↓ declining — refresh or skip”.
This step is the seasonal sanity check. If a Tier 1 keyword is on a strong declining trend, the agent should know to demote it before we move on. I had one (the SMSPM “sms vs email marketing” post) — declining 90% YoY. The post still exists, but I won’t bet on it as a growth driver.
🛑 Checkpoint 4: Final trend review
Same drill — skim, override any “demote” decision you disagree with, then move on.
Step 9: Live SERP check for the 5 highest-priority keywords
This is the step that took me from “I trust GKP” to “I verify GKP.” For each of the 5 Tier 1 BIG WIN keywords, the agent opened a clean Google search (US, English, no personalisation) and captured the top 10 organic results: domain, type, what they offer.
Here’s what I learned: GKP said “sms marketing” was Low competition. The actual SERP has Salesforce, Twilio, Klaviyo, and Mailchimp on page 1. We cannot rank for that head term in 6 months. The agent demoted it from Tier 1 to Tier 3 on the spot, and the work shifted to long-tail siblings like sms marketing platform and sms marketing for ecommerce — same neighborhood, same intent, way less competition.
📸 What should be here: A grid of 5 SERP screenshots side by side, each labeled with the keyword and the verdict. The “sms marketing” panel should be highlighted in red (DR-90 competitors) and the “sms character counter” panel in green (winnable SERP, just needs content).
🛑 Checkpoint 5: The most important review
This is the one checkpoint you should not skip. The agent is about to demote a Tier 1 keyword you may have emotionally committed to. Push back if the data doesn’t justify it. Override if the agent missed something. This is the call you can’t outsource.
Step 10: Write the final README
The agent reads the cluster decisions from Step 6, the SERP verdicts from Step 9, and the gap priorities from Step 7, and writes a one-page executive summary:
- 1-paragraph project snapshot
- 1-paragraph methodology
- The final 42-keyword prioritized list in 3 Tiers
- “Recommended next steps” (top 5-7 actions)
- “Notes for AI CEO” (a paragraph on how this fits the project’s strategic context)
The README is what I’ll re-read in 3 months when I want to know “where did I land on this?” The other 10 files are reference. The README is the entry point.
📸 What should be here: A screenshot of the SEO Research folder in Finder or Obsidian, showing the 11 numbered files + README + the raw GKP CSV. The README should be visually highlighted as the “start here” file.
What I ended up with
For the SMSPM run, the final deliverable was an 11-file folder:
SEO Research 2025-06/
├── README.md ← 1-page executive summary
├── 01 Home.md ← Homepage crawl
├── 02 Prices.md ← Pricing page (184 country cards)
├── 03 Tools.md ← 7 free tools inventory
├── 04 About.md
├── 05 Blog.md
├── 06 API Docs.md
├── 07 Blog Posts.md ← 3 existing posts
├── 08 GKP-Validated Research.md ← The 55 → 42 keyword list
├── 09 Data Gaps vs SEMrush DataForSEO Ahrefs.md
├── 10 Google Trends Cross-Check.md ← 20 keywords, 12-month trends
├── 11 Live SERP Check.md ← 5 BIG WINs, top-10 organic
└── Keyword Stats smspm 2026-06-25 17_54_24.csv ← raw GKP export
And a final 42-keyword plan in three tiers. The 7 Tier 1 keywords are the next 90 days of content work. I can hand this to a writer or an AI and say “start with these.”
Total time: about 4 hours of agent work, plus 45 minutes of my review across the 5 checkpoints. Total cost: $0. The GKP account, Google Trends, and Google Search are all free. I had a GSC account for the site already; that took an hour to set up and is now permanent infrastructure.
The 1 thing I’d do differently next time
I’d set up Google Search Console before I started, not after. GSC shows you what your site already ranks for. There were probably 10-15 keywords where we were sitting at position #8-#12 — one good internal link and a 200-word content tweak would have pushed us to page 1. That’s a faster win than any of the new pages we’re planning to build.
GSC is also how you split branded vs non-branded clicks, see your CTR per page, and find the “money pages” Google already considers authoritative. It should be the first thing in the playbook, not the thirteenth.
The 6-month refresh
Search volumes drift. Competitors move. Regulations change (the SMSPM “compliance” cluster got hot in 2024-2025 because of A2P 10DLC, a US regulation most people hadn’t heard of). I re-run this whole playbook every 6 months. The plan is a snapshot, not a destination.
If you’d like a quick way to audit your own site against this framework — keyword targeting, intent alignment, content gaps, featured snippet opportunities, E-E-A-T, the lot — the MastersAtWork SEO Audit tool runs in under 5 minutes and writes the JSON-LD snippets for you. Free, no signup.