home / skills / phy041 / claude-agent-skills / brand-monitor

brand-monitor skill

/skills/brand-monitor

This skill helps you monitor Reddit brand health and market signals by auto-generating a layered monitoring plan and delivering alerts and digests.

npx playbooks add skill phy041/claude-agent-skills --skill brand-monitor

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
9.5 KB
---
name: brand-monitor
description: Reddit brand & market intelligence engine. AI-powered onboarding — give it a brand name and it auto-generates the monitoring strategy. Supports multi-brand, layered subreddit monitoring, real-time alerts, and daily digests. Triggers on "/brand-monitor", "monitor [brand]", "check brand", "brand health", "market intelligence".
inputs:
  - name: brand_name
    type: string
    required: true
    description: The brand or competitor name to monitor on Reddit
  - name: scan_tiers
    type: list
    required: false
    description: Subreddit tiers to scan — A (high-signal), B (niche), C (broad). Defaults to all tiers.
outputs:
  - name: alerts
    type: list
    description: List of high-urgency mentions requiring immediate attention
  - name: digest
    type: text
    description: Human-readable daily digest of brand mentions and sentiment
  - name: buyer_signals
    type: list
    description: List of posts/comments showing purchase intent or competitor dissatisfaction
---

# Brand Monitor — Reddit Brand & Market Intelligence Engine

AI-powered brand monitoring system. Give it a brand name and it auto-generates a complete monitoring strategy — subreddit tiers, keywords, competitors, urgency rules. Then it runs on cron, scanning Reddit, analyzing sentiment, and pushing alerts + daily digests.

---

## Architecture

```
Phase 1: Brand Onboarding (one-time per brand)
  User says "monitor DJI" → Agent analyzes website → generates monitoring plan → user confirms → saved to config

Phase 2: Continuous Monitoring (cron-driven, every 4h)
  Read config → curl Reddit JSON → deduplicate → AI analysis → alert or archive

Phase 3: Reporting (cron-driven, daily/weekly)
  Aggregate results → generate digest → send via Telegram
```

---

## Phase 1: Brand Onboarding

When user says "monitor [brand]" or "help me monitor [brand]":

### Step 1 — Analyze the Brand

1. Ask user for the brand website URL if not provided (or search for it)
2. Use `web_fetch` to visit the brand's website
3. Extract:
   - Brand name (English + local name if applicable)
   - Product lines and sub-brands
   - Main product categories
   - Target market / use cases
4. Infer competitors based on industry knowledge + web context
5. Infer common user pain points based on product category

### Step 2 — Generate Tiered Monitoring Plan

Build a three-tier subreddit + keyword strategy:

**Tier A — Core (brand-specific communities)**
- Search for `r/{brand}` and related subreddits
- Keywords: pain points + opportunity words (no brand name needed since the community IS about the brand)
- Scan interval: every 4 hours
- Example for DJI: r/dji, r/djimini → keywords: flyaway, gimbal issue, firmware bug...

**Tier B — Category (industry communities)**
- Search for subreddits matching the product category
- Keywords: brand name + product names
- Scan interval: every 8 hours
- Example for DJI: r/drones, r/DronePhotography → keywords: DJI, Mavic, Avata...

**Tier C — Interest (broad interest communities)**
- Subreddits based on product application scenarios
- Keywords: brand name only (cast wide net)
- Scan interval: every 24 hours
- Example for DJI: r/travel, r/Filmmakers → keywords: DJI, Mavic, Osmo...

### Step 3 — Present Plan to User

Send the monitoring plan for confirmation:

```
Brand Monitor Plan — [Brand Name]

A. Core Communities (scan every 4h):
  - r/xxx — keywords: pain1, pain2, pain3...

B. Category Communities (scan every 8h):
  - r/aaa — keywords: brand1, product1, product2...

C. Interest Communities (scan every 24h):
  - r/ccc — keywords: brand1, product1

Competitors: Competitor1, Competitor2
Critical keywords: recall, injury, lawsuit, class action, fire, explode

Reply "OK" to start monitoring, or tell me what to change.
```

### Step 4 — Save Config

On user confirmation, write the brand profile to `memory/brand-monitor-config.json`.

Profile structure:
```json
{
  "brand_name": "DJI",
  "display_name": "DJI",
  "website": "https://www.dji.com",
  "enabled": true,
  "created_at": "2026-01-01T12:00:00+08:00",
  "tiers": {
    "A": {
      "subreddits": ["dji", "djimini"],
      "keywords": {
        "pain": ["flyaway", "gimbal issue", "firmware bug"],
        "opportunity": ["love my", "best purchase", "recommend"]
      },
      "scan_interval_hours": 4
    },
    "B": {
      "subreddits": ["drones", "DronePhotography"],
      "keywords": {
        "brand": ["DJI", "Mavic", "Avata", "Air 3"]
      },
      "scan_interval_hours": 8
    },
    "C": {
      "subreddits": ["travel", "Filmmakers"],
      "keywords": {
        "brand": ["DJI", "Mavic", "Osmo"]
      },
      "scan_interval_hours": 24
    }
  },
  "competitors": ["Autel", "Skydio", "Parrot"],
  "urgency_rules": {
    "critical_keywords": ["recall", "injury", "lawsuit", "class action", "fire", "explode", "dangerous", "safety hazard"],
    "high_score_threshold": 50,
    "high_comment_threshold": 20
  }
}
```

After saving, immediately run a first scan and report a summary to the user.

---

## Phase 2: Continuous Monitoring (Cron-Driven)

### Data Collection

On each cron wake:

1. Read `memory/brand-monitor-config.json` — if no profiles exist, reply `HEARTBEAT_OK`
2. Read `memory/brand-monitor-state.json` for last scan timestamps
3. For each enabled brand, check which tiers are due based on `scan_interval_hours`
4. For due tiers, fetch posts from Reddit JSON API:

```bash
# Tier A: search pain/opportunity keywords within brand community
curl -s -H "User-Agent: BrandMonitor/1.0" \
  "https://www.reddit.com/r/{subreddit}/search.json?q={keywords_OR_joined}&restrict_sr=1&sort=new&t=day&limit=25"

# Tier B/C: search brand keywords within category/interest community
curl -s -H "User-Agent: BrandMonitor/1.0" \
  "https://www.reddit.com/r/{subreddit}/search.json?q={brand_keywords_OR_joined}&restrict_sr=1&sort=new&t=day&limit=25"
```

**Rate limiting:** 3 seconds between requests, max 15 requests per cron run.

### Deduplication

Compare each post's `id` against `seen_posts` in state file. Window: 72 hours.

### AI Analysis

For each new post, analyze and produce:

```json
{
  "post_id": "t3_xxxxx",
  "subreddit": "dji",
  "tier": "A",
  "title": "Post title",
  "score": 42,
  "num_comments": 23,
  "url": "https://reddit.com/r/dji/comments/xxxxx",
  "created_utc": 1708300000,
  "sentiment": "negative",
  "intent": "bug_report",
  "urgency": "high",
  "summary": "One-line summary",
  "affected_product": "Mini 4 Pro",
  "competitor_mentioned": null,
  "recommended_action": "Suggested action"
}
```

**Sentiment values:** negative, positive, neutral, mixed  
**Intent values:** bug_report, cs_issue, feature_request, positive_showcase, newbie_question, competitor_comparison, buyer_signal, market_insight, general_discussion  
**Urgency values:** critical, high, medium, low

### Alert Routing

| Urgency | Action |
|---------|--------|
| critical | IMMEDIATELY send alert |
| high | IMMEDIATELY send alert |
| medium | Archive to daily results, include in digest |
| low | Archive to daily results only |

### Alert Format (critical/high)

```
Brand Alert — [Brand Name]

Severity: [CRITICAL/HIGH]
Post: [Title] (score: X, comments: Y)
Intent: [Bug Report / CS Issue / etc.]
Summary: [one-line summary]
Product: [affected product or "General"]
Action: [recommended action]
Link: https://reddit.com/r/xxx/comments/xxx

Reply "dig deeper" to analyze comments, or "draft reply" to generate a brand response.
```

---

## Phase 3: Reporting

### Daily Digest

For each enabled brand with results:

```
[Brand Name] Daily Digest — YYYY-MM-DD

Negative (N):
  1. [intent] Title — score/comments

Positive (N):
  1. [intent] Title — score/comments

Buyer Signals (N):
  - [summary]

Trends:
  - Top discussed topics
  - Sentiment shift vs last 7 days
  - Competitor mentions

Insights:
  - Agent's analysis and recommendations
```

### Weekly Report

```
[Brand Name] Weekly Report

Overview:
  - Total posts scanned: X
  - Alerts triggered: Y (Z critical)
  - Sentiment distribution: +N% / -N% / ~N%

Trends, Competitor Watch, Product Line Breakdown, Recommendations...
```

---

## Interactive Commands

| User Says | Agent Does |
|-----------|-----------|
| "monitor [brand]" | Start onboarding flow |
| "check [brand]" | Run immediate full scan |
| "dig deeper [post_url]" | Fetch all comments, deep sentiment analysis |
| "draft reply [post_url]" | Generate brand-appropriate response draft |
| "daily digest" | Generate and send today's digest immediately |
| "weekly report" | Generate and send weekly report immediately |
| "pause [brand]" | Set brand.enabled = false |
| "resume [brand]" | Set brand.enabled = true |
| "monitor list" | List all brand profiles with status |

---

## File Locations

| File | Purpose |
|------|---------|
| `memory/brand-monitor-config.json` | Brand profiles, subreddits, keywords, settings |
| `memory/brand-monitor-state.json` | Scan timestamps, seen posts, daily results, stats |
| `memory/brand-monitor-assets.json` | Saved UGC candidates, positive showcases |

---

## Cron Schedule

| Job | Schedule | Purpose |
|-----|----------|---------|
| Reddit Scan | Every 4h | Fetch new posts, analyze, alert |
| Daily Digest | Daily 09:00 (your TZ) | Aggregate and send results |

---

## Edge Cases

### Reddit API Rate Limited
Stop scanning, save progress, retry on next cron cycle.

### Multiple Brands
Each brand is an independent profile. Cron processes them sequentially. Prioritize Tier A across all brands if approaching request limits.

### Overlapping Subreddits
If two brands monitor the same subreddit, scan it once and apply results to both based on keyword matching.

Overview

This skill is a Reddit brand and market intelligence engine that auto-generates monitoring strategies for one or multiple brands. It performs AI-powered onboarding, sets tiered subreddit and keyword rules, and runs scheduled scans to detect issues, opportunities, and trends. The system sends immediate alerts for critical items and compiles daily and weekly digests for ongoing reporting.

How this skill works

Onboarding: provide a brand name (or URL) and the agent analyzes the website to infer product lines, competitors, pain points, and a three-tier subreddit strategy. Continuous monitoring: cron jobs fetch Reddit JSON for configured subreddits, deduplicate posts, and run AI analysis to classify sentiment, intent, urgency, and affected product. Reporting and alerts: critical/high items trigger instant alerts; medium/low items are archived for daily digests and weekly reports.

When to use it

  • Set up proactive brand reputation monitoring on Reddit for product launches or recalls.
  • Track competitor mentions, buyer signals, and market trends for growth and strategy.
  • Detect customer service issues early to reduce escalation and negative PR.
  • Automate daily digests and weekly summaries for founder or growth teams.
  • Quickly triage urgent safety or legal signals like recalls, injuries, or lawsuits.

Best practices

  • Provide the brand website during onboarding to improve competitor and product inference.
  • Confirm or tweak generated tiers and keywords before enabling active monitoring.
  • Prioritize Tier A communities for rapid detection of brand-specific issues.
  • Set realistic scan intervals and respect Reddit rate limits to avoid disruptions.
  • Use alert routing rules to ensure critical items are handled immediately by the right person.

Example use cases

  • A founder runs `monitor [brand]` to generate a monitoring plan and receive a first-scan summary immediately.
  • Growth teams receive instant alerts for high-severity bug reports or safety incidents and follow up with drafted replies.
  • Product teams review daily digests that surface feature requests and common pain points from category subreddits.
  • Competitive intelligence: the agent flags and summarizes competitor mentions and market sentiment shifts.
  • Customer support triggers `dig deeper [post_url]` to analyze comments and craft a tailored response.

FAQ

How quickly are alerts delivered for critical posts?

Critical and high-severity posts are routed immediately after AI analysis; cron frequency and rate limits determine detection latency.

Can I monitor multiple brands and shared subreddits?

Yes. Each brand has an independent profile; overlapping subreddits are scanned once and results applied to relevant brands.