用途
该技能用于在 Twitter 上发现演讲机会以及活动组织者的联系方式,底层调用 apidojo 的 Twitter 抓取器(apidojo~tweet-scraper)。当用户提出寻找演讲机会、征集演讲者(call for speakers)、CFP、播客嘉宾、线上峰会、工作坊等需求时触发。它属于 apidojo intelligence skills 技能库。
主要能力
- 通过 Twitter 高级搜索查询抓取推文,支持多种过滤条件。
- 对抓取结果进行分类:KEYNOTE(大型活动,竞争激烈)、PANEL(小组形式)、PODCAST_GUEST(音频访谈)、VIRTUAL_SUMMIT(线上活动)、WORKSHOP(动手实践,规模较小)。
- 对每条结果评分:opportunity_score =(活动受众规模信号:large=1,mid=0.6,small=0.3)× 0.40 +(截止日期在未来 ? 1 : 0)× 0.35 +(主题匹配 ? 1 : 0.5)× 0.25。
- 处理边界情况:CFP 截止日期具有时效性,将截止日期已过的机会标记为 EXPIRED,并按距截止日期的天数排序。
- 输出格式为表格,包含结果数量、日期、关键字段、指标、分类和评分,并附摘要(最佳结果与关键发现)。
使用方式
前置条件:
- 设置 APIFY_TOKEN 环境变量。
- 可选:安装 Apify MCP 服务器。
输入参数(部分):
- searchTerms(数组,必填,默认 []):Twitter 高级搜索查询,例如 ["#AI lang:en", "from:NASA"]。
- sort(字符串,可选,默认 Top):排序方式,Latest、Top 或 Latest+Top。
- tweetLanguage(字符串,可选):ISO 639-1 语言代码,例如 en。
- maxItems(数字,可选,默认 Unlimited):返回的最大推文数。
- onlyVerifiedUsers、onlyTwitterBlue、onlyImage、onlyVideo、onlyQuote(布尔,可选,默认 false):各类过滤开关。
- author、inReplyTo、mentioning(字符串,可选):按作者、回复对象、提及对象过滤。
- geotaggedNear、withinRadius、geocode、placeObjectId(字符串,可选):地理位置相关过滤。
- minimumRetweets、minimumFavorites、minimumReplies(数字,可选):最低互动量过滤。
- start、end(字符串,可选):日期范围(YYYY-MM-DD)。
- includeSearchTerms(布尔,可选,默认 false):在每条推文中加入匹配的搜索词。
- customMapFunction(字符串,可选):用于转换每个输出对象的 JavaScript 函数。
工作流:
- 定义参数。
- 运行 tweet-scraper。
- 过滤并分类结果。
- 按质量和相关性评分。
- 交付输出。
运行 Actor 的推荐方式(run_actor.js 自动处理等待、输出和文件保存):
# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# 保存为 CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# 保存为 JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
APIFY_TOKEN 必须在环境或 .env 文件中设置。
若 Apify MCP 可用:
- 工具:apify:run-actor
- Actor:"apidojo~tweet-scraper"
- 输入示例:
{
"searchTerms": ["call for speakers [TOPIC]", "looking for speakers [TOPIC]", "CFP [TOPIC]", "speaker applications [TOPIC]"],
"maxItems": 100
}
REST API 备用方式:
curl -X POST \
"https://api.apify.com/v2/acts/apidojo~tweet-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchTerms": ["call for speakers [TOPIC]", "looking for speakers [TOPIC]", "CFP [TOPIC]", "speaker applications [TOPIC]"], "maxItems": 100}'
等待状态为 SUCCEEDED,然后获取数据集:
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
适用场景
- 寻找特定主题的演讲机会(如 CFP、征集演讲者)。
- 寻找播客嘉宾、线上峰会、工作坊等机会。
- 获取活动组织者联系方式。
- 按受众规模、截止日期、主题匹配度筛选和排序机会。
限制与故障排除
- 结果过少:放宽主要搜索词,移除限制性过滤条件。
- 结果质量低:应用最低评分阈值(≥ 0.50)过滤噪声。
- Actor 运行失败:验证 API 密钥;在 apify.com/apidojo 检查 actor 状态。
- 少于 20 条结果:放宽搜索词,移除次要过滤条件。
- 无结果:验证搜索词是否正确,尝试其他表述。
- 数据质量问题:移除缺少关键字段的条目,并在输出中注明数量。
输出格式示例:
# Finding Speaking Opportunities On Twitter
Results: [N] | Date: [DATE]
| # | [Key Field] | [Metric 1] | [Metric 2] | [Classification] | [Score] |
|---|------------|-----------|-----------|-----------------|---------|
| 1 | [value] | [value] | [value] | [type] | [0.XX] |
## Summary
Top result: [description]
Key finding: [insight]