skills/brand-monitor/SKILL.md
Brand monitoring and mention tracking via the Brand.dev API. Use when asked to monitor brand mentions, track sentiment, find PR opportunities, detect logo usage, or analyze brand presence online. Trigger phrases: "brand monitoring", "mention tracking", "brand sentiment", "PR opportunities", "logo detection", "brand.dev", "brand mentions", "media monitoring".
npx skillsauth add OpenClaudia/openclaudia-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.
Track brand mentions, analyze sentiment, and discover PR opportunities using the Brand.dev API.
Requires BRANDDEV_API_KEY set in .env, .env.local, or ~/.claude/.env.global.
echo "BRANDDEV_API_KEY is ${BRANDDEV_API_KEY:+set}"
If the key is not set, instruct the user:
You need a Brand.dev API key. Get one at https://brand.dev/ Then add
BRANDDEV_API_KEY=your_keyto your.envfile.
All requests go to https://api.brand.dev/v1/ with the header Authorization: Bearer {BRANDDEV_API_KEY}.
Search for mentions of a brand name across the web.
GET https://api.brand.dev/v1/brand/search
| Param | Type | Description |
|-------|------|-------------|
| query | string | Brand name or phrase to search |
| limit | int | Number of results (default 20, max 100) |
| offset | int | Pagination offset |
| sort | string | relevance or date |
| from_date | string | Start date (YYYY-MM-DD) |
| to_date | string | End date (YYYY-MM-DD) |
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/brand/search?query=YourBrand&limit=20&sort=date"
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/brand/search?query=YourBrand&limit=20" \
| python3 -c "
import json, sys
data = json.load(sys.stdin)
for m in data.get('results', []):
print(f\"Source: {m.get('source','')} | Title: {m.get('title','')} | Sentiment: {m.get('sentiment','n/a')} | Date: {m.get('published_at','')}\")
print(f\" URL: {m.get('url','')}\")
print()
"
Get structured brand information for any company or product.
GET https://api.brand.dev/v1/brand/info
| Param | Type | Description |
|-------|------|-------------|
| domain | string | Company domain (e.g., stripe.com) |
| name | string | Brand name (alternative to domain) |
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/brand/info?domain=stripe.com"
name: Official brand namedomain: Primary domaindescription: Brand descriptionindustry: Industry classificationfounded: Year foundedheadquarters: Locationsocial_profiles: Links to social medialogos: Brand logo URLscolors: Brand color paletteemployees_range: Company size estimateDetect brand logos in images across the web.
GET https://api.brand.dev/v1/logo/search
| Param | Type | Description |
|-------|------|-------------|
| brand | string | Brand name to search for |
| domain | string | Filter to specific domain |
| limit | int | Number of results |
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/logo/search?brand=YourBrand&limit=20"
Use logo detection to find:
Set up ongoing tracking for brand mentions.
POST https://api.brand.dev/v1/monitors
{
"name": "My Brand Monitor",
"keywords": ["YourBrand", "Your Brand", "yourbrand.com"],
"exclude_keywords": ["unrelated term"],
"sources": ["news", "blogs", "social", "forums", "reviews"],
"languages": ["en"],
"notify_email": "[email protected]"
}
curl -s -X POST -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
-H "Content-Type: application/json" \
"https://api.brand.dev/v1/monitors" \
-d '{
"name": "Brand Alert",
"keywords": ["YourBrand"],
"sources": ["news", "blogs", "social"],
"languages": ["en"]
}'
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/monitors"
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/monitors/{monitor_id}/mentions?limit=50&sort=date"
Analyze sentiment of brand mentions.
GET https://api.brand.dev/v1/brand/sentiment
| Param | Type | Description |
|-------|------|-------------|
| query | string | Brand name |
| from_date | string | Start date |
| to_date | string | End date |
| granularity | string | day, week, or month |
curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/brand/sentiment?query=YourBrand&from_date=2024-01-01&to_date=2024-03-31&granularity=week"
Compare brand mention volume and sentiment against competitors.
# For each brand, get mention counts
for brand in "YourBrand" "Competitor1" "Competitor2"; do
count=$(curl -s -H "Authorization: Bearer ${BRANDDEV_API_KEY}" \
"https://api.brand.dev/v1/brand/search?query=${brand}&limit=1" \
| python3 -c "import json,sys; print(json.load(sys.stdin).get('total',0))")
echo "${brand}: ${count} mentions"
done
When asked for a comprehensive brand monitoring report:
Pull structured brand data for context.
Search for brand mentions over the last 30/90 days. Count total mentions and break down by source type.
Get sentiment trends. Flag any negative spikes and investigate root causes.
From mention data, identify:
Search for logo appearances. Flag unauthorized usage.
Present findings as:
## Brand Monitoring Report: {Brand}
### Overview
- Total mentions (last 30 days): X
- Sentiment breakdown: X% positive, X% neutral, X% negative
- Top sources: ...
### Sentiment Trend
[Weekly trend data]
### Top Positive Mentions
1. [Source] - [Title] - [URL]
2. ...
### Negative Mentions Requiring Attention
1. [Source] - [Title] - [URL] - [Issue summary]
2. ...
### PR Opportunities
1. [Publication] covers [topic] - pitch angle: ...
2. [Journalist] recently wrote about [topic] - pitch angle: ...
### Competitor Comparison
| Metric | Your Brand | Competitor A | Competitor B |
|--------|-----------|-------------|-------------|
| Mentions | ... | ... | ... |
| Positive % | ... | ... | ... |
| Top Source | ... | ... | ... |
### Action Items
- [ ] Respond to [negative mention]
- [ ] Pitch [publication] about [topic]
- [ ] Update brand listing on [platform]
| Status | Meaning | |--------|---------| | 401 | Invalid or expired API key | | 403 | Insufficient permissions for this endpoint | | 404 | Resource not found (check monitor ID) | | 429 | Rate limit exceeded - wait and retry | | 500 | Server error - retry after a few seconds |
testing
Edit podcast audio — trim pre/post-show chat, remove filler words, cut silences, and enhance audio quality. Use when the user asks to edit a podcast, clean up audio, remove fillers, trim a recording, or improve voice quality.
data-ai
Generate images using AI (OpenAI GPT Image or Stability AI). Use when the user asks to generate an image, create an AI image, make an illustration, or produce artwork from a text prompt.
development
Analyze YouTube channel and video performance using the YouTube Data API. Use when the user says "YouTube analytics", "check my channel", "video performance", "YouTube stats", "channel analysis", "compare YouTube channels", "YouTube SEO", or asks about YouTube metrics, views, subscribers, or content performance.
development
Create high-converting landing page copy and structure. Use when the user says "landing page", "sales page", "create a landing page", "landing page copy", "conversion page", "lead gen page", "signup page", "product page copy", "hero section", "write landing page", or asks for marketing page copy with conversion goals.