Install any skill in seconds. Free to start, no credit card required.
Get Started Free →AI-powered SEO operations with keyword intelligence, competitor gap analysis, GSC optimization, and trend detection. Use for keyword research, content briefs, quick-win keyword identification, competitor gaps, trending topics, and decaying content analysis.
.claude/skills/evolution-foundation-mkt-seo-ops/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-19 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 54% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 6% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -4% | 0% |
AI-powered SEO operations: keyword intelligence, competitor gap analysis, GSC optimization, and trend detection.
content_attack_brief.py)Full keyword intelligence pipeline. Requires AHREFS_TOKEN and GSC auth.
bash# Run the full brief python content_attack_brief.py
What it produces:
Output: Prints formatted report to stdout + saves JSON to OUTPUT_DIR/content-attack-brief-latest.json
gsc_client.py)Google Search Console API client. Works as CLI or importable library.
bash# CLI usage python gsc_client.py --queries 50 --days 28 python gsc_client.py --striking # Striking distance keywords (pos 4-20) python gsc_client.py --pages 100 --days 7 python gsc_client.py --trend # Daily click/impression trend python gsc_client.py --devices # Mobile vs desktop split python gsc_client.py --sites # List verified properties python gsc_client.py --json --queries 25 # JSON output
python# Library usage from gsc_client import GSCClient gsc = GSCClient() rows = gsc.striking_distance(days=28, min_position=4, max_position=20) for row in rows: print(f"{row['keys'][0]}: pos {row['position']:.1f}, {row['impressions']} impressions")
gsc_auth.py)One-time OAuth setup for Google Search Console access.
bashpython gsc_auth.py # Opens browser → Google Sign-In → saves token locally
trend_scout.py)Multi-source trend detection. No API keys required for basic functionality.
bashpython trend_scout.py
Sources: Google Trends RSS, Hacker News, Reddit, X/Twitter (needs BRAVE_API_KEY), YouTube outlier detection
Output: Prints summary + saves JSON to OUTPUT_DIR/flash-trends-latest.json and markdown report.
All scripts read from environment variables. Copy .env.example to .env and fill in your values.
Required:
GSC_SITE_URL — your Google Search Console property URLGOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET — for GSC OAuthYOUR_DOMAIN — your root domainOptional:
AHREFS_TOKEN — enables Ahrefs keyword data and competitor analysisCOMPETITORS — comma-separated competitor domainsBRAVE_API_KEY — enables X/Twitter trend scanningCONTENT_VERTICALS — comma-separated topics for trend relevance scoringTREND_SUBREDDITS — comma-separated subreddits to monitorKeywords are scored on two axes:
Impact (0-10): Volume + CPC + Funnel Stage + Trend direction Confidence (0-10): Keyword Difficulty + Current ranking position + Topic authority
Priority = Impact × Confidence (max 100)
content_attack_brief.py for the full intelligence reportgsc_client.py --striking to monitor striking distance keywordstrend_scout.py to catch trending topics earlyCOMPETITORS listbashpip install -r requirements.txt
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-19 | fail→pass | 9,347 | 2,351 | -75% | 1 | 1 | 0% | 1,662 | 1,467 | -12% | 0 | 0 | — |
case-01 | fail→fail | 10,020 | 2,644 | -74% | 1 | 1 | 0% | 1,718 | 1,464 | -15% | 0 | 0 | — |
case-02 | fail→fail | 33,073 | 4,603 | -86% | 1 | 1 | 0% | 5,730 | 1,329 | -77% | 0 | 0 | — |
case-03 | fail→fail | 13,579 | 5,390 | -60% | 1 | 1 | 0% | 2,213 | 1,374 | -38% | 0 | 0 | — |
case-04 | pass→pass | 33,423 | 32,048 | -4% | 1 | 1 | 0% | 5,578 | 6,497 | +16% | 0 | 0 | — |
case-05 | pass→pass | 8,285 | 4,913 | -41% | 1 | 1 | 0% | 1,564 | 1,899 | +21% | 0 | 0 | — |
case-20 | fail→pass | 4,978 | 1,745 | -65% | 1 | 1 | 0% | 843 | 1,297 | +54% | 0 | 0 | — |
case-06 | pass→pass | 15,636 | 15,959 | +2% | 1 | 1 | 0% | 3,398 | 4,623 | +36% | 0 | 0 | — |
case-07 | pass→pass | 12,173 | 6,964 | -43% | 1 | 1 | 0% | 2,028 | 2,143 | +6% | 0 | 0 | — |
case-08 | fail→pass | 6,561 | 2,612 | -60% | 1 | 1 | 0% | 1,038 | 1,491 | +44% | 0 | 0 | — |
case-09 | pass→pass | 11,016 | 6,269 | -43% | 1 | 1 | 0% | 1,738 | 2,051 | +18% | 0 | 0 | — |
case-10 | fail→pass | 10,992 | 4,447 | -60% | 1 | 1 | 0% | 1,728 | 1,827 | +6% | 0 | 0 | — |
case-11 | pass→pass | 9,791 | 5,768 | -41% | 1 | 1 | 0% | 1,696 | 1,987 | +17% | 0 | 0 | — |
case-12 | fail→pass | 15,544 | 9,225 | -41% | 1 | 1 | 0% | 2,971 | 2,865 | -4% | 0 | 0 | — |
case-13 | fail→pass | 12,342 | 2,589 | -79% | 1 | 1 | 0% | 1,995 | 1,387 | -30% | 0 | 0 | — |
case-14 | fail→pass | 13,458 | 2,575 | -81% | 1 | 1 | 0% | 2,152 | 1,516 | -30% | 0 | 0 | — |
case-15 | fail→pass | 12,904 | 5,229 | -59% | 1 | 1 | 0% | 2,452 | 2,011 | -18% | 0 | 0 | — |
case-16 | fail→pass | 11,287 | 4,149 | -63% | 1 | 1 | 0% | 2,256 | 1,893 | -16% | 0 | 0 | — |
case-17 | fail→pass | 10,463 | 1,301 | -88% | 1 | 1 | 0% | 1,699 | 1,281 | -25% | 0 | 0 | — |
case-18 | fail→pass | 8,703 | 1,628 | -81% | 1 | 1 | 0% | 1,534 | 1,349 | -12% | 0 | 0 | — |
case-21 | fail→pass | 8,877 | 2,007 | -77% | 1 | 1 | 0% | 1,432 | 1,301 | -9% | 0 | 0 | — |
case-22 | fail→pass | 12,374 | 1,542 | -88% | 1 | 1 | 0% | 1,854 | 1,259 | -32% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +59 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.