Skip to content
Marketing
Skill

/peec-content-intel

Content-intelligence workflow that turns a Peec AI visibility gap into a publish-ready content brief. Combines Peec (prompt visibility, source URLs, scraped chat responses), Visibly AI (backlinks, onpage, keywords, GSC), and Reddit / forum mining. Uses Query Fan-Out to expand

From plugin
peec-ai-skills
109 skills1 hook

Claude Code

$ npx -y skills add AntonioBlago/peec-ai-skills --skill peec-content-intel --agent claude-code

SKILL.md

peec-content-intel.SKILL.md
name: peec-content-intel
description: Content-intelligence workflow that turns a Peec AI visibility gap into a publish-ready content brief. Combines Peec (prompt visibility, source URLs, scraped chat responses), Visibly AI (backlinks, onpage, keywords, GSC), and Reddit / forum mining. Uses Query Fan-Out to expand one prompt into 5–8 sub-queries and scores competitor URLs for attackability. Use when the user wants to find content opportunities, evaluate competitor content, build a content brief from Peec data, or discover what content wins specific AI prompts.
user-invocable: true

Peec Content Intel

Role

For one Peec prompt that the brand is losing, produce one publish-ready content brief: sub-queries, verbatim buyer pains, competitor breakdown, outline, focus keywords, and outreach targets.

Input

  • `project_id` — Peec project (read from `setup_state.json` per pre-flight; do not re-resolve)
  • `prompt_id` — the target prompt (must have ≥24h of data)
  • optional `date_range` — default last 28 days
  • `language` — read from `setup_state.json` (`prompt_language`); user can override per-run, but never default to `en` silently
  • `target_country` — read from `setup_state.json`; drives forum source picks (DE→reddit/r/de+gutefrage+t3n, AT→reddit+derstandard, US→reddit+quora, CH→reddit/r/de+r/fr) and SERP/GSC market filters
  • `page_type` — **required**. Must be one of the values in `setup_state.page_type_taxonomy`. If the user doesn't pass it, the skill infers the best fit from the funnel stage of the target prompt + competitor top-url classifications, then ASKS the user to confirm ("Suggested page_type: `landing_page` (Decision-stage, competitors use PRODUCT_PAGE). OK? [y/n/override]"). Never guess silently — a brief with the wrong page_type is a wasted publish cycle.
  • `business_type` — read from `setup_state.json`. Used to validate `page_type` selection against the allowed taxonomy matrix.
  • `audience` — read from `setup_state.json`. `audience.primary` and `audience.pain_points` feed the brief's "Why this page wins" + "Voice / tonality" sections directly; do not restate them in the brief prose, USE them.

Output

One markdown brief per prompt, saved at `briefs/<YYYY-MM-DD>_<prompt-slug>/brief.md`, plus the raw data next to it (`competitor-urls.json`, `forum-pains.json`, `scoring.json`). No dashboards.

Every brief starts with a **front-matter block** that downstream skills (`peec-report`, `peec-learn`) consume for attribution:

---
brief_id:      <YYYY-MM-DD>_<prompt-slug>
prompt_id:     pr_xxxxxx
business_type: b2b-service
page_type:     landing_page           # MUST be in setup_state.page_type_taxonomy
target_url:    /seo-retainer          # planned publish path
funnel_stage:  Decision                # from the prompt's topic
audience:
  primary:     "Shop-Owner DACH, 3-20 MA, Shopify"
  pain_hook:   "3 Agenturen gewechselt, keine Ergebnisse"
success_metric_4w:
  prompt_visibility: "0% → ≥15%"
  zone_visibility:   "4% → ≥20%"
---

A brief without this front-matter block is invalid and will be rejected by `peec-report`.

When to use

  • "Which content wins Peec prompt X?"
  • "Analyze the sources competitors get cited for on prompt X"
  • "What's the content gap between me and competitor.de?"
  • Runs **after** `peec-setup` — the project must exist with structured prompts.

Do not use when:

  • Prompt has <24h of Peec data (no chats / sources yet)
  • No own-brand absence on the prompt (nothing to close)

---

Pipeline

0. Pre-flight — setup state required

Per [`_shared/SETUP_STATE.md`](../_shared/SETUP_STATE.md), this skill refuses to run without a completed setup:

Read <project>/growth_loop/setup_state.json
If missing OR completed_at missing OR phases_completed lacks
   {competitors, prompts, topics, tags}:
     STOP. Output:
       "No Peec setup state found at <project>/growth_loop/setup_state.json.
        Run /peec-setup first."
If completed_at older than 90 days: WARN once, continue.
Use peec_project_id from state — don't re-resolve via list_projects.

1. Find the gap URLs

mcp__peec-ai__get_brand_report(
  project_id, start_date, end_date,
  dimensions=["prompt_id"],
  filters=[{field: "prompt_id", operator: "in", values: [prompt_id]}]
)
mcp__peec-ai__get_url_report(
  project_id, start_date, end_date,
  dimensions=["prompt_id"],
  filters=[
    {field: "prompt_id", operator: "in", values: [prompt_id]},
    {field: "gap", operator: "gt", value: 0}
  ],
  limit=25
)

Output: up to 25 URLs, sorted by retrieval frequency, each with a `classification` (LISTICLE / ARTICLE / COMPARISON / HOW_TO_GUIDE / PROFILE / DISCUSSION).

Interpretation:

  • **LISTICLE / COMPARISON** → outreach targets (get included)
  • **HOW_TO_GUIDE / ARTICLE** → own-content targets (write and publish)
  • **PROFILE / DISCUSSION (reddit, youtube)** → community targets (participate)

2. Query Fan-Out

**Primary path — `mcp__visiblyai__query_fanout`** (Visibly MCP ≥ v0.6.0, ~3–5 credits):

mcp__visiblyai__query_fanout(
  url="https://<own-or-competitor-domain>/<page>",
  keyword="<focus_keyword>",
  data_source="dataforseo",   # or "gsc" / "both"
  gsc_property=null,          # required if data_source includes gsc
  language="de"               # or "en"
)

Returns: `fanout_queries[]`, `coverage_score` (0–1), `covered_count` / `total_count`, `gaps[]` (sub-queries not addressed on the URL — this is the content backlog), `coverage_details[]`.

Fire once per top gap URL from Phase 1. Replaces sub-query generation + crawling + semantic match in one call.

**Fallback — inline heuristic** (if Visibly MCP unavailable or credits tight):

Generate 6 sub-queries along fixed intent axes: 1. Synonym (same intent, different wording) 2. Decision ("what does it cost", "when to switch") 3. Comparison ("X vs Y") 4. Problem ("why doesn't X work") 5. Long-tail (narrow niche) 6. Forum / community (informal phrasing)

Coverage matching is then skipped — flag that explicitly in the brief

Read more
@antonioblago
Ships withpeec-ai-skills

Production-tested Claude Code skills for Peec AI — the brand-visibility tracking platform for LLM-powered search (ChatGPT, Perplexity, Google AI Overviews, Gemini).

Stars on GitHub

Momentum

stars in total
10
Star history of AntonioBlago/peec-ai-skills on GitHub, a chart by star-history.com

Other skills on peec-ai-skills.

peec-agent

peec-agent

Orchestrator for the 5 Peec AI growth skills (peec-setup, peec-content-intel, peec-cluster, peec-outreach, peec-report). Reads…

peec-cluster

peec-cluster

Turns a Peec AI prompt set into strategic content zones — not keyword groups. Groups prompts by buyer intent + funnel stage +…

peec-learn

peec-learn

Cross-project pattern layer for the Peec AI growth loop. After any Peec skill completes (or after peec-report closes a cycle),…

peec-report

peec-report

Weekly / monthly closed-loop reporter for Peec AI visibility growth. Measures what moved (visibility per prompt, cluster, zone)…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about peec-content-intel.

Which coding agents can use peec-content-intel?
peec-content-intel installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.