Help us improve
Share bugs, ideas, or general feedback.
From nodeshub-seo-skills
Analyzes Google SERPs via NodesHub API to find Featured Snippet/Answer Box opportunities. Classifies keywords as steal, defend, or target based on your domain's ranking and snippet ownership.
npx claudepluginhub senuto/nodeshub-seo-skills --plugin nodeshub-seo-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/nodeshub-seo-skills:nod-featured-snippet-hunterThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Find Featured Snippet / Answer Box opportunities for your domain.
Analyzes Google SERP for any keyword via NodesHub SERPdata API, extracting organic results, SERP features, competitor domains, and search intent. Useful for SEO analysis and content gap identification.
Analyzes search engine results pages (SERPs) to map features, layout, ranking factors, search intent, AI Overviews, and snippet opportunities for a given query.
Tracks SERP feature changes for target queries, monitoring AI Overviews, featured snippets, PAA, knowledge panels, local packs, and more. Useful for SEO competitive analysis and content strategy.
Share bugs, ideas, or general feedback.
Find Featured Snippet / Answer Box opportunities for your domain.
# Single keyword
python3 .claude/skills/nod-featured-snippet-hunter/scripts/hunt.py --domain example.com "seo tools" --gl us --hl en
# Multiple keywords
python3 .claude/skills/nod-featured-snippet-hunter/scripts/hunt.py --domain example.com "seo tools" "keyword research" --gl us --hl en
# From file
python3 .claude/skills/nod-featured-snippet-hunter/scripts/hunt.py --domain example.com --file keywords.txt --gl us --hl en
# Raw JSON
python3 .claude/skills/nod-featured-snippet-hunter/scripts/hunt.py --domain example.com "seo tools" --gl us --hl en --raw
Cost: 1 token per keyword. Check balance: python3 .claude/skills/nod-nodeshub-api/scripts/balance.py
Requires NODESHUB_API_KEY. Run:
python3 .claude/skills/nod-nodeshub-api/scripts/check_setup.py
If NodesHub is not set up: Walk the user through the full process: (1) Get API key from nodeshub.io (API Playground). (2) Save to .claude/settings.local.json under env.NODESHUB_API_KEY, or run python3 .claude/skills/nod-nodeshub-api/scripts/save_key.py YOUR_KEY. (3) Point to nod-nodeshub-api setup for details. (4) Have them run check_setup.py again to verify.
For each keyword:
/search endpointsnippets.answer_box for Featured Snippet presence## Featured Snippet Opportunities for example.com
**Keywords analyzed:** 15 | **Tokens used:** 15
**Opportunities:** 8 steal, 2 defend, 3 target, 2 no snippet
### Steal (you rank but don't own the snippet)
| Keyword | Your Pos | Snippet Owner | Type |
|---------|:--------:|---------------|:----:|
| seo tools | #4 | ahrefs.com | paragraph |
| keyword research | #7 | moz.com | list |
### Defend (you own the snippet)
| Keyword | Your Pos | Type |
|---------|:--------:|:----:|
| seo audit | #1 | paragraph |
### Target (snippet exists, you're not in TOP 10)
| Keyword | Snippet Owner | Type | Your Pos |
|---------|---------------|:----:|:--------:|
| link building | backlinko.com | list | #15 |
### No Snippet
- keyword1, keyword2
### Recommendations
1. Focus on "steal" keywords first
2. For paragraph snippets: add concise 40-60 word definitions
3. For list snippets: structure content with ordered/unordered lists
4. For table snippets: add comparison tables
| Param | Description |
|---|---|
keywords | Keywords to check (positional) |
--domain | Your domain to check (required) |
--file | File with keywords (one per line) |
--gl | Country code (default: us) |
--hl | Language code (default: en) |
--raw | Output raw JSON |
After collecting data, ask the user:
"Add results to an HTML report?"
- New report — creates a branded HTML report in
reports/- Existing report — appends a section to a chosen report
- Skip — no report
Use render_report_section({"domain": domain, "results": all_results}) from hunt.py, then create_report() or append_section() from report.py.