Skip to main content
ClaudeWave
Skill136 repo starsupdated 4d ago

competitor-monitor

Set up ongoing competitor monitoring. Use when: defining tracked competitors, scan frequency, change detection alerts.

Install in Claude Code
Copy
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-monitor
Then start a new Claude Code session; the skill loads automatically.

SKILL.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 `competitor-tracker.py save-baseline` with the collected baseline data 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 collection was partial or unavailable). Baselines are stored per-brand at `~/.claude-marketing/
agency-operationsSubagent

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.

analytics-analystSubagent

Invoke when the user needs help with marketing measurement, KPI definition, dashboard design, attribution modeling, performance analysis, anomaly detection, competitive benchmarking, or translating data into marketing decisions. Triggers on requests involving metrics, reporting, analytics setup, or data interpretation.

brand-guardianSubagent

Invoke when marketing content needs quality control review — brand voice consistency checks, regulatory compliance verification (GDPR, CAN-SPAM, CCPA, HIPAA, FTC, industry-specific), accessibility auditing (WCAG 2.1), inclusive language review, or brand safety assessment. Automatically invoked as a final review step before any content is published or delivered.

competitive-intelSubagent

Invoke when the user needs competitor analysis — content strategy teardowns, SEO gap analysis, paid ad analysis from ad libraries, social media benchmarking, AI visibility comparisons, pricing and positioning research, or market landscape mapping. Triggers on requests mentioning competitors, competitive gaps, market analysis, or benchmarking.

competitor-intelligenceSubagent

Use when the task requires ongoing competitive monitoring, competitor change detection, share of voice tracking, competitive alerts, ad monitoring, price monitoring, win/loss analysis, or competitive narrative mapping.

content-creatorSubagent

Invoke when the user needs any form of marketing content created or refined — blog posts, ad copy, email campaigns, social media posts, landing page copy, press releases, video scripts, product descriptions, or newsletter content. Triggers on requests to write, draft, rewrite, or improve marketing copy.

crm-managerSubagent

Invoke when the user needs to manage CRM operations — creating contacts, importing leads, updating deals, syncing campaign data, segmenting audiences, managing pipelines, or connecting marketing data to Salesforce, HubSpot, Zoho, or Pipedrive. Triggers on requests involving CRM data, lead management, pipeline updates, or sales-marketing alignment.

cro-specialistSubagent

Invoke when the user needs help with conversion rate optimization — landing page audits, A/B test design, form optimization, pricing page strategy, checkout flow improvement, personalization, statistical significance calculations, page speed impact analysis, or mobile conversion optimization. Triggers on requests involving conversions, landing pages, A/B testing, or optimization experiments.