Files

4.3 KiB

CLAUDE.md

Overview

Keyword strategy and research tool for SEO campaigns. Expands seed keywords via our-seo-agent CLI or pre-fetched data, classifies search intent, clusters topics, performs competitor keyword gap analysis, and supports Korean market keyword discovery including Naver autocomplete.

Quick Start

# Install dependencies
pip install -r scripts/requirements.txt

# Keyword research from seed keyword
python scripts/keyword_researcher.py --keyword "치과 임플란트" --country kr --json

# Keyword gap analysis vs competitor
python scripts/keyword_gap_analyzer.py --target https://example.com --competitor https://competitor.com --json

Scripts

Script Purpose Key Output
keyword_researcher.py Expand seed keywords, classify intent, cluster topics Keyword list with volume, KD, intent, clusters
keyword_gap_analyzer.py Find competitor keyword gaps Gap keywords with opportunity scores
base_client.py Shared utilities RateLimiter, ConfigManager, BaseAsyncClient

Keyword Researcher

# Basic expansion
python scripts/keyword_researcher.py --keyword "dental implant" --json

# Korean market with suffix expansion
python scripts/keyword_researcher.py --keyword "치과 임플란트" --country kr --korean-suffixes --json

# With volume-by-country comparison
python scripts/keyword_researcher.py --keyword "dental implant" --country kr --compare-global --json

# Output to file
python scripts/keyword_researcher.py --keyword "치과 임플란트" --country kr --output report.json

Capabilities:

  • Seed keyword expansion (matching terms, related terms, search suggestions)
  • Korean suffix expansion (추천, 가격, 후기, 잘하는곳, 부작용, 전후)
  • Search intent classification (informational/navigational/commercial/transactional)
  • Keyword clustering into topic groups
  • Volume-by-country comparison (Korea vs global)
  • Keyword difficulty scoring

Keyword Gap Analyzer

# Find gaps vs one competitor
python scripts/keyword_gap_analyzer.py --target https://example.com --competitor https://competitor.com --json

# Multiple competitors
python scripts/keyword_gap_analyzer.py --target https://example.com --competitor https://comp1.com --competitor https://comp2.com --json

# Filter by minimum volume
python scripts/keyword_gap_analyzer.py --target https://example.com --competitor https://competitor.com --min-volume 100 --json

Capabilities:

  • Identify keywords competitors rank for but target doesn't
  • Opportunity scoring based on volume, KD, and competitor positions
  • Segment gaps by intent type
  • Prioritize low-KD high-volume opportunities

Data Sources

Source Purpose
our-seo-agent CLI Primary data source (future); use --input for pre-fetched JSON
WebSearch / WebFetch Supplementary live data
Notion MCP Save audit report to database

Output Format

All scripts support --json flag for structured output:

{
  "seed_keyword": "치과 임플란트",
  "country": "kr",
  "total_keywords": 150,
  "clusters": [
    {
      "topic": "임플란트 가격",
      "keywords": [...],
      "total_volume": 12000
    }
  ],
  "keywords": [
    {
      "keyword": "치과 임플란트 가격",
      "volume": 5400,
      "kd": 32,
      "cpc": 2.5,
      "intent": "commercial",
      "cluster": "임플란트 가격"
    }
  ],
  "timestamp": "2025-01-01T00:00:00"
}

Notion Output (Required)

IMPORTANT: All audit reports MUST be saved to the OurDigital SEO Audit Log database.

Database Configuration

Field Value
Database ID 2c8581e5-8a1e-8035-880b-e38cefc2f3ef
URL https://www.notion.so/dintelligence/2c8581e58a1e8035880be38cefc2f3ef

Required Properties

Property Type Description
Issue Title Report title (Korean + date)
Site URL Audited website URL
Category Select Keyword Research
Priority Select Based on opportunity score
Found Date Date Research date (YYYY-MM-DD)
Audit ID Rich Text Format: KW-YYYYMMDD-NNN

Language Guidelines

  • Report content in Korean (한국어)
  • Keep technical English terms as-is (e.g., Keyword Difficulty, Search Volume, CPC)
  • URLs and code remain unchanged