From openclaudia-openclaudia-skills
Tracks brand mentions across the web, analyzes sentiment, retrieves structured brand info including logos, and finds PR opportunities via Brand.dev API. Useful for media monitoring and online presence analysis.
npx claudepluginhub joshuarweaver/cascade-communication --plugin openclaudia-openclaudia-skillsThis skill uses the workspace's default tool permissions.
Track brand mentions, analyze sentiment, and discover PR opportunities using the Brand.dev API.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
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": "alerts@yourdomain.com"
}
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 |