X Brand Pulse: Themes, Spikes, Share of Voice avatar

X Brand Pulse: Themes, Spikes, Share of Voice

Pricing

from $1.00 / 1,000 post analyseds

Go to Apify Store
X Brand Pulse: Themes, Spikes, Share of Voice

X Brand Pulse: Themes, Spikes, Share of Voice

Turns X (Twitter) posts about your brand into a weekly pulse: themes, sentiment trend, spikes, share of voice vs competitors, top questions, 5 actions.

Pricing

from $1.00 / 1,000 post analyseds

Rating

0.0

(0)

Developer

Seasons AI

Seasons AI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

X (Twitter) Brand Pulse: Themes, Spikes, Share of Voice

Ran the Tweet Scraper for your brand, product or topic? Pick its dataset here and get a weekly brand pulse your PR, marketing and product teams can act on: what people talk about, how sentiment moves day by day, which posts caused each spike, how loud you are next to your competitors, what people keep asking, and 5 actions for this week.

What you get

  • Every post labelled: on topic or not, sentiment, intent (complaint, praise, question, feature request, news, joke), themes, and which of your listed brands it mentions.
  • Themes found automatically, then grouped into a short list (up to 15, plus Other), such as Outages & Performance, Pricing & Plans or AI Features. Each theme shows volume, share, net sentiment, complaints, questions and feature requests, this week against last week.
  • Daily series: posts, engagement, sentiment, intents, themes and brand mentions for each day (or each hour for short searches).
  • Spikes with the 3 posts that drove them: days with far more posts than usual, and themes that jump on an otherwise normal day. The 3 posts with the most engagement are listed with links.
  • Share of voice vs your competitors: posts, engagement share and net sentiment per brand, this week against last week, with each brand's top themes.
  • Top questions: questions people ask, grouped and counted, ready for an FAQ or a support macro.
  • Weekly digest with 5 actions: a headline, a short summary and 5 concrete actions, each with the evidence behind it and an owner (product, support, marketing, PR, community).
  • Coincidental matches filtered out: "notion" meaning "idea" or a sale on "notions" is marked off topic and kept out of themes and share of voice.

The Actor works at content level only: it never outputs usernames, display names, bios or follower counts. Details are under Privacy.

How to use it

  1. Run Tweet Scraper with a search for your brand, product or topic, for example notion OR "notion ai" OR @NotionHQ. A week or more of posts gives the best series and spikes.
  2. Open this Actor and pick that run's dataset in Posts dataset.
  3. Enter your brand with its aliases and handles, and your competitors. Add one sentence about the topic so off-topic matches get dropped.
  4. Start the run. Open digest.md in the key-value store, or the Posts with labels table in the dataset.

You can pass posts in two other ways:

  • postsUrl: a public link to a JSON, JSON Lines or CSV file.
  • items: a JSON array pasted into the form.

Columns are matched by common names: text/fullText, createdAt/created at/date, likeCount/likes, retweetCount/reposts, replyCount, quoteCount, viewCount/views, lang, url, id. Counts like 1.2K work. Posts from other networks work too if they have text and a date.

Run it every week with the same brands and the theme names from last week (themeTaxonomy) to get numbers you can compare week to week.

Input

FieldDefaultDescription
datasetId–Dataset of a Tweet Scraper run, chosen with the picker. The Actor only reads it.
postsUrl–Instead of a dataset: a public JSON or CSV file, up to 50 MB.
itemssampleInstead of a dataset or file: posts as a JSON array.
brandNames–Your brand first, then aliases and official handles, e.g. Notion, Notion AI, @NotionHQ.
competitors–One competitor per line, with aliases and handles separated by |, e.g. Obsidian | @obsdmd. Up to 10.
topicContext–One sentence about what the posts should be about. Required when no brand is given.
maxPosts1000Most posts labelled (and charged) per run, from 1 to 5,000. All posts still count in the volume series.
digestDays7The digest compares the last N days, ending at the newest post, with the N days before.
bucketautoday, hour, or auto: daily, or hourly when the posts cover less than 3 days. UTC.
includeRetweetsfalsePlain reposts repeat the original text, so they are skipped by default. Quote posts and replies are always kept.
themeTaxonomy–Theme names from an earlier run (taxonomy in summary.json). New posts are grouped into these names first.
allowNewThemestrueWith themeTaxonomy: whether new themes can be added.
{
"datasetId": "<your Tweet Scraper run's dataset>",
"brandNames": ["Notion", "Notion AI", "@NotionHQ"],
"competitors": ["Obsidian | @obsdmd", "Evernote"],
"topicContext": "Note-taking and productivity apps",
"maxPosts": 1000
}

Output

Dataset: one row per post (trimmed):

{
"postId": "1900000000000100064",
"url": "https://x.com/i/status/1900000000000100064",
"createdAt": "2026-10-22T14:07:00.000Z",
"text": "Notion is down?? Can't open any page. Deadline in 2 hours.",
"lang": "en",
"likes": 396, "reposts": 20, "replies": 32, "quotes": 0, "views": 20090,
"engagement": 468,
"relevant": true,
"sentiment": "negative",
"intent": "complaint",
"themes": ["Outages & Performance"],
"topics": ["service outage"],
"brandsMentioned": ["Notion"],
"otherProducts": [],
"question": null,
"charged": true
}

Key-value store:

  • digest.md: the weekly digest. It has the headline and summary, a this-week-vs-last-week table, 5 actions, share of voice, themes, spikes with their 3 posts, top questions, complaints and feature requests by theme, and the volume table.
  • summary.json: the same data in full, including the series and the theme list to reuse next week (taxonomy).
  • series.csv: one row per day (or hour), with posts, engagement, views, sentiment counts, net sentiment, intents, one column per theme and one per brand.
  • OUTPUT: a short run summary with links.

Excerpt of digest.md from a test run on a synthetic data set:

**Notion faces significant outage impact, driving negative sentiment and user concerns.**
| | This week | Last week | Change |
|---|---|---|---|
| Posts | 53 | 31 | +71% |
| Net sentiment | -33 | -7 | -26 |
| complaints | 17 | 7 | +143% |
## 5 actions for this week
1. **Publish an FAQ addressing the recent outage, sync issues, and data integrity concerns.** _(support, Outages & Performance)_ — A major outage spike drove 20 posts on 'Outages & Performance' ...
## Share of voice
| Brand | Posts | Share | Engagement share | Net sentiment | This week share | Last week share | Top themes |
| Notion (you) | 51 | 57.3% | 75.5% | -41 | 64.4% | 43.3% | Outages & Performance, ... |
| Obsidian | 26 | 29.2% | 17% | -4 | 25.4% | 36.7% | Sync & Offline Access, ... |
## Spikes
- **2026-10-22**: 21 posts, 4.2× the usual 5. Net sentiment -86. Main themes: Outages & Performance. Posts that drove it:
- "Notion is down?? Can't open any page. Deadline in 2 hours." — 396 likes, 20 reposts, 32 replies, 20090 views, negative (open)

How the numbers work

  • Engagement = likes + 2 × reposts + replies + quotes. Views are reported but not added in, because they are often missing.
  • Net sentiment = (positive − negative) / on-topic posts, from −100 to +100.
  • Volume counts every post read. Sentiment, themes, questions and share of voice count only posts that were analysed and are on topic.
  • Spike: a day (or hour) with at least 5 posts, at least twice the median of the other days, and above the median + 3 × MAD (median absolute deviation). A theme spike needs at least 5 posts on that theme, with the same rules applied to that theme's own counts. Spike detection needs 4 or more days (or hours) of data.
  • Share of voice: on-topic posts that mention each brand by name, alias or handle, or that the AI recognises as being about it. A handle that starts with a brand name, such as @NotionHQ for Notion, counts too.
  • This week: the last digestDays days, ending at the newest post in the data. Last week is the same number of days before that.

Privacy

This tool works at content level and does not profile authors.

  • It never outputs usernames, display names, author bios, follower counts or profile links. It reads the author fields only to remove those names from the text.
  • Links to X posts are rebuilt as https://x.com/i/status/<id>. These links open the post but carry no username.
  • In post text and excerpts, @handles become @user, author names and other personal names become [name], and links and email addresses become [link] and [email]. The brand names, aliases and handles you list stay as they are.
  • AI-written text (themes, questions, digest, actions) goes through the same name filter. Names that slip through become "someone".
  • Name detection is automatic, works best in English and can miss a name, so read excerpts before you share them.

Pricing

Pay per event. Failed posts and failed digests are free.

EventPrice
Post analysed (relevance, sentiment, intent, themes, brands)$0.001
Digest (themes, series, spikes, share of voice, questions, 5 actions)$0.03 per run

Examples:

  • 200 posts: 200 × $0.001 + $0.03 = $0.23
  • 1,000 posts (the default cap): 1,000 × $0.001 + $0.03 = $1.03

Off-topic posts are analysed and charged as well, because the Actor has to read them to tell they are off topic. A narrow search keeps that share low. Before it starts, the Actor works out the most the run can cost. If that is above the run's maximum cost, it stops without charging and tells you the amount to set.

Available on paid Apify plans.

Limits

  • Up to 5,000 posts labelled per run (maxPosts, default 1,000). The volume series covers every post read, up to the first 20,000 items of a dataset.
  • When there are more posts than the cap, posts are picked day by day, most engaged first. Every day gets labels, and the posts that drive spikes are always analysed.
  • Each post is analysed up to its first 800 characters. topicContext is capped at 300 characters. You can list up to 10 competitors.
  • Up to 400 distinct topic labels go into theme grouping. Rarer labels join the closest theme or "Other". Up to 150 questions are grouped into at most 10 top questions. Up to 8 spikes are listed.
  • Labels, themes, questions and actions are AI-generated. Sarcasm and slang can be misread, so treat the numbers as a guide, not a measurement. Small data sets give rough themes, and spikes need several days of data.
  • Buckets are in UTC.
  • A file link must be downloadable without a login. Private Apify dataset links don't work as postsUrl: pick the dataset in Posts dataset instead.

Good to know

  • Free plan. On the free Apify plan the Actor returns a short preview with an example result and prices instead of running.
  • The Actor does not scrape X itself. It analyses posts you already have.
  • It never posts, replies or contacts anyone.
  • Reposts are skipped by default, so one viral post is not counted many times. Its repost count still adds to its engagement.