Brand Sentiment Analyzer — Reddit, News & Trustpilot
Pricing
from $5.00 / 1,000 brand mention collecteds
Brand Sentiment Analyzer — Reddit, News & Trustpilot
Monitor brand sentiment across Reddit, Google News, and Trustpilot. Returns an executive summary with sentiment score, top complaints, top praise, crisis signals, and share-of-voice vs an optional competitor — plus per-mention details. AI theme extraction via Claude. MCP/API-ready.
Pricing
from $5.00 / 1,000 brand mention collecteds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share
Brand Sentiment Analyzer — Multi-Source Mentions + AI
Brand Sentiment Analyzer is an Apify Actor for monitoring a brand, product, or keyword across Reddit, Google News, and Trustpilot. It accepts one brand query, and each execution produces one executive summary record plus per-mention records. The summary includes brand health score, sentiment breakdown, top complaints, top praise, crisis signals, share-of-voice against an optional competitor, and an executive summary. The mention records add source URL, author, text, title, publishedAt, engagement, sentiment, sentimentScore, warnings, and scrapedAt so you can review the source evidence behind the summary.
This Actor is usable through Apify MCP and through the Apify API, with the same input and dataset contract.
Best fit and connected workflows
Use this Actor when you want a structured cross-source view of a brand conversation from public Reddit posts and comments, Google News articles, and Trustpilot reviews. It works well for:
- Brand health checks for a single brand or keyword
- Competitor comparison using the optional competitor brand field
- Short-window monitoring such as 24h, 7d, or 30d searches
- Longer-form reporting when you want one executive summary record and the underlying mention evidence
- AI-agent workflows that need compact or detailed mention output through Apify MCP
If your workflow is centered on AI-perception monitoring across model answers, the input schema points to a different Actor for that use case. This Actor stays focused on public mentions and source-based sentiment analysis.
Focused standalone workflow
This Actor is designed as a focused standalone workflow.
Practical scenario
A customer success manager enters Apify as the brand name, selects Reddit, Google News, and Trustpilot, and adds Bright Data as a competitor. The run returns a summary record with brandHealthScore, sentimentBreakdown, topComplaints, topPraise, crisisSignals, and shareOfVoice, plus mention records with source URLs and per-mention sentiment.
From that output, the manager can see whether the brand conversation is trending positive or negative, which themes appear most often, and which source contains the strongest evidence. The next action is usually to open the mention records, review the linked source pages, and decide whether to prepare a response, brief a team, or schedule another run with a narrower time window.
Input
| Field | Type | Default | Description |
|---|---|---|---|
brandName | string | Apify | Brand, product, or keyword to search across enabled sources. Required. |
competitorBrand | string | "" | Optional second brand for share-of-voice comparison. |
platforms | array | ["reddit", "google-news", "trustpilot"] | Sources to monitor. |
maxMentionsPerPlatform | integer | 25 | Cap per source, from 5 to 500. |
timeRange | string | 7d | Search window: 24h, 7d, 30d, or all. |
language | string | en | Language filter using ISO 639-1 codes or all. |
includeAiInsights | boolean | true | Generate the AI insights report with Claude. |
responseFormat | string | detailed | concise or detailed. |
maxCostUsd | integer | 0 | Optional spending ceiling for a run. |
Focused JSON input example
{"brandName": "Apify","competitorBrand": "Bright Data","platforms": ["reddit", "google-news", "trustpilot"],"maxMentionsPerPlatform": 30,"timeRange": "7d","language": "en","includeAiInsights": true,"responseFormat": "detailed","maxCostUsd": 5}
Output
The dataset begins with one summary record when AI insights are enabled, followed by mention records. The summary record is marked with _summary: true and recordType: "summary". Mention records use recordType: "mention".
| Field | Type | Description |
|---|---|---|
_summary | boolean | True for the executive summary record. |
recordType | string | summary or mention. |
brandName | string | Monitored brand or keyword. |
competitorBrand | string or null | Competitor name when provided. |
brandHealthScore | number or null | Overall sentiment score from 0 to 10. |
sentimentBreakdown | object or null | Aggregate positive, neutral, and negative counts and percentages. |
topComplaints | array or null | Top negative themes extracted from the collected mentions. |
topPraise | array or null | Top positive themes extracted from the collected mentions. |
crisisSignals | array or null | Detected risk signals such as boycott calls, lawsuit references, viral negative posts, or safety concerns. |
shareOfVoice | object or null | Mention-count comparison versus a competitor brand. |
executiveSummary | string or null | Plain-English summary of the run. |
mentionCounts | object or null | Mentions retrieved per source and in total. |
platform | string or null | Source for a mention record. |
sourceUrl | string or null | Direct URL to the mention. |
author | string or null | Author handle or username. |
text | string or null | Full mention text. |
title | string or null | Title for the mention. |
publishedAt | string or null | ISO 8601 timestamp of the original mention. |
engagement | object or null | Per-platform engagement metrics. |
sentiment | string or null | positive, neutral, or negative. |
sentimentScore | number or null | Sentiment score from -1.0 to +1.0. |
warnings | array | Non-fatal warnings gathered during the run. |
scrapedAt | string or null | ISO 8601 timestamp when the record was created. |
Illustrative JSON output record
{"_summary": true,"recordType": "summary","brandName": "Apify","competitorBrand": "Bright Data","brandHealthScore": 7.4,"sentimentBreakdown": {"positive": 42,"neutral": 28,"negative": 20,"positivePercent": 46.7,"negativePercent": 22.2},"topComplaints": [{"theme": "Pricing confusion","frequency": 6,"exampleQuote": "..."}],"topPraise": [{"theme": "MCP integration","frequency": 14,"exampleQuote": "..."}],"crisisSignals": [],"shareOfVoice": {"brandMentions": 90,"competitorMentions": 64,"brandSharePercent": 58.4,"brandSentimentDelta": 1.8},"executiveSummary": "Apify is in healthy positive territory, driven by strong developer enthusiasm for MCP integration and Crawlee. Two friction points stand out: pricing transparency and cold-start latency. No crisis signals. Apify holds the larger share of voice in this comparison.","mentionCounts": {"reddit": 38,"googleNews": 27,"trustpilot": 25,"total": 90},"scrapedAt": "2026-05-03T14:00:00.000Z"}
How it works
- The Actor takes a brand name or keyword and uses it as the search query across the selected sources.
- It collects mentions from Reddit, Google News, and Trustpilot using the enabled platforms.
- It can optionally monitor a competitor brand in parallel and compute share-of-voice.
- When AI insights are enabled, Claude generates the brand health score, sentiment breakdown, theme extraction, complaint clustering, crisis signals, and executive summary.
- The dataset stores one executive summary record and one record per collected mention.
- The output also includes a JSON summary file in the key-value store for quick access from the Apify Console and API.
Evergreen pricing
This Actor uses Apify Pay Per Event pricing with Apify platform usage on top of the Actor events. Billing is based on the actor start event, collected brand mentions, and optional AI insights generation. The live Pricing tab on this Actor page shows the current event pricing and platform usage details, so use that tab as the source of truth before you run it.
A simple example: if you monitor three sources and collect a few dozen mentions, your total cost is made up of the Actor start event, one mention event per collected mention, and an AI insights event when that report is enabled. If you also set a cost ceiling, the Actor will respect that ceiling during the run.
Use with AI agents (MCP)
This Actor is an Apify Actor that can be called through Apify MCP. The tool returns a summary record and per-mention records that an agent can use for brand monitoring, issue triage, and source-backed research.
Actor identity: khadinakbar/brand-sentiment-analyzer
Check brand sentiment for "Apify" across Reddit, Google News, and Trustpilot. Include AI insights, return the executive summary first, and keep the output detailed enough to inspect the source URLs and sentiment scores.
Output interpretation:
- The first dataset item is the executive summary when AI insights are enabled.
recordTypeseparates summary records from mention records.sentimentBreakdown,topComplaints,topPraise,crisisSignals, andshareOfVoicebelong to the summary record.platform,sourceUrl,author,text,title,publishedAt,engagement,sentiment, andsentimentScorebelong to mention records.
Provenance:
- Each mention record includes a direct source URL when available.
- The summary record is derived from the collected mentions in the same run.
Scope:
- The configured platforms are Reddit, Google News, and Trustpilot.
- The
competitorBrandfield adds a parallel comparison for share of voice.
Pagination and cost guidance:
- Use
maxMentionsPerPlatformto control how many mentions are collected from each selected source. - Use
responseFormat: "concise"for compact agent workflows. - Use
responseFormat: "detailed"when the agent needs fuller metadata. - Use
maxCostUsdto set a spending ceiling for the run.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN});const input = {brandName: 'Apify',competitorBrand: 'Bright Data',platforms: ['reddit', 'google-news', 'trustpilot'],maxMentionsPerPlatform: 25,timeRange: '7d',language: 'en',includeAiInsights: true,responseFormat: 'detailed'};const run = await client.actor('khadinakbar/brand-sentiment-analyzer').call(input);const dataset = await client.dataset(run.defaultDatasetId).listItems({ clean: true });console.log('Run ID:', run.id);console.log('Dataset items:', dataset.items.length);console.log(JSON.stringify(dataset.items.slice(0, 2), null, 2));
Best results and outcome guidance
- Use an exact brand name or keyword in
brandNamefor cleaner search results. - Add
competitorBrandwhen you want share-of-voice context in the summary. - Choose
24hfor a shorter monitoring window,7dfor a general check,30dfor steadier trend review, andallfor a broader historical pass. - Narrow the selected platforms if you want fewer collected mentions and a smaller execution footprint.
- Use
includeAiInsights: falsewhen you only need raw mentions with lexicon-based sentiment. - Use
concisewhen an agent only needs compact mention text and sentiment labels. - Use
detailedwhen you want fuller fields for manual review or dashboarding.
Design note
I found that the dataset contract uses a clear record split: the summary item is the first dataset record when AI insights are enabled, and mention items follow with recordType: "mention". That makes downstream filtering straightforward for both humans and tools.
FAQ
Can I compare two brands in one run?
Yes. Set competitorBrand to a second brand name and the summary can include share-of-voice plus sentiment delta.
Which sources are available?
The live sources in the input schema are Reddit, Google News, and Trustpilot. The platform selector also lists Twitter and YouTube as reserved options in the schema.
What does the summary record contain?
The summary record can include brand health score, sentiment breakdown, top complaints, top praise, crisis signals, share-of-voice, executive summary, and mention counts.
What should I use for AI agents?
Use responseFormat: "concise" for compact agent-friendly output, or responseFormat: "detailed" when the agent needs the full mention metadata.
Where is the full report stored?
The run saves a JSON summary file in the key-value store, and the dataset contains the summary record followed by the mention records.
Responsible use
Use this Actor for public-mention analysis and operational brand monitoring. Review source pages before taking action on a single mention, since sentiment signals are strongest when viewed across the collected set. If you are storing or sharing the output, handle the records according to your own data-governance and compliance requirements.