competitor-monitor
The competitor-monitor skill establishes automated tracking of rival businesses across specified dimensions including content, pricing, ads, social activity, SEO rankings, and SERP features. Use it when defining which competitors to monitor, selecting what aspects to track, setting scan frequencies for each dimension, and configuring alerts for detected changes. The tool creates baseline profiles of current competitor states and enables recurring scans at different intervals per dimension, supporting daily checks for fast-moving metrics like pricing while allowing weekly or monthly reviews of slower-changing factors like SEO authority.
git clone --depth 1 https://github.com/indranilbanerjee/digital-marketing-pro /tmp/competitor-monitor && cp -r /tmp/competitor-monitor/skills/competitor-monitor ~/.claude/skills/competitor-monitorSKILL.md
# /digital-marketing-pro:competitor-monitor
## Purpose
Set up and manage ongoing competitor monitoring. Define which competitors to track, what to monitor (content changes, pricing updates, ad activity, social mentions, SEO rankings, SERP feature ownership), how often to scan each dimension, and what alerts to trigger when significant changes are detected. This command establishes competitive intelligence baselines by capturing the current state of each competitor across all monitored dimensions, then configures recurring scans to detect and surface changes over time. Baselines serve as the reference point for all future change detection — without them, alerts have no context for what constitutes a meaningful shift versus normal fluctuation. Supports per-dimension scan frequencies so high-velocity dimensions like pricing and ads can be checked daily while slower-moving dimensions like content strategy and SEO authority are reviewed weekly or monthly. The monitoring configuration persists across sessions and powers both the competitor-alerts notification system and the share-of-voice trend tracking.
## Input Required
The user must provide (or will be prompted for):
- **Competitors to track**: A list of competitor names with their primary website URLs — e.g., "Acme Corp (acme.com), Beta Inc (beta.io), Gamma Labs (gammalabs.com)". Each competitor becomes a monitored entity with its own baseline profile and independent scan schedule. Minimum one competitor required, no upper limit but recommend 3-8 for manageable monitoring volume and meaningful competitive context without signal overload
- **Monitoring dimensions**: Which competitive aspects to track for each competitor — `content` (new pages, blog posts, significant page edits, messaging changes on key pages), `pricing` (pricing page changes, plan restructuring, discount offers, free trial modifications), `ads` (new Google Ads campaigns, Meta Ad Library activity, ad copy and creative changes, new platform presence), `social` (mention volume, sentiment shifts, follower growth, posting frequency and engagement rates), `seo` (organic keyword rankings on tracked terms, domain authority changes, backlink profile shifts, new content indexation), `serp` (featured snippet ownership, People Also Ask presence, knowledge panel changes, AI overview citations). Select all for comprehensive coverage or choose a subset per competitor based on competitive relevance
- **Scan frequency per dimension**: How often to check each dimension — `daily`, `weekly`, or `monthly`. Recommended defaults: daily for pricing and ads (high-velocity, time-sensitive competitive signals requiring fast response), weekly for content and SEO (meaningful changes accumulate over days, not hours), monthly for full strategic review (positioning, messaging, market stance, and competitive narrative evolution). Custom frequencies can be set per competitor per dimension for asymmetric monitoring
- **Alert thresholds and notification channel**: What constitutes a significant change worth alerting on per dimension, and where to send alerts — Slack channel name (e.g., #competitor-intel) or email address. Thresholds can be qualitative ("any pricing change") or quantitative ("ranking drop of more than 5 positions on any tracked keyword", "social mention volume exceeding 2x baseline"). If not specified, sensible defaults are applied per dimension based on typical competitive volatility patterns
- **Tracked keywords (optional)**: Specific keywords to monitor for SEO and SERP dimension tracking — brand terms, category head terms, product-specific terms, and high-intent commercial queries where competitor visibility matters most. If omitted, keywords are inferred from brand context, competitor content overlap analysis, and any existing keyword research data
## Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand positioning, competitive landscape context, target market definitions, and industry vertical. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load competitive sensitivity rules and any competitor-specific monitoring preferences. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults.
2. **Validate competitor URLs and collect initial baseline data**: For each competitor, verify the provided URL resolves and identify the correct root domain with any relevant subdomains. Capture the current state across all selected monitoring dimensions — website key pages (homepage, pricing, product, about, blog) with full meta tag snapshots, page titles, H1 headings, and core messaging blocks; pricing page structure including plan names, price points, feature lists, and tier differentiation; social media profiles across LinkedIn, Twitter/X, Facebook, Instagram, and YouTube with current follower counts, posting frequency, and recent engagement metrics; current ad activity from Google Ads Transparency Center and Meta Ad Library including active campaigns, ad copy samples, and creative formats; and organic search visibility on tracked keywords with current positions, estimated traffic, and SERP feature ownership. This comprehensive baseline snapshot becomes the reference point against which all future changes are measured.
3. **Save baselines via competitor-tracker.py**: Execute `python "${CLAUDE_PLUGIN_ROOT}/scripts/competitor-tracker.py" --brand {slug} --action save-baseline --competitor {name} --url {url} --data '{baseline_json}'` for each competitor. Each baseline record includes the competitor name, primary URL, dimension-specific data snapshots with structured fields for comparison, collection timestamp, data source references, and data completeness indicators (marking any dimensions where data collectiDesign a statistically rigorous A/B or multivariate test plan — If/Then/Because hypothesis, control and variant specs, required sample size per variant (absolute vs relative MDE via sample-size-calculator.py), test duration, guardrail metrics, stopping rules, and go/no-go decision criteria. Triggers on \"/digital-marketing-pro:ab-test-plan\", \"set up an A/B test\", \"how long should my test run\", \"calculate sample size for an experiment\", \"is this test result significant\". Reads the brand profile and past campaign-tracker results to avoid re-testing validated hypotheses; finished tests are evaluated with significance-tester.py by the cro-specialist agent.
Generate 3-5 ad copy variations per platform — headlines, descriptions, and CTAs formatted to Google, Meta, LinkedIn, TikTok, X, and Pinterest specs — each scored 1-10 with policy-compliance flags, A/B testing groupings, and a message-match check against the landing page. Triggers on \"/digital-marketing-pro:ad-creative\", \"write ad copy for Meta\", \"give me RSA headline variations\", \"we need LinkedIn ad copy\", \"draft TikTok ad creative\". Reads the brand profile, guidelines, and compliance rules; routes video ad scripts to /digital-marketing-pro:video-script and gates AI-generated visuals for EU campaigns through /digital-marketing-pro:c2pa-metadata and /digital-marketing-pro:check.
Walk through adding a custom MCP server integration to the plugin — searches npm for an existing MCP package (or scaffolds a custom server from the plugin's guide), generates the exact .mcp.json entry, sets up environment-variable credentials, tests connectivity, and documents the tools the new server exposes. Triggers on \"/digital-marketing-pro:add-integration\", \"connect Ahrefs to the plugin\", \"add a new MCP server\", \"integrate our internal API\", \"hook up Stripe data\". Reads the brand profile and agency credential profiles at ~/.claude-marketing/credentials/ to map client-specific keys; custom builds follow skills/context-engine/custom-mcp-guide.md.
Audit how a brand appears across the 6 canonical AI answer surfaces — ChatGPT, Perplexity, Google AI Mode, AI Overviews, Gemini, Copilot — probing 10-25 queries into a numbered output bundle with per-platform visibility scorecards, citation-accuracy checks, a competitor matrix, content gaps, and an optimization playbook behind a four-gate quality scorecard. Triggers on \"/digital-marketing-pro:aeo-audit\", \"does ChatGPT know about our brand\", \"check our AI search visibility\", \"how does Perplexity describe us\", \"are we showing up in AI Overviews\". Reads the brand profile; reconciles probes against GSC actuals via /digital-marketing-pro:gsc-ai-performance and defines the AI-visibility scoring standard reused by geo-monitor and share-of-voice.
Strategy module for Answer Engine / Generative Engine Optimization — audits AI visibility, restructures content for citation, runs entity-consistency checks across Knowledge Graph, Wikidata, Wikipedia, Crunchbase, and LinkedIn, and produces JSON-LD schema specs, monitoring frameworks, and a 90-day LLM content strategy. Triggers on \"/digital-marketing-pro:aeo-geo\", \"how do we get cited by AI\", \"optimize for AI Overviews\", \"fix our entity consistency\", \"do we need llms.txt\". Reads the brand profile, compliance rules, and industry benchmarks; its measurement counterpart is /digital-marketing-pro:aeo-audit, with GSC actuals via /digital-marketing-pro:gsc-ai-performance.
Generate a portfolio-level dashboard across ALL client brands — per-client RAG health scores, campaign activity, budget pacing, aggregate KPIs, team utilization, pending approvals, upcoming deadlines, and an alerts panel — built for agency standups and weekly reviews. Triggers on \"/digital-marketing-pro:agency-dashboard\", \"how are all our clients doing\", \"portfolio health check\", \"budget pacing across accounts\", \"which accounts are at risk\". Enumerates every brand under ~/.claude-marketing/brands/ and pulls data via campaign-tracker.py, execution-tracker.py, and team-manager.py; drill into a single client with /digital-marketing-pro:performance-report or /digital-marketing-pro:client-report.
Invoke when the user needs to manage multiple client brands, view portfolio-level dashboards, generate client reports, manage SOPs, switch credential profiles, assign team tasks, configure regions, or generate executive summaries. Triggers on requests involving multi-client management, agency workflows, client onboarding, or portfolio oversight.
Invoke when the user needs help with marketing measurement, KPI definition, dashboard design, attribution reporting, performance analysis, competitive benchmarking, or translating data into marketing decisions. Triggers on requests involving metrics, reporting, analytics setup, or data interpretation.