# Keyword Research

Discover keyword opportunities, evaluate metrics and SERPs, and save/tag promising terms.

- Repository: https://github.com/every-app/open-seo (25988 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add every-app/open-seo --skill keyword-research -g -a claude-code -y`
Codex: `npx skills add every-app/open-seo --skill keyword-research -g -a codex -y`
Cursor: `npx skills add every-app/open-seo --skill keyword-research -g -a cursor -y`
Gemini CLI: `npx skills add every-app/open-seo --skill keyword-research -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add every-app/open-seo`

## Description

Discover keyword opportunities, evaluate metrics and SERPs, and save/tag promising terms.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# OpenSEO Keyword Research

## Goal

Turn seed topics into a prioritized keyword opportunity set using OpenSEO MCP data. The output should help the user decide what to target, what to save, and what to research next.

## Required inputs

- `projectId`
- One or more seed topics, products, pages, competitors, or audience problems
- Optional market/location/language

If `projectId` is missing, use `list_projects` first. If the target market/location/language is unclear and would materially affect keyword metrics, ask the user; otherwise use the MCP tool defaults.

## Project context

The project-context tools are free and shared with the app and other agents.

1. Call `get_project_context` first and ground the research in it, the business, the goal, the markets, and the competitors and key pages already saved.
2. This skill needs `business_overview` and `current_goal`. If either is empty, run a minimal inline setup: ask the user, or infer from the site and confirm, just enough to fill them, write them back with `update_project_context`, then continue the research. Never front-load the full interview; suggest `seo-project-setup` at the end for the rest.
3. Before spending credits, check the research log. If the same research ran within the last 30 days, reuse that result and say so instead of re-buying it.
4. On finish, write back what is durable, a sharpened `business_overview` or `current_goal`, competitors that kept appearing in the SERPs via `addCompetitors`, pages the keywords should land on via `addKeyPages`, and append a research log entry: `{ appendResearchLog: { summary: "Keyword research: <seeds/market>. Verdict: <conclusion>" } }`.

## Deliver as a report

Deliver through the `seo-report` skill, saving with `skill: "keyword-research"`. If that skill is not available, say so and stop before writing HTML.

## OpenSEO MCP tools

The rest: https://github.com/every-app/open-seo/blob/HEAD/.agents/skills/keyword-research/SKILL.md
