Systems Lab

Agent skill

search-ad-keyword-architect

Deep keyword research for paid search.

dormantNeeds a keyActs undeclared1,279 words

Filed under Content and SEO.

From edupegoretti/fluidz-skills · 116 skills · 0 · pushed 2026-03-11

What it does when it runs

Deep keyword research for paid search. Analyzes competitor SEO keywords, review language, Reddit/community terminology, and existing site content to build a keyword architecture: branded vs non-branded, funnel stage mapping, match type recommendations, and estimated competition tiers. Use before building a Google Ads campaign or to audit an existing one.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • APIFY_API_TOKEN
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shellwrites files

Ask about search-ad-keyword-architect

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/edupegoretti/fluidz-skills.git /tmp/fluidz-skills
git -C /tmp/fluidz-skills sparse-checkout set "skills/composites/search-ad-keyword-architect"
mkdir -p ~/.claude/skills/search-ad-keyword-architect
cp -R "/tmp/fluidz-skills/skills/composites/search-ad-keyword-architect/." ~/.claude/skills/search-ad-keyword-architect/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs APIFY_API_TOKEN, which you have to obtain separately.

Reproduced in full from edupegoretti/fluidz-skills/blob/a2cf697e2e8ec2ea517d85496e2d5c7f5dc44cd3/skills/composites/search-ad-keyword-architect/SKILL.md, which is licensed MIT (repository). 1,279 words, 36 headings.

Search Ad Keyword Architect

Build a comprehensive keyword architecture for paid search campaigns. Goes beyond basic keyword lists by organizing terms into a strategic framework: funnel stages, intent buckets, match types, and competitive density tiers.

Core principle: Bad keyword strategy is the #1 reason startups waste money on Google Ads. This skill builds the strategic foundation before you write a single ad.

When to Use

  • "Do keyword research for our Google Ads"
  • "What keywords should we bid on?"
  • "Build a keyword strategy for paid search"
  • "Audit our existing keyword list"
  • "Find high-intent keywords in our space"

Phase 0: Intake

  1. Product name + URL — What are we advertising?
  2. Product category — How would a buyer search for this? (e.g., "sales automation", "AI writing tool")
  3. ICP — Target buyer role, company stage, pain points
  4. Competitor domains — 3-5 competitors
  5. Monthly PPC budget — Affects aggressiveness of recommendations
  6. Existing keywords? — Currently bidding on anything?
  7. Known converting keywords? — Any existing performance data

Phase 1: Keyword Universe Building

1A: Competitor SEO Keyword Mining

For each competitor, research their organic keyword rankings:

# If seo-domain-analyzer available:
python3 skills/seo-domain-analyzer/scripts/analyze_domain.py \
  --domain <competitor_domain> \
  --output json

Also web search:

Search: site:<competitor_domain> [product category keywords]
Search: <competitor> SEO keywords ranking
Search: <competitor> top pages organic traffic

Extract keywords with buying intent — skip informational-only terms.

1B: Review & Community Language Mining

The exact language buyers use matters more than what marketers think they search:

Reviews:

python3 skills/review-scraper/scripts/scrape_reviews.py \
  --product "<your product>" \
  --product "<competitor>" \
  --platforms g2,capterra \
  --output json

Extract phrases like:

  • "I was looking for a [term] that could..."
  • "We switched from [X] because we needed..."
  • "Best [term] for [use case]"

Reddit:

python3 skills/reddit-scraper/scripts/scrape_reddit.py \
  --query "best <category> tool OR software OR platform" \
  --sort relevance \
  --time year \
  --limit 30

Hacker News:

python3 skills/hacker-news-scraper/scripts/scrape_hn.py \
  --query "<product category>" \
  --type story \
  --limit 20

1C: Your Site Content Audit

python3 skills/site-content-catalog/scripts/catalog_site.py \
  --url <your_website> \
  --output json

Identify:

  • Pages that could serve as landing pages
  • Keywords your content already ranks for (leverage in ads)
  • Gaps — search terms you're not covering

1D: Search Suggest & Related Terms

Search: "[category] tool" → note Google autocomplete suggestions
Search: "[category] software for [ICP role]"
Search: "[pain point] solution"
Search: "how to [problem your product solves]"

Phase 2: Keyword Architecture

2A: Funnel Stage Mapping

Organize all keywords by buyer journey stage:

StageIntent SignalExample KeywordsBid Priority
Problem-awareSearching for solutions to a pain"how to scale outbound without hiring SDRs"Medium — educational intent
Solution-awareSearching for a category"AI SDR tool", "outbound automation platform"High — comparing options
Product-awareSearching for specific products"[competitor] alternative", "[competitor] vs"Very high — close to purchase
Most-awareSearching for your brand"[your brand]", "[your brand] pricing"Must-have — defend brand

2B: Intent Classification

Intent TypeAd Group StrategyLanding Page Strategy
Transactional ("buy", "pricing", "free trial")Aggressive bid, exact matchDirect product/pricing page
Commercial ("best", "top", "vs", "alternative")Strong bid, exact + phraseComparison or feature page
Informational ("how to", "what is", "guide")Low bid or skip — save for SEOBlog/resource (if targeting)
Navigational (brand searches)Must-bid, exact matchHomepage or brand LP

2C: Competitive Density Assessment

For top 30 keywords, estimate competition level:

DensitySignalStrategy
LowFew ads showing, no big brandsBid aggressively — first mover advantage
MediumSome competitors, not saturatedBid strategically — differentiate with copy
HighMajor players dominatingBid selectively — long-tail variants, exact match only
Very highBig ad budgets, position 1-4 lockedAvoid head-on — focus on long-tail or competitor terms

2D: Match Type Matrix

KeywordExact [keyword]Phrase "keyword"Broad keywordRecommendation
[keyword 1]Start exact, expand to phrase after data
[keyword 2]Exact only — too broad in phrase
[keyword 3]All match types — high-volume, need coverage

Phase 3: Negative Keyword Architecture

Category Negatives

[Industry]-specific terms that share words with your keywords but wrong intent

Intent Negatives

jobs, careers, hiring, salary, internship
free, open source, download (if not applicable)
tutorial, course, certification, how to become
login, support, help, documentation
review, reddit, quora, forum (if not desired)

Competitor Brand Negatives (Optional)

If not running competitor campaigns, negative-match competitor brand names to prevent waste.

Phase 4: Output Format

# Keyword Architecture — [Product Name] — [DATE]

## Research Summary
- Sources analyzed: [competitor SEO, reviews, Reddit, HN, site audit]
- Total keywords discovered: [N]
- After dedup + filtering: [N]
- Recommended for campaign: [N]

---

## Keyword Universe by Funnel Stage

### Most-Aware (Brand Defense)
| Keyword | Match Type | Est. Volume | Competition | Priority |
|---------|-----------|------------|-------------|----------|
| [keyword] | Exact | [H/M/L] | Low | Must-have |

### Product-Aware (Competitor Capture)
| Keyword | Match Type | Est. Volume | Competition | Priority |
...

### Solution-Aware (Category)
...

### Problem-Aware (Top of Funnel)
...

---

## Recommended Ad Group Structure

| Ad Group | Theme | Keywords | Match Types | Landing Page |
|----------|-------|----------|------------|-------------|
| [Name] | [Theme] | [N] keywords | [Exact + Phrase] | [URL] |

---

## Negative Keyword Lists

### Campaign-Level Negatives
[List]

### Ad Group-Level Negatives
[Per ad group]

---

## Competitive Density Map

| Keyword Theme | Your Position | Top Competitors Bidding | Density | Recommendation |
|--------------|--------------|------------------------|---------|---------------|
| [Theme] | [Not bidding / Bidding] | [Names] | [H/M/L] | [Bid / Skip / Long-tail] |

---

## Quick Wins (Start Here)

Top 10 keywords to launch with — highest intent, manageable competition:

| # | Keyword | Match Type | Intent | Competition | Why |
|---|---------|-----------|--------|-------------|-----|
| 1 | [keyword] | Exact | Transactional | Medium | [Reason] |
...

---

## Budget Allocation Recommendation

| Funnel Stage | % of Budget | Reasoning |
|-------------|------------|-----------|
| Brand defense | [X%] | Protect brand searches |
| Competitor capture | [X%] | High-intent, ready to switch |
| Solution-aware | [X%] | Category buyers — highest volume |
| Problem-aware | [X%] | Only if budget allows |

Save to clients/<client-name>/ads/keyword-architecture-[YYYY-MM-DD].md.

Cost

ComponentCost
SEO domain analyzer (per competitor)~$0.10-0.30 (Apify)
Review scraper~$0.10-0.30 (Apify)
Reddit scraper~$0.05-0.10 (Apify)
HN scraperFree
Site content catalogFree-$0.10
AnalysisFree (LLM reasoning)
Total for 3 competitors~$0.50-1.50

Tools Required

  • Apify API tokenAPIFY_API_TOKEN env var
  • Upstream skills: seo-domain-analyzer, review-scraper, reddit-scraper, hacker-news-scraper, site-content-catalog
  • web_search — for keyword discovery

Trigger Phrases

  • "Do keyword research for Google Ads"
  • "What keywords should we bid on?"
  • "Build a keyword architecture for [product]"
  • "Find high-intent search keywords"
  • "Audit our PPC keyword strategy"

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what search-ad-keyword-architect does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.