Brand Sentiment Analyzer — Reddit, News & Trustpilot avatar

Brand Sentiment Analyzer — Reddit, News & Trustpilot

Pricing

from $5.00 / 1,000 brand mention collecteds

Go to Apify Store
Brand Sentiment Analyzer — Reddit, News & Trustpilot

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

8 days ago

Last modified

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

FieldTypeDefaultDescription
brandNamestringApifyBrand, product, or keyword to search across enabled sources. Required.
competitorBrandstring""Optional second brand for share-of-voice comparison.
platformsarray["reddit", "google-news", "trustpilot"]Sources to monitor.
maxMentionsPerPlatforminteger25Cap per source, from 5 to 500.
timeRangestring7dSearch window: 24h, 7d, 30d, or all.
languagestringenLanguage filter using ISO 639-1 codes or all.
includeAiInsightsbooleantrueGenerate the AI insights report with Claude.
responseFormatstringdetailedconcise or detailed.
maxCostUsdinteger0Optional 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".

FieldTypeDescription
_summarybooleanTrue for the executive summary record.
recordTypestringsummary or mention.
brandNamestringMonitored brand or keyword.
competitorBrandstring or nullCompetitor name when provided.
brandHealthScorenumber or nullOverall sentiment score from 0 to 10.
sentimentBreakdownobject or nullAggregate positive, neutral, and negative counts and percentages.
topComplaintsarray or nullTop negative themes extracted from the collected mentions.
topPraisearray or nullTop positive themes extracted from the collected mentions.
crisisSignalsarray or nullDetected risk signals such as boycott calls, lawsuit references, viral negative posts, or safety concerns.
shareOfVoiceobject or nullMention-count comparison versus a competitor brand.
executiveSummarystring or nullPlain-English summary of the run.
mentionCountsobject or nullMentions retrieved per source and in total.
platformstring or nullSource for a mention record.
sourceUrlstring or nullDirect URL to the mention.
authorstring or nullAuthor handle or username.
textstring or nullFull mention text.
titlestring or nullTitle for the mention.
publishedAtstring or nullISO 8601 timestamp of the original mention.
engagementobject or nullPer-platform engagement metrics.
sentimentstring or nullpositive, neutral, or negative.
sentimentScorenumber or nullSentiment score from -1.0 to +1.0.
warningsarrayNon-fatal warnings gathered during the run.
scrapedAtstring or nullISO 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

  1. The Actor takes a brand name or keyword and uses it as the search query across the selected sources.
  2. It collects mentions from Reddit, Google News, and Trustpilot using the enabled platforms.
  3. It can optionally monitor a competitor brand in parallel and compute share-of-voice.
  4. When AI insights are enabled, Claude generates the brand health score, sentiment breakdown, theme extraction, complaint clustering, crisis signals, and executive summary.
  5. The dataset stores one executive summary record and one record per collected mention.
  6. 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.
  • recordType separates summary records from mention records.
  • sentimentBreakdown, topComplaints, topPraise, crisisSignals, and shareOfVoice belong to the summary record.
  • platform, sourceUrl, author, text, title, publishedAt, engagement, sentiment, and sentimentScore belong 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 competitorBrand field adds a parallel comparison for share of voice.

Pagination and cost guidance:

  • Use maxMentionsPerPlatform to 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 maxCostUsd to 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 brandName for cleaner search results.
  • Add competitorBrand when you want share-of-voice context in the summary.
  • Choose 24h for a shorter monitoring window, 7d for a general check, 30d for steadier trend review, and all for a broader historical pass.
  • Narrow the selected platforms if you want fewer collected mentions and a smaller execution footprint.
  • Use includeAiInsights: false when you only need raw mentions with lexicon-based sentiment.
  • Use concise when an agent only needs compact mention text and sentiment labels.
  • Use detailed when 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.