Skip to main content
skill CX Codex

tracking-brand-sentiment-across-platforms — Claude Code skill

Pulls brand mentions from Twitter, Reddit and TikTok, scores sentiment per platform, and returns one brand health number from 0 to 100.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add apidojo-io/apidojo-skills --skill tracking-brand-sentiment-across-platforms -a claude-code
Open on GitHub

What tracking-brand-sentiment-across-platforms does

The skill fires three Apify scrapers in parallel: apidojo~tweet-scraper for Twitter and Reddit, apidojo~tiktok-scraper for TikTok. Every post then goes through lexical sentiment classification, and the weight of a single voice depends on the platform: likes and replies on Twitter, upvotes and comments on Reddit, plays and likes on TikTok.

The composite score is a weighted sum, with Reddit at 0.40, Twitter at 0.35 and TikTok at 0.25. The 0 to 100 range is split into bands from crisis to strong. A swing of more than 20 points gets flagged as ALERT, which is your cue to check whether something just happened to the brand.

You need the APIFY_TOKEN environment variable set before running anything. An Apify account is required too, since the scrapers execute there rather than locally. If the brand name is an ordinary word like "Apple", tighten the search terms or the sample fills up with noise. When Reddit returns nothing for a brand, that platform's weight drops to zero and gets redistributed.

What it helps with

  • see brand mentions across three social networks at once
  • compare how Twitter and Reddit talk about a product
  • get one brand health number instead of three separate reports
  • catch a sharp sentiment swing after a product launch
  • pull the most visible negative and positive posts with their themes

Example prompts for the agent

  • analyze sentiment for our brand on Twitter, Reddit and TikTok over the past month
  • compare brand sentiment between Twitter and Reddit and give me the overall health score
  • build a launch reaction report with top negative and positive posts per platform

How to install tracking-brand-sentiment-across-platforms

1Skills CLI (Vercel)

npx skills add apidojo-io/apidojo-skills --skill tracking-brand-sentiment-across-platforms -a claude-code

2Manually: put the files in place

~/.claude/skills/tracking-brand-sentiment-across-platforms/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/tracking-brand-sentiment-across-platforms/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about tracking-brand-sentiment-across-platforms

How do I install tracking-brand-sentiment-across-platforms in Claude?

Run npx skills add apidojo-io/apidojo-skills --skill tracking-brand-sentiment-across-platforms -a claude-code. The skill lands at ~/.claude/skills/tracking-brand-sentiment-across-platforms/SKILL.md.

What does tracking-brand-sentiment-across-platforms do?

It runs Apify scrapers for Twitter, Reddit and TikTok, classifies sentiment on each platform, and merges the results into a single 0 to 100 score with theme breakdowns and the most impactful posts.

What do I need before using it?

The APIFY_TOKEN environment variable and an Apify account, since the scrapers run there. An Apify MCP server is optional and routes the calls through it.

Source text

SKILL.md · Apache-2.0
---
name: tracking-brand-sentiment-across-platforms
description: >
  Tracks brand sentiment across Twitter Reddit and TikTok simultaneously using apidojo's scrapers
  on Apify. Triggers when the user asks to: monitor brand reputation across social platforms,
  track how people talk about a brand on multiple channels, compare brand sentiment on Twitter
  vs Reddit vs TikTok, get a cross-platform brand health score, monitor a product launch reaction
  across social media, measure overall public sentiment for a brand, or build a multi-platform
  social listening dashboard for a brand.
  Returns per-platform sentiment distribution, cross-platform score, top positive/negative posts, and theme analysis.
  Ideal for brand managers, CMOs, PR teams, and reputation management agencies.
license: Apache-2.0
metadata:
  author: apidojo
  version: "1.0"
  apify-actors: apidojo/tweet-scraper, apidojo/tweet-scraper, apidojo/tiktok-scraper
---

# Tracking Brand Sentiment Across Platforms

Monitors brand sentiment on Twitter, Reddit, and TikTok in parallel, then produces a unified brand health score. Each platform serves a different role: Twitter = real-time news/opinion, Reddit = deep community discussion, TikTok = Gen Z product culture.

## Prerequisites

- `APIFY_TOKEN` environment variable set
- Optional: Apify MCP server installed

## Inputs

| Parameter | Type | Required | Default | Notes |
|-----------|------|----------|---------|-------|
| `searchTerms` | array | ✅ | `[]` | Twitter advanced search queries (e.g. `["#AI lang:en", "from:NASA"]`) |
| `sort` | string | Optional | `Top` | Sort order: `Latest`, `Top`, or `Latest+Top` |
| `tweetLanguage` | string | Optional | — | ISO 639-1 language code (e.g. `en`) |
| `maxItems` | number | Optional | Unlimited | Maximum tweets to return |
| `onlyVerifiedUsers` | boolean | Optional | `false` | Only tweets from verified users |
| `onlyTwitterBlue` | boolean | Optional | `false` | Only Twitter Blue subscribers |
| `onlyImage` | boolean | Optional | `false` | Only tweets with images |
| `onlyVideo` | boolean | Optional | `false` | Only tweets with videos |
| `onlyQuote` | boolean | Optional | `false` | Only quote tweets |
| `author` | string | Optional | — | Filter to a specific author handle |
| `inReplyTo` | string | Optional | — | Tweets replying to a specific handle |
| `mentioning` | string | Optional | — | Tweets mentioning a specific handle |
| `geotaggedNear` | string | Optional | — | Tweets near a location |
| `withinRadius` | string | Optional | — | Radius around geotaggedNear |
| `geocode` | string | Optional | — | Lat/lng + radius string |
| `placeObjectId` | string | Optional | — | Tweets tagged with a place |
| `minimumRetweets` | number | Optional | — | Minimum retweet count |
| `minimumFavorites` | number | Optional | — | Minimum like count |
| `minimumReplies` | number | Optional | — | Minimum reply count |
| `start` | string | Optional | — | Tweets after this date (YYYY-MM-DD) |
| `end` | string | Optional | — | Tweets before this date (YYYY-MM-DD) |
| `includeSearchTerms` | boolean | Optional | `false` | Add the matched search term to each tweet |
| `customMapFunction` | string | Optional | — | JavaScript function to transform each output object |

## Workflow

```
Progress:
- [ ] Step 1: Run scrapers for all three platforms in parallel
- [ ] Step 2: Classify sentiment per platform
- [ ] Step 3: Calculate cross-platform brand health score
- [ ] Step 4: Identify top themes and alerts
- [ ] Step 5: Deliver unified report
```

### Step 1: Run Three Scrapers

**Twitter (If Apify MCP is available):**
```
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input: {"searchTerms": ["[BRAND_NAME]"], "maxItems": 300, "tweetLanguage": "en"}
```

**Reddit:**
```
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input: {"searches": ["[BRAND_NAME]"], "maxItems": 200, "sort": "new", "time": "month"}
```

**TikTok:**
```
Tool: apify:run-actor
Actor: "apidojo~tiktok-scraper"
Input: {"keywords": ["#[brandname]", "#[brandname]review"], "maxItems": 200}
```

**REST API fallback — run each sequentially:**
```bash
# Twitter
curl -X POST "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"searchTerms": ["[BRAND_NAME]"], "maxItems": 300}'

# Reddit
curl -X POST "https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN"   -H "Content-Type: application/json"   -d '{"searches": ["[BRAND_NAME]"], "maxItems": 200, "sort": "new", "time": "month"}'
```

### Step 2: Sentiment Classification

Use the same lexical model for all platforms (positive/negative/neutral indicators from `analyzing-twitter-sentiment-for-topic` skill). Weight by platform-specific engagement:
- Twitter: `likeCount + replyCount * 3`
- Reddit: `upvotes + commentCount * 2`
- TikTok: `playCount / 1000 + diggCount`

### Step 3: Brand Health Score

```
platform_sentiment[p] = (positive_count[p] - negative_count[p]) / total_count[p]  # range: -1 to +1

platform_weight = {twitter: 0.35, reddit: 0.40, tiktok: 0.25}  # Reddit = most considered opinion

brand_health_score = sum(platform_sentiment[p] * platform_weight[p] for p in platforms)
brand_health_score = (brand_health_score + 1) / 2 * 100  # normalize to 0-100
```

**Score interpretation:** 0–40 = Crisis, 40–55 = Concerning, 55–70 = Neutral, 70–85 = Positive, 85–100 = Strong.

### Step 4: Edge Cases

- **Brand name is a common word** (e.g. "Apple"): Add qualifier ("Apple iPhone", "Apple Inc") to search to reduce noise; report disambiguation rate
- **One platform dominates volume** (e.g. TikTok has 10× Twitter posts): Weight by volume in the composite score
- **Rapid sentiment shift** (score changes > 20 points): Flag as `ALERT` — may indicate PR crisis or viral positive moment
- **Reddit returns no results**: Brand may not be discussed there; set `reddit_weight = 0` and redistribute to other platforms

## Output Format

```
# Cross-Platform Brand Sentiment: [BRAND_NAME]
Period: [DATE_RANGE] | Total posts: [N] | Date: [DATE]

## Brand Health Score: [X]/100 — [INTERPRETATION]

## Per-Platform Breakdown
| Platform | Posts | Positive | Negative | Neutral | Score |
|----------|-------|----------|----------|---------|-------|
| Twitter | [N] | [X%] | [X%] | [X%] | [+/-X] |
| Reddit | [N] | [X%] | [X%] | [X%] | [+/-X] |
| TikTok | [N] | [X%] | [X%] | [X%] | [+/-X] |

## Top Negative Themes (Cross-Platform)
1. [Theme] — [N] posts across [platforms]
2. [Theme]

## Top Positive Themes
1. [Theme] — [N] posts
2. [Theme]

## Most Impactful Posts
🔴 Top negative: [platform] | [handle] | [N engagement] | "[excerpt]"
🟢 Top positive: [platform] | [handle] | [N engagement] | "[excerpt]"
```

## Troubleshooting

**Brand health score conflicts between platforms**: This is meaningful signal — discuss in output why platforms diverge (e.g. "Reddit community discusses product quality issues while TikTok shows positive unboxing content").
**Sample too small for reliable sentiment** (< 50 posts per platform): Widen date range or note low confidence in that platform's score.
**Brand name not found on a platform**: Some brands have no organic TikTok presence — note as gap in output.



**Recommended — run_actor.js (handles waiting, output, and file saving automatically):**
```bash
# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~tweet-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~tweet-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~tweet-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json
```
> `APIFY_TOKEN` must be set in environment or `.env` file.

© apidojo · Apache-2.0 · apidojo-io/apidojo-skills

Similar skills

Everything for Marketing and content →

From the same set22

building-journalist-outreach-list-from-twitter Builds journalist and media contact lists for a given beat by scraping Twitter/X through Apify. Useful when you need names before a press pitch. CX Codex +1 780installs finding-ecommerce-brands-for-outreach Builds a list of e-commerce and DTC brands on Instagram and TikTok by product-category hashtags. Useful when you need an outreach list instead of scrolling profiles by hand. CX Codex +1 776installs tracking-competitor-social-media-growth Pulls follower counts and engagement for competitor accounts on Twitter/X, TikTok and Instagram, then lines them up side by side. Useful when you need to compare how accounts grow. CX Codex +1 771installs discovering-tiktok-shop-sellers-by-niche Maps TikTok Shop sellers and products in a niche: who promotes what, which items move, where the gaps are. CX Codex +1 770installs finding-tiktok-creators-by-location Finds TikTok creators and their videos by geographic location through apidojo's scraper on Apify. Useful for local campaigns and regional research. CX Codex +1 766installs tracking-google-serp-rankings A skill that pulls Google results for a keyword list: positions, URLs, titles, snippets and SERP features. Useful for SEO audits and competitor checks. CX Codex +1 763installs scraping-google-search-results Pulls Google search results for any query: URLs, titles, snippets, positions and SERP feature types. Handy when you need raw SERP data for SEO or competitor work. CX Codex +1 759installs benchmarking-instagram-influencer-engagement Pulls recent Instagram posts and turns them into engagement benchmarks: followers, average likes and comments, ER, posting frequency. CX Codex +1 757installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor