关于 finding-speaking-opportunities-on-twitter
这项技能使用 Apify 抓取器搜索 Twitter 上的演讲机会,并按活动规模、截止日期和主题相关性分类和评分。
主要功能
- 01使用自定义查询搜索推文
- 02按推文属性筛选
- 03对机会形式分类
- 04评估截止日期与主题契合度
适用场景
- 01查找某领域的演讲征集
- 02跟踪即将到来的会议截止日期
- 03优先处理相关演讲机会
MCP 相关
若有 Apify MCP,可运行 `apidojo~tweet-scraper` Actor。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill finding-speaking-opportunities-on-twitter安装后在 Claude Code 中输入/finding-speaking-opportunities-on-twitter确认已加载。
详细介绍
在 Twitter 上寻找演讲机会
使用 apidojo 抓取工具执行 Twitter 演讲机会搜索。属于 apidojo 情报技能库的一部分。
前置条件
- 已设置
APIFY_TOKEN环境变量 - 可选:已安装 Apify MCP 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
searchTerms | 数组 | ✅ | [] | Twitter 高级搜索查询(例如 ["#AI lang:en", "from:NASA"]) |
sort | 字符串 | 可选 | Top | 排序方式:Latest、Top 或 Latest+Top |
tweetLanguage | 字符串 | 可选 | — | ISO 639-1 语言代码(例如 en) |
maxItems | 数字 | 可选 | 不限 | 返回推文的最大数量 |
onlyVerifiedUsers | 布尔值 | 可选 | false | 仅包含来自已认证用户的推文 |
onlyTwitterBlue | 布尔值 | 可选 | false | 仅包含 Twitter Blue 订阅用户的推文 |
onlyImage | 布尔值 | 可选 | false | 仅包含带图片的推文 |
onlyVideo | 布尔值 | 可选 | false | 仅包含带视频的推文 |
onlyQuote | 布尔值 | 可选 | false | 仅包含引用推文 |
author | 字符串 | 可选 | — | 筛选特定用户账号的推文 |
inReplyTo | 字符串 | 可选 | — | 筛选回复特定账号的推文 |
mentioning | 字符串 | 可选 | — | 筛选提及特定账号的推文 |
geotaggedNear | 字符串 | 可选 | — | 筛选某地点附近的推文 |
withinRadius | 字符串 | 可选 | — | geotaggedNear 周围的半径 |
geocode | 字符串 | 可选 | — | 纬度/经度 + 半径字符串 |
placeObjectId | 字符串 | 可选 | — | 筛选标记了某地点的推文 |
minimumRetweets | 数字 | 可选 | — | 最低转推数 |
minimumFavorites | 数字 | 可选 | — | 最低点赞数 |
minimumReplies | 数字 | 可选 | — | 最低回复数 |
start | 字符串 | 可选 | — | 此日期之后的推文(YYYY-MM-DD) |
end | 字符串 | 可选 | — | 此日期之前的推文(YYYY-MM-DD) |
includeSearchTerms | 布尔值 | 可选 | false | 在每条推文中添加匹配的搜索词 |
customMapFunction | 字符串 | 可选 | — | 用于转换每个输出对象的 JavaScript 函数 |
工作流
Progress:
- [ ] Step 1: Define parameters
- [ ] Step 2: Run tweet-scraper
- [ ] Step 3: Filter and classify results
- [ ] Step 4: Score by quality and relevance
- [ ] Step 5: Deliver output
步骤 2:运行 Actor
推荐 — run_actor.js(自动处理等待、输出和文件保存):
# Quick answer (prints table to chat)
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}'
# Save as CSV
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.csv --format csv
# Save as JSON
node scripts/run_actor.js \
--actor "apidojo~tweet-scraper" \
--input '{"param": "value"}' \
--output YYYY-MM-DD_results.json --format json
必须在环境变量或
.env文件中设置APIFY_TOKEN。
如果 Apify MCP 可用:
Tool: apify:run-actor
Actor: "apidojo~tweet-scraper"
Input:
{
"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"
步骤 3:对结果分类
classification: KEYNOTE (large event, competitive) | PANEL (group format) | PODCAST_GUEST (audio interview) | VIRTUAL_SUMMIT (online event) | WORKSHOP (hands-on, smaller)
步骤 4:为每条结果评分
score = opportunity_score = (event_audience_size_signal: large=1, mid=0.6, small=0.3) * 0.40 + (deadline_is_future ? 1 : 0) * 0.35 + (topic_alignment ? 1 : 0.5) * 0.25
步骤 5:边缘情况
- CFP 截止日期具有时效性;将截止日期已过的机会标记为 EXPIRED;按距截止日期的天数排序
其他备用处理方案:
- 结果少于 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]
故障排除
结果太少: 扩大主要搜索词范围;移除限制性筛选条件。 结果质量较低: 应用最低评分阈值(≥ 0.50)过滤噪声。 Actor 运行失败: 验证 API 密钥;在 apify.com/apidojo 检查 Actor 状态。
评论
支持 Markdown