Run a complete social listening sweep for a brand — build Boolean keyword queries, collect mentions, score sentiment, detect volume spikes, benchmark competitors via share of voice, and produce a prioritized action brief. Triggers when someone asks to monitor brand mentions, track competitors on social, measure brand sentiment, spot trends early, or set up mention alerts.
name: social_listening description: Run a complete social listening sweep for a brand — build Boolean keyword queries, collect mentions, score sentiment, detect volume spikes, benchmark competitors via share of voice, and produce a prioritized action brief. Triggers when someone asks to monitor brand mentions, track competitors on social, measure brand sentiment, spot trends early, or set up mention alerts.
Social Listening
Purpose
Turn the firehose of public conversation about a brand into a prioritized brief: what's being said, how people feel about it, what changed, and what to do next. This skill covers the full loop — query design, collection, sentiment scoring, spike detection, competitor benchmarking, and the action report — and is tool-agnostic: it works with any listening platform (Brand24, Mention, Brandwatch, Sprout Social) or with free sources (Google Alerts, platform search, Reddit).
Listening is not monitoring. Monitoring counts mentions; listening adds context — reach, sentiment, share of voice, engagement — and turns it into decisions.
Workflow
1. Define the listening brief
Get explicit from the requester before touching any tool:
- Target: brand name(s), product names, handles, campaign hashtags.
- Goal: one of reputation management, competitor tracking, trend spotting, crisis detection, campaign measurement.
- Scope: platforms (X, Reddit, Instagram, TikTok, YouTube, news, forums, review sites), languages, date range.
- Competitors: 3–5 direct rivals, never 15 (more is noise, not coverage).
2. Build Boolean queries
Use scripts/build_query.py to generate tool-ready queries from a brand config. Query anatomy — \[Main term\] AND \[context terms\] NOT \[excluded terms\]:
- Main term: brand name OR quoted exact name OR @handle OR common misspellings (see
references/boolean-query-reference.md).
- Context: complaint/issue/problem for reputation; launch/announce/"new feature" for competitor intel; review/opinion/"what I think" for product feedback.
- Exclusions: job posts (
NOT job), spam/test mentions, unrelated same-name entities. Verified vendor examples live in references/boolean-query-reference.md.
3. Collect mentions
Ranked by depth:
- Listening platform (Brand24 / Mention / Brandwatch / Sprout Social) — real-time alerts, sentiment, reach, anomaly detection.
- Free tier — Google Alerts (web mentions only, no social, no analytics), Talkwalker Free Social Search, platform-native search.
- Manual sweep — X advanced search, Reddit search, review sites for the date range. Log every mention as a row:
date, platform, author, text, url, target (target = brand or competitor name for share of voice). A sample_mentions.csv template is in assets/.
4. Score sentiment and detect spikes
Run scripts/listen_analyze.py mentions.csv — it computes:
- Sentiment split (positive / negative / neutral, %) via lexicon triage. Treat this as a triage pass: production tools use NLP models (Brand24 reports ~95% accuracy); the lexicon flags what a human should re-check. See
references/sentiment-rubric.md for the rubric and worked examples.
- Spike detection — daily mention counts with a z-score; any day ≥ 2σ above the rolling mean is flagged for crisis/opportunity review.
- Share of voice — brand mentions ÷ total (brand + competitor) mentions, split by sentiment.
- Top terms — most frequent non-stopword tokens in negative and positive mentions, to name the actual topic driving the signal.
5. Categorize and prioritize
Tag each mention: sentiment × channel × type (question, compliment, complaint, comparison, unboxing/review). Triage order: complaints with negative sentiment first, then comparison posts, then questions, then compliments (the last are UGC/repost opportunities).
6. Deliver the listening brief
Fill assets/report_template.md and hand it back:
- Headline numbers: volume, sentiment split, share of voice, spike days.
- Top 3 themes with representative quotes.
- Competitor snapshot.
- Action list with owner and deadline (respond to negative < 4h is the standing SLA).
Output Contract
Every listening run returns:
- The Boolean queries used (paste-ready, with tool target named).
- The mention CSV (raw data, deduplicated).
- The analysis output (sentiment split, share of voice, spike flags, top terms).
- The listening brief (report template filled in, max 2 pages, actions at the top).
Operating Rules
- Never present an unverified mention as fact. A mention is a claim made by someone online; label quotes as quotes, never as events.
- Never report sentiment without the denominator. "72% negative" is meaningless without "of 214 mentions, 2026-09-10–2026-09-24."
- One spike is not a trend. Flag it, pull the posts, check for bots/amplification before declaring anything.
- Respect access limits. Listening tools only see public mentions; never promise coverage of private accounts, DMs, or gated groups.
- Update the queries monthly. Language drifts; the keyword list that worked in January misses the slang of June.
- Listen, then act. A sweep that ends in a PDF nobody opens is a failed sweep. Every brief ends with named actions and deadlines.
No ratings yet — be the first to rate it.