Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
apify avatar

Apify Financial Osint

  • 99 installs
  • 239 repo stars
  • Updated June 29, 2026
  • apify/awesome-skills

apify-financial-osint is a Claude skill that runs Reddit, Twitter/X, and Trustpilot Apify Actors to gather social-listening sentiment and mention signals for tracked companies.

About

This skill runs social-listening scrapes for tracked portfolio companies through three specific Apify Actors: Reddit sentiment, Twitter/X real-time mentions, and Trustpilot service-quality reviews. A developer uses it when they need to quantify what people are saying about a company for sentiment, crisis signals, or brand perception. It reads company queries from data/companies.json and picks the right actor per signal type.

  • Runs three verified Apify Actors for Reddit, Twitter/X, and Trustpilot social listening
  • Reads tracked companies from data/companies.json and pre-routes actors per company
  • Restricts to an exhaustive allowlist of actors, no WebSearch or browser tools

Apify Financial Osint by the numbers

  • 99 all-time installs (skills.sh)
  • Ranked #819 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
At a glance

apify-financial-osint capabilities & compatibility

Requires an Apify account; actors are pay-per-result (Reddit $1.49/1k, Twitter $0.25/1k, Trustpilot $3.00/1k).

Capabilities
sentiment analysis · social listening · web scraping
Use cases
data analysis · research · web scraping
Runs
Runs locally
Pricing
Bring your own API key
From the docs

What apify-financial-osint says it does

Three verified Apify Actors only — Reddit (sentiment + threaded discussion), Twitter/X (real-time mentions, crisis monitoring), Trustpilot (customer satisfaction).
SKILL.md
Do NOT use any other actor. Do NOT use WebSearch, WebFetch, or browser tools.
SKILL.md
npx skills add https://github.com/apify/awesome-skills --skill apify-financial-osint

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs99
repo stars239
Last updatedJune 29, 2026
Repositoryapify/awesome-skills

What it does

Quantify social sentiment, mentions, and customer reviews about tracked companies using verified Apify Actors.

Who is it for?

Tracking sentiment, mentions, and reviews for a defined set of portfolio companies.

Skip if: News lookups (use apify-financial-news) or registry lookups (use apify-public-registries).

When should I use this skill?

The user asks what people are saying about a company, or for sentiment, mentions, reviews, or crisis signals.

What you get

Top results with sentiment and engagement signals per company and signal type.

  • Ranked social results with sentiment and engagement signals

By the numbers

  • 3 verified Apify Actors
  • 4-step task checklist plus Step 0 access check

Files

SKILL.mdMarkdownGitHub ↗

Financial OSINT — Social Listening

Discover and quantify what the internet is saying about portfolio companies. Three verified Apify Actors only — Reddit (sentiment + threaded discussion), Twitter/X (real-time mentions, crisis monitoring), Trustpilot (customer satisfaction). All actors verified against real demo data with ≥98% success rate.

Prerequisites

  • Apify access — preferred: apify CLI (npm install -g apify-cli && apify login); fallback: Apify MCP connector (call-actor tool). CLI is faster and preferred when both are available.
  • Companies data at ${CLAUDE_PLUGIN_ROOT}/data/companies.json (read fields: queries.reddit, queries.twitter, trustpilot_urls, identifiers.ticker)
  • Per-company routing pre-computed at ${CLAUDE_PLUGIN_ROOT}/skills/apify-financial-osint/data/osint-targets.json

${CLAUDE_PLUGIN_ROOT} is the plugin's root directory (where .claude-plugin/ lives). It is resolved automatically by Claude Code when the plugin is installed, or set to the --plugin-dir path during development.

Workflow checklist

Copy this and tick boxes as you progress:

Task Progress:
- [ ] Step 0: Verify Apify access — try `apify --version && apify info`; if unavailable, check for `call-actor` MCP tool; if neither, tell user to install apify CLI or Apify MCP connector
- [ ] Step 1: Pick actor(s) by signal type — see "Choose Actor by Signal" table
- [ ] Step 2: Build input — read data/osint-targets.json or construct from data/companies.json
- [ ] Step 3: Run actor via apify CLI
- [ ] Step 4: Output — present top results with sentiment + engagement signals

Constraints

Allowed Apify Actors (exhaustive — do NOT use others)

ActorPurposeCostSuccess rate
fatihtahta/reddit-scraper-search-fastReddit sentiment, acquisition reactions, brand perception$1.49 / 1k results98.4% (40,787 runs/30d)
kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapestReal-time mentions, crisis monitoring, dealflow signals$0.25 / 1k tweets99.7% (4.3/5, 58 reviews)
getwally.net/trustpilot-reviews-scraperService quality, complaint patterns (telcos, e-commerce, banks)$3.00 / 1k resultsverified working

Do NOT use any other actor. Do NOT use WebSearch, WebFetch, or browser tools.

Choose Actor by Signal

If you needUse ActorWhen NOT to use
Sentiment / discussion threads / reactions to corporate eventsfatihtahta/reddit-scraper-search-fastIf company has no consumer base (B2B fintech, biotech) — expect <5 posts
Real-time mentions / crisis signals / dealflow chatterkaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapestIf you need >1 week historical depth — Twitter API limits
Customer satisfaction / service quality complaintsgetwally.net/trustpilot-reviews-scraperIf company has no Trustpilot page (B2B, holding companies) — see verified URL list in reference/osint-actor-schemas.md Section 3

Pipeline

Step 1: Pick actor(s)

For portfolio companies, look up the company in `data/osint-targets.json` — it pre-computes which actors to run with templated inputs. Routing rule (mirrors how the file was built):

  • queries.reddit non-empty → run Reddit actor
  • queries.twitter non-empty → run Twitter actor (always set for tracked companies)
  • trustpilot_urls non-empty → run Trustpilot actor

For ad-hoc / non-portfolio targets, construct input from scratch (see Step 2).

Step 2: Build input

Reddit input (key fields)
FieldTypeDefaultNotes
queriesarray of stringrequired (one of queries / urls / subredditName)Global Reddit-wide search terms.
maxPostsinteger50000 (!)ALWAYS set explicitly — typical 30-50 for scans, 100-200 for deep-dives.
scrapeCommentsbooleanfalseSet true to extract threaded discussion.
maxCommentsinteger50000 (!)Only used when scrapeComments: true. Typical 5–10.
sortenum"relevance"One of relevance, hot, top, new, comments. (NOT rising / best.)
timeframeenum"all"One of all, year, month, week, day, hour. Must be >= dateFrom–dateTo range.
dateFromstringYYYY-MM-DD. Post-fetch filter: keep posts from this date onward.
dateTostringYYYY-MM-DD. Post-fetch filter: keep posts up to this date.

Example:

apify call fatihtahta/reddit-scraper-search-fast \
  --input '{"queries":["InPost FedEx acquisition"],"maxPosts":50,"scrapeComments":true,"maxComments":10,"sort":"relevance","timeframe":"month"}' \
  --user-agent apify-awesome-skills/apify-financial-osint
Twitter/X input (key fields)
FieldTypeDefaultNotes
twitterContentstringOne of twitterContent / tweetIDs / searchTerms. Twitter advanced-search syntax (OR, -, from:, since:).
tweetIDsarray of stringPlural — not tweetId.
searchTermsarray of stringEach term gets maxItems results independently.
maxItemsinteger200REQUIRED — actor fails without it. Pay-per-result.
queryTypeenum"Latest"One of Latest, Top, Photos, Videos.
langstring"en"ISO 639-1. Set cs/pl/hu/bg/sk/tr for single-country B2C; omit for multilingual.
since / untilstringFormat: YYYY-MM-DD_HH:MM:SS_UTC (NOT ISO 8601).
filter:news / filter:media / min_faves / min_retweetsvariousEngagement / content filters.

Example:

apify call kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest \
  --input '{"twitterContent":"InPost FedEx acquisition OR INPST","maxItems":100,"queryType":"Latest","since":"2026-01-01_00:00:00_UTC","filter:news":true}' \
  --user-agent apify-awesome-skills/apify-financial-osint
Trustpilot input (only 2 fields exist!)
FieldTypeRequiredNotes
startUrlsarray of {"url": "..."} objectsYesNOT plain strings — array of objects.
limitintegerNo (default 1000)Set lower to control cost ($3/1k).

Example:

apify call getwally.net/trustpilot-reviews-scraper \
  --input '{"startUrls":[{"url":"https://www.trustpilot.com/review/inpost.pl"}],"limit":50}' \
  --user-agent apify-awesome-skills/apify-financial-osint

Older docs reference fields like maxItems, includeStatistics, includeCompanyDetails, onlyNewerThan — these do NOT exist on this actor.

Step 3: Cost-bound the run

Always cap output before running. Defaults are dangerously high.

ActorCap fieldPortfolio scanDeep-dive
RedditmaxPosts30–50100–200
Reddit commentsmaxComments5–10 (only if scrapeComments: true)20–50
Twitter/XmaxItems50–100200–500
Trustpilotlimit30–50100–200

Twitter and Trustpilot are pay-per-result — every returned item is billed.

Step 4: Run

Single example pulling Reddit threads + Twitter mentions for InPost (driven by `data/osint-targets.json`):

apify call fatihtahta/reddit-scraper-search-fast \
  --input "$(jq -c '.targets[] | select(.company_id=="inpost") | .inputs.reddit' \
    ${CLAUDE_PLUGIN_ROOT}/skills/apify-financial-osint/data/osint-targets.json)" \
  --user-agent apify-awesome-skills/apify-financial-osint \
  --output-dataset > reddit_inpost.json

Full per-actor input schema (all 51 Twitter properties, every Reddit enum, every Trustpilot edge case) plus 30+ example invocations: reference/osint-actor-schemas.md.

Step 4b: Post-filter Reddit results

Reddit search ignores quotes and matches partial words ("InPost" matches "in post game thread"). After fetching, filter results client-side: keep only posts where any of the company's search queries appears as a whole word (case-insensitive) in title or body. Use the queries array from data/osint-targets.json for matching (these are the terms the company is actually known by). Normalise diacritics before comparing (Š↔S, ö↔o, etc.).

Expect 90–95% of raw Reddit results to be false positives. This is normal — maxPosts is set to 200 to compensate.

Step 5: Output

Key output fields per actor:

ActorDate fieldDate formatURL fieldEngagement fields
Redditcreated_utcISO 8601 (2026-05-01T17:26:41.000Z)canonical_urlscore, num_comments
TwittercreatedAtNon-standard (Fri May 01 17:35:21 +0000 2026)urllikeCount, retweetCount, replyCount
TrustpilotdateISO 8601 (2026-01-27T21:53:45.000Z)url (review ID, not company page)ratingValue (string "1"–"5")

Present top results with:

  • Sentiment hint (positive / negative / neutral) where derivable from text
  • Engagement — see table above
  • Author / handle
  • Date — normalise to YYYY-MM-DD for display
  • Permalink

Example output for a sentiment scan:

## OSINT Scan: InPost — Last 30 days

### Reddit (3 posts, 47 comments analyzed)
| Title | Subreddit | Score | Sentiment | Date | URL |
|---|---|---|---|---|---|
| InPost lockers in UK getting better? | r/unitedkingdom | 124 | positive | 2026-04-12 | … |
| Anyone else missing parcels? | r/poland | 38 | negative | 2026-04-09 | … |

### Twitter/X (87 tweets)
| Tweet (truncated) | Author | Likes | Replies | Date | URL |
|---|---|---|---|---|---|
| FedEx-InPost rollout looks promising… | @logistics_eu | 412 | 27 | 2026-04-22 | … |

### Trustpilot (50 reviews — avg 3.2 / 5)
| Rating | Title | Author | Date | URL |
|---|---|---|---|---|
| 5 | Good system, very efficient | Yeison S. | 2026-03-10 | … |
| 1 | Parcel never delivered | Anna K. | 2026-04-18 | … |

Per-company routing

`data/osint-targets.json` maps each portfolio company → which OSINT actors to run, with pre-built input templates derived from data/companies.json. Coverage as of v1.0: 31 entries (30 portfolio + group), Reddit 27, Twitter 31, Trustpilot 5, all-three 5, Twitter-only 4. Empty-actor entries reflect verified absence (e.g., MONETA / CETIN / SOTIO have no Trustpilot page).

Critical gotchas (high-frequency mistakes)

  • Reddit `maxPosts` default is 50000 — ALWAYS set explicitly (typical: 30–50 for scans).
  • Reddit `maxComments` default is 50000 — set low whenever scrapeComments: true.
  • Reddit `subredditKeywords` is an array, not a string.
  • Reddit `sort` enum has no `"rising"` / `"best"` — only relevance, hot, top, new, comments.
  • Reddit `includeNsfw` — lowercase "sfw" (not includeNSFW).
  • Twitter `maxItems` is REQUIRED — actor fails without it. Pay-per-result.
  • Twitter `since` / `until` format is `YYYY-MM-DD_HH:MM:SS_UTC` (NOT ISO 8601).
  • Twitter `tweetIDs` is plural array — not tweetId.
  • Twitter `lang` default is `"en"` — set explicitly or omit for all languages.
  • Trustpilot `startUrls` must be array of objects with url key — NOT plain strings.
  • Trustpilot has ONLY 2 input fields (startUrls, limit) — older docs reference maxItems, includeStatistics, includeCompanyDetails, onlyNewerThan that DO NOT EXIST.
  • Trustpilot `ratingValue` is a STRING ("1"–"5"), not integer — parse before aggregating.
  • Trustpilot has no date filter — actor returns most recent first up to limit; post-filter by date field.
  • Trustpilot URLs verified per company — see "Known Trustpilot URLs" table in reference/osint-actor-schemas.md Section 3. Some companies have NO Trustpilot page (B2B holdings, biotech) — running the actor returns 0 reviews.

Full per-actor schemas + 30+ example invocations: reference/osint-actor-schemas.md.

Reference

  • data/osint-targets.json — per-company routing + pre-built actor inputs (31 entries)
  • reference/osint-actor-schemas.md — verbatim source: all 4 actor schemas with portfolio examples (Section 4 Economic Calendar archived; out of scope for this skill — see PLAN.md)
  • Shared portfolio data: `${CLAUDE_PLUGIN_ROOT}/data/companies.json`

Related skills

FAQ

Which Apify Actors does this skill use?

Only three: fatihtahta/reddit-scraper-search-fast, kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest, and getwally.net/trustpilot-reviews-scraper. It does not use any other actor.

Does it need an Apify account?

Yes. It requires Apify access via the apify CLI (apify login) or the Apify MCP connector's call-actor tool.

Automation & Workflowsresearchautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.