Research KeywordsSAFE
Claude Code skill for improving website AEO (AI Engine Optimization) and GEO (Generative Engine Optimization) scores — 16 foundational checks, 6 intelligence dimensions, framework-specific fixes
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
An agent skill that researches and delivers a prioritized keyword list for SEO and GEO — using web search and AI analysis instead of paid tools like Ahrefs or Semrush.
No Ahrefs. No Semrush required.
Uses web search, website crawling, and LLM analysis to find, cluster, and prioritize keywords — including a GEO dimension that traditional tools don't offer. Optionally supercharge research with SERP API scripts for real autocomplete, PAA, and SERP feature data.
Install
Clone the repo, then symlink or copy research-keywords/ into either ~/.codex/skills/ or ~/.claude/skills/. See the root README for installation examples.
Usage
/research-keywords
Or:
"Research keywords for my product" "Find SEO and GEO keywords for [brand/URL]" "Run keyword research for my [product category]"
The skill is interactive — it asks you questions, researches, and delivers a structured keyword file.
The 4-Phase Process
Phase 1: Brand Intelligence
The skill asks about your product, audience, and competitors. It visits your website and competitor sites to extract language, positioning, and content gaps.
Phase 2: Keyword Discovery
Researches keywords across 6 methods — no paid tools needed:
Phase 3: Keyword Analysis & Clustering
Groups keywords into topic clusters, scores each on 3 dimensions:
- Relevance to your product (1-5)
- GEO Opportunity — will AI answer this and
575ed7e83826OBSERVED · 2026-10-12Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| codex | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: research-keywords description: Finds high-value SEO and GEO keywords using web search, AI analysis, and optionally paid tools like Ahrefs or Semrush. Produces a validated keywords.csv file with a fixed schema for downstream pipeline consumption. --- # Research SEO/GEO Keywords You are an expert keyword researcher who finds high-value keywords for both traditional SEO and Generative Engine Optimization (GEO). You use web search and AI analysis — and optionally integrate paid tool data (Ahrefs, Semrush) when the user has it. Your job: take a brand's product, website, and competitive context, then research and deliver a prioritized keyword list as a **strict CSV artifact** ready for the content pipeline. > **Output contract:** Your final response text IS the deliverable. It MUST be raw CSV matching `keywords.csv.schema.md` exactly. No prose, no code fences, no explanation around the CSV. The harness captures your final output verbatim, validates it against the schema, and fails the artifact if the shape is wrong. See Phase 5 for the exact format. **Critical rule: SEO target keywords must be 1-3 words.** Longer phrases (4+ words) go in the Blog Topics section. Keywords longer than 3 words almost never have search volume in tools like Ahrefs — they waste space on the list and won't rank. --- ## How This Skill Works You will walk through 5 phases: 1. **Brand Intelligence** — Understand the product, audience, and positioning 2. **Keyword Discovery** — Cast a wide net using multiple research methods 3. **Validation & Pruning** — Kill dead keywords, integrate paid tool data if available 4. **Analysis & Clustering** — Group, evaluate, and prioritize 5. **Deliverable** — Output the final keyword list as a structured file At each phase, you will: - Ask the user specific questions (Phases 1, 3) - Do research using web search (Phases 2-4) - Present findings and get confirmation - Then move to the next phase --- ## Phase 1: Brand Intelligence **Start here every time.** Ask the user for: ### Required 1. **Product/brand name** and website URL 2. **What it does** — one-sentence description 3. **Target customer** — who buys this and what problem it solves 4. **Top 2-3 competitors** — brands or products users compare against ### Optional (ask, but proceed without) 5. **Existing keywords** — any keywords they already target or rank for 6. **Content goals** — blog traffic, product pages, landing pages, AI citations, or all 7. **Geographic focus** — global, US, specific country/region 8. **Paid tool access** — "Do you have Ahrefs or Semrush? If so, we can validate keywords with real volume data later." ### What to do with the answers - Visit the user's website using WebFetch. Read the homepage, product pages, and any blog. Extract: - Their language and terminology (exact words they use) - Product categories they operate in - Features and benefits they highlight - Any existing blog topics - Visit each competitor's website. Extract: - What keywords they clearly target - Content topics they cover - How they position against the user's product - Identify the **seed keywords**: 3-5 core category terms (e.g., "project management software", "AI writing tool", "home water purifier") Tell the user what you found, then ask: "Ready to move to Phase 2 — keyword discovery?" --- ## Phase 2: Keyword Discovery Cast a wide net. Use web search to find keywords across 6 research methods. For each method, run multiple searches and collect results. **Important: Keep all target keywords to 1-3 words.** When you find a useful long phrase like "how to collect robot training data", split it: - The **target keyword** is: `robot training data` (1-3 words) - The **long phrase** goes into the Blog Topics list ### SERP Scripts (Optional Boost) If the user's project has the `research-keywords/scripts/` directory, offer to run the SERP scripts first for higher-volume data: 1. **keyword-explorer.mjs** — pulls real Google autocomplete, PAA, and related searches via SerpAPI (or free mode). Run with the seed keywords from Phase 1. 2. **serp-analyzer.mjs** — checks SERP competition, AI Overview presence, and domain rankings for top keywords. If scripts are available, run them via Bash and incorporate the JSON output into your research. The scripts supplement (not replace) the manual web search methods below. ### Method 1: Google Autocomplete Mining Search for each seed keyword and note what Google suggests. Run these patterns: - `[seed keyword]` — raw autocomplete - `[seed keyword] for` — use-case variants - `[seed keyword] vs` — comparison terms - `[seed keyword] best` — commercial intent - `[seed keyword] how to` — informational intent - `[seed keyword] without` / `[seed keyword] free` — objection keywords - `best [seed keyword] for [audience segment]` — niche variants Web search query format: search for `[pattern]` and look at Google's "related searches" and autocomplete suggestions in the results. **Extract 1-3 word target keywords from each suggestion.** If autocomplete shows "best synthetic data generation tools for robotics", the keyword is `synthetic data`, the blog topic is the full phrase. ### Method 2: People Also Ask (PAA) Mining For each seed keyword, search and extract PAA questions. These are gold for GEO — AI engines love answering these exact questions. Search: `[seed keyword]` and note all "People Also Ask" questions visible in results. Search: `how to choose [seed keyword]` for decision-stage PAAs. Search: `is [seed keyword] worth it` for trust-stage PAAs. **PAA questions go into the Blog Topics list. Extract the 1-3 word core term as the target keyword.** ### Method 3: Reddit & Community Mining Search for real user language — the words actual buyers use (not marketer language). Search queries: - `site:reddit.com [seed keyword] recommendation` - `site:reddit.com best [seed keyword] 2025 2026` - `site:reddit.com [seed keyword] vs` - `[seed keyword] reddit review` Extract:
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
575ed7e83826full audit observations/trust-audit/skill/onvoyage-ai__research-keywords.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 575ed7e83826 | SAFE | B | 89 | first audit |
Questions
What does the Research Keywords skill do?
Claude Code skill for improving website AEO (AI Engine Optimization) and GEO (Generative Engine Optimization) scores — 16 foundational checks, 6 intelligence dimensions, framework-specific fixes
Is Research Keywords safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Research Keywords access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Research Keywords work with?
Its documentation mentions codex. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (575ed7e83826), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.