关于 apify-financial-osint
apify-financial-osint 是面向投资组合公司的社交舆情检索技能,覆盖 Reddit、Twitter/X 和 Trustpilot。它根据所需信号选择指定 Apify Actor,并整理情绪与互动数据。
主要功能
- 01Reddit 情绪与讨论检索
- 02Twitter/X 实时提及监测
- 03Trustpilot 评价分析
- 04按信号类型选择 Actor
- 05限制结果数量以控制费用
- 06汇总情绪与互动指标
适用场景
- 01跟踪企业事件引发的讨论
- 02监测实时提及与危机信号
- 03分析客户满意度与投诉模式
MCP 相关
可通过 Apify MCP connector 的 `call-actor` 工具运行指定 Apify Actors;技能也支持 Apify CLI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ apify/ awesome-skills --skill apify-financial-osint安装后在 Claude Code 中输入/apify-financial-osint确认已加载。
附带文件data/osint-targets.jsonreference/osint-actor-schemas.md
详细介绍
金融 OSINT — 社交舆情
发现并量化互联网上关于投资组合公司的讨论。仅使用 3 个经过验证的 Apify Actor——Reddit(情绪分析 + 讨论串)、Twitter/X(实时提及、危机监测)、Trustpilot(客户满意度)。所有 Actor 均已通过真实演示数据验证,成功率 ≥98%。
前提条件
- Apify 访问权限——首选:
apifyCLI(npm install -g apify-cli && apify login);备用:Apify MCP 连接器(call-actor工具)。两者都可用时,CLI 速度更快且优先使用。 - 公司数据位于
${CLAUDE_PLUGIN_ROOT}/data/companies.json(读取字段:queries.reddit、queries.twitter、trustpilot_urls、identifiers.ticker) - 每家公司的路由已预先计算并存放于
${CLAUDE_PLUGIN_ROOT}/skills/apify-financial-osint/data/osint-targets.json
${CLAUDE_PLUGIN_ROOT} 是插件的根目录(.claude-plugin/ 所在位置)。安装插件后,Claude Code 会自动解析此路径;开发期间则将其设为 --plugin-dir 路径。
工作流检查清单
复制此清单,并在推进过程中勾选:
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
限制
允许使用的 Apify Actor(仅限以下 Actor——请勿使用其他 Actor)
| Actor | 用途 | 费用 | 成功率 |
|---|---|---|---|
fatihtahta/reddit-scraper-search-fast | Reddit 情绪分析、收购反应、品牌认知 | $1.49 / 1k 条结果 | 98.4%(30 天内 40,787 次运行) |
kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest | 实时提及、危机监测、交易流信号 | $0.25 / 1k 条推文 | 99.7%(4.3/5,58 条评价) |
getwally.net/trustpilot-reviews-scraper | 服务质量、投诉模式(电信公司、电商、银行) | $3.00 / 1k 条结果 | 已验证可用 |
请勿使用任何其他 Actor。请勿使用 WebSearch、WebFetch 或浏览器工具。
根据信号选择 Actor
| 如果需要 | 使用 Actor | 不适用情况 |
|---|---|---|
| 情绪 / 讨论串 / 对企业事件的反应 | fatihtahta/reddit-scraper-search-fast | 如果公司没有消费者群体(B2B 金融科技、生物技术)——预计少于 5 条帖子 |
| 实时提及 / 危机信号 / 交易流讨论 | kaitoeasyapi/twitter-x-data-tweet-scraper-pay-per-result-cheapest | 如果需要超过 1 周的历史数据——受 Twitter API 限制 |
| 客户满意度 / 服务质量投诉 | getwally.net/trustpilot-reviews-scraper | 如果公司没有 Trustpilot 页面(B2B、控股公司)——参见 reference/osint-actor-schemas.md 第 3 节中的已验证 URL 列表 |
流程
第 1 步:选择 Actor
对于投资组合公司,在 data/osint-targets.json 中查找公司——该文件已预先计算要运行的 Actor,并提供模板化输入。路由规则(与构建该文件时所用规则一致):
queries.reddit非空 → 运行 Reddit Actorqueries.twitter非空 → 运行 Twitter Actor(所有跟踪公司均始终设置此项)trustpilot_urls非空 → 运行 Trustpilot Actor
对于临时或非投资组合目标,请从头构建输入(参见第 2 步)。
第 2 步:构建输入
Reddit 输入(关键字段)
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
queries | 字符串数组 | 必填(queries / urls / subredditName 三选一) | 在 Reddit 全站范围内搜索的关键词。 |
maxPosts | 整数 | 50000(!) | 务必显式设置——常规扫描通常设为 30-50,深度分析设为 100-200。 |
scrapeComments | 布尔值 | false | 设置为 true 以提取串接式讨论。 |
maxComments | 整数 | 50000(!) | 仅在 scrapeComments: true 时使用。通常设为 5–10。 |
sort | 枚举 | "relevance" | 可选值:relevance、hot、top、new、comments。(不是 rising / best。) |
timeframe | 枚举 | "all" | 可选值:all、year、month、week、day、hour。范围必须大于或等于 dateFrom–dateTo。 |
dateFrom | 字符串 | — | YYYY-MM-DD。抓取后筛选:保留此日期及之后的帖子。 |
dateTo | 字符串 | — | YYYY-MM-DD。抓取后筛选:保留截至此日期的帖子。 |
示例:
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 输入(关键字段)
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
twitterContent | 字符串 | — | twitterContent / tweetIDs / searchTerms 三选一。Twitter 高级搜索语法(OR、-、from:、since:)。 |
tweetIDs | 字符串数组 | — | 复数形式——不是 tweetId。 |
searchTerms | 字符串数组 | — | 每个关键词都会分别获取 maxItems 条结果。 |
maxItems | 整数 | 200 | 必填——未设置时 Actor 会失败。按结果付费。 |
queryType | 枚举 | "Latest" | 可选值:Latest、Top、Photos、Videos。 |
lang | 字符串 | "en" | ISO 639-1。单国 B2C 搜索时,设为 cs / pl / hu / bg / sk / tr;多语言搜索时省略。 |
since / until | 字符串 | — | 格式:YYYY-MM-DD_HH:MM:SS_UTC(不是 ISO 8601)。 |
filter:news / filter:media / min_faves / min_retweets | 各种类型 | — | 互动量 / 内容筛选条件。 |
示例:
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 输入(仅有 2 个字段!)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
startUrls | {"url": "..."} 对象数组 | 是 | 不是纯字符串——必须是对象数组。 |
limit | 整数 | 否(默认值为 1000) | 设置较低值以控制成本($3/1k)。 |
示例:
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
旧版文档提到的 maxItems、includeStatistics、includeCompanyDetails、onlyNewerThan 等字段,在此 Actor 上并不存在。
第 3 步:限制运行成本
运行前务必限制输出数量。默认值高得令人担忧。
| Actor | 限制字段 | 全面扫描 | 深度分析 |
|---|---|---|---|
maxPosts | 30–50 | 100–200 | |
| Reddit 评论 | maxComments | 5–10(仅当 scrapeComments: true 时) | 20–50 |
| Twitter/X | maxItems | 50–100 | 200–500 |
| Trustpilot | limit | 30–50 | 100–200 |
Twitter 和 Trustpilot 按结果付费——每条返回的内容都会计费。
第 4 步:运行
同时提取 InPost 的 Reddit 讨论串和 Twitter 提及内容的示例(由 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
完整的各 Actor 输入架构(包含全部 51 个 Twitter 属性、所有 Reddit 枚举值以及 Trustpilot 的各种边界情况),以及 30 多个调用示例: reference/osint-actor-schemas.md。
第 4b 步:筛选 Reddit 结果
Reddit 搜索会忽略引号并匹配部分词语(“InPost”会匹配“in post game thread”)。抓取后,在客户端筛选结果:仅保留 title 或 body 中包含公司任一搜索词完整词形(不区分大小写)的帖子。使用 data/osint-targets.json 中的 queries 数组进行匹配(这些是公司实际为人所知的词语)。比较前先统一变音符号(Š↔S、ö↔o 等)。
预计原始 Reddit 结果中有 90–95% 是误报。这是正常的——maxPosts 设为 200 就是为了弥补这一点。
第 5 步:输出
各 actor 的关键输出字段:
| Actor | 日期字段 | 日期格式 | URL 字段 | 互动字段 |
|---|---|---|---|---|
created_utc | ISO 8601(2026-05-01T17:26:41.000Z) | canonical_url | score、num_comments | |
createdAt | 非标准格式(Fri May 01 17:35:21 +0000 2026) | url | likeCount、retweetCount、replyCount | |
| Trustpilot | date | ISO 8601(2026-01-27T21:53:45.000Z) | url(评论 ID,而非公司主页) | ratingValue(字符串 "1"–"5") |
展示排名靠前的结果,并包含:
- 情感提示(正面 / 负面 / 中性),可根据文本判断时提供
- 互动数据——见上表
- 作者 / 用户名
- 日期——显示时规范化为 YYYY-MM-DD
- 永久链接
情感扫描的输出示例:
## 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 | … |
按公司路由
data/osint-targets.json 将每家投资组合公司映射到要运行的 OSINT actor,并提供根据 data/companies.json 生成的预置输入模板。截至 v1.0,覆盖情况为:31 个条目(30 家投资组合公司 + 集团),Reddit 27 个、Twitter 31 个、Trustpilot 5 个、三者均有 5 个、仅 Twitter 4 个。actor 为空的条目表示已确认不存在相关页面(例如,MONETA / CETIN / SOTIO 没有 Trustpilot 页面)。
关键注意事项(高频错误)
- Reddit 的
maxPosts默认值为 50000——务必显式设置(扫描时通常设为 30–50)。 - Reddit 的
maxComments默认值为 50000——启用scrapeComments: true时应设为较低值。 - Reddit 的
subredditKeywords是数组,不是字符串。 - Reddit 的
sort枚举不包含"rising"/"best"——仅支持 relevance、hot、top、new、comments。 - Reddit 的
includeNsfw——"sfw" 为小写(不是includeNSFW)。 - Twitter 的
maxItems是必填项——不填写时 actor 会失败。按结果计费。 - Twitter 的
since/until格式为YYYY-MM-DD_HH:MM:SS_UTC(不是 ISO 8601)。 - Twitter 的
tweetIDs是复数形式的数组,不是tweetId。 - Twitter 的
lang默认值为"en"——请显式设置,或省略以涵盖所有语言。 - Trustpilot 的
startUrls必须是包含url键的对象数组,不能是纯字符串。 - Trustpilot 只有 2 个输入字段(
startUrls、limit)——旧文档提到的maxItems、includeStatistics、includeCompanyDetails、onlyNewerThan均不存在。 - Trustpilot 的
ratingValue是字符串("1"–"5"),不是整数——汇总前请先解析。 - Trustpilot 不支持日期筛选——actor 会按时间倒序返回最近的评论,最多返回
limit条;请根据date字段进行后置筛选。 - 已核实各公司的 Trustpilot URL——请参见
reference/osint-actor-schemas.md第 3 节中的“已知 Trustpilot URL”表格。有些公司没有 Trustpilot 页面(B2B 控股公司、生物科技公司)——运行 actor 会返回 0 条评论。
完整的各 actor 架构和 30 多个调用示例: reference/osint-actor-schemas.md。
参考资料
- data/osint-targets.json——按公司路由 + 预置 actor 输入(31 个条目)
- reference/osint-actor-schemas.md——逐字来源:包含投资组合示例的全部 4 个 actor 架构(经济日历已归档于第 4 节;不属于此技能的范围——请参见 PLAN.md)
- 共享投资组合数据:
$\{CLAUDE_PLUGIN_ROOT\}/data/companies.json