skills/brand-monitor/SKILL.md
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".
npx skillsauth add phy041/claude-agent-skills brand-monitorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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
When user says "monitor [brand]" or "help me monitor [brand]":
web_fetch to visit the brand's websiteBuild a three-tier subreddit + keyword strategy:
Tier A — Core (brand-specific communities)
r/{brand} and related subredditsTier B — Category (industry communities)
Tier C — Interest (broad interest communities)
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.
On user confirmation, write the brand profile to memory/brand-monitor-config.json.
Profile structure:
{
"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.
On each cron wake:
memory/brand-monitor-config.json — if no profiles exist, reply HEARTBEAT_OKmemory/brand-monitor-state.json for last scan timestampsscan_interval_hours# 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.
Compare each post's id against seen_posts in state file. Window: 72 hours.
For each new post, analyze and produce:
{
"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
| Urgency | Action | |---------|--------| | critical | IMMEDIATELY send alert | | high | IMMEDIATELY send alert | | medium | Archive to daily results, include in digest | | low | Archive to daily results only |
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.
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
[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...
| 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 | 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 |
| Job | Schedule | Purpose | |-----|----------|---------| | Reddit Scan | Every 4h | Fetch new posts, analyze, alert | | Daily Digest | Daily 09:00 (your TZ) | Aggregate and send results |
Stop scanning, save progress, retry on next cron cycle.
Each brand is an independent profile. Cron processes them sequentially. Prioritize Tier A across all brands if approaching request limits.
If two brands monitor the same subreddit, scan it once and apply results to both based on keyword matching.
development
Generate Xiaohongshu (小红书) carousel images (3:4, 1080x1440) from structured content. Creates professional slide decks with Chinese typography and proper XHS formatting. Triggers on "做小红书图", "xhs images", "generate xhs slides", "小红书配图", "carousel images", or any XHS image generation request.
testing
Twitter/X account cultivation and growth system. Checks account health (TweepCred, shadowban), analyzes tweets, finds engagement opportunities, recommends unfollows, and tracks progress. Triggers on "/twitter-cultivate", "check my twitter", "twitter health", "grow my twitter", "twitter maintenance", "fix my twitter reach".
development
Post to social media platforms using a multi-provider social posting API. Use when you want to post to Twitter, LinkedIn, Instagram, Facebook, TikTok, Threads, or Bluesky. Triggers on "post to twitter", "post to instagram", "social media post", "share on linkedin", "publish to social", or any social posting request.
development
Detect new GitHub repos and generate formatted ship announcements for social media. Monitors your GitHub profile for new repos pushed today, writes a technical digest, and drafts Twitter/Reddit posts for approval. Triggers on "ship digest", "new repos", "what did I ship", "github ship", or any shipping announcement request.