finding-speaking-opportunities-on-twitter

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Finding Speaking Opportunities On Twitter

在Twitter上寻找演讲机会

Executes finding speaking opportunities on twitter using apidojo scrapers. Part of the apidojo intelligence skills library.
借助apidojo爬虫在Twitter上寻找演讲机会。属于apidojo智能技能库的一部分。

Prerequisites

前提条件

  • APIFY_TOKEN
    environment variable set
  • Optional: Apify MCP server installed
  • 已设置
    APIFY_TOKEN
    环境变量
  • 可选:已安装Apify MCP服务器

Inputs

输入参数

ParameterTypeRequiredDefaultNotes
searchTerms
array
[]
Twitter advanced search queries (e.g.
["#AI lang:en", "from:NASA"]
)
sort
stringOptional
Top
Sort order:
Latest
,
Top
, or
Latest+Top
tweetLanguage
stringOptionalISO 639-1 language code (e.g.
en
)
maxItems
numberOptionalUnlimitedMaximum tweets to return
onlyVerifiedUsers
booleanOptional
false
Only tweets from verified users
onlyTwitterBlue
booleanOptional
false
Only Twitter Blue subscribers
onlyImage
booleanOptional
false
Only tweets with images
onlyVideo
booleanOptional
false
Only tweets with videos
onlyQuote
booleanOptional
false
Only quote tweets
author
stringOptionalFilter to a specific author handle
inReplyTo
stringOptionalTweets replying to a specific handle
mentioning
stringOptionalTweets mentioning a specific handle
geotaggedNear
stringOptionalTweets near a location
withinRadius
stringOptionalRadius around geotaggedNear
geocode
stringOptionalLat/lng + radius string
placeObjectId
stringOptionalTweets tagged with a place
minimumRetweets
numberOptionalMinimum retweet count
minimumFavorites
numberOptionalMinimum like count
minimumReplies
numberOptionalMinimum reply count
start
stringOptionalTweets after this date (YYYY-MM-DD)
end
stringOptionalTweets before this date (YYYY-MM-DD)
includeSearchTerms
booleanOptional
false
Add the matched search term to each tweet
customMapFunction
stringOptionalJavaScript function to transform each output object
参数类型是否必填默认值说明
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函数

Workflow

工作流程

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
进度:
- [ ] 步骤1:定义参数
- [ ] 步骤2:运行tweet-scraper
- [ ] 步骤3:筛选并分类结果
- [ ] 步骤4:按质量和相关性评分
- [ ] 步骤5:交付输出

Step 2: Run the Actor

步骤2:运行Actor

Recommended — run_actor.js (handles waiting, output, and file saving automatically):
bash
undefined
推荐方式 — run_actor.js(自动处理等待、输出和文件保存):
bash
undefined

Quick answer (prints table to chat)

快速查看结果(在聊天中打印表格)

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'

Save as CSV

保存为CSV文件

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv
node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.csv --format csv

Save as JSON

保存为JSON文件

node scripts/run_actor.js
--actor "apidojo~tweet-scraper"
--input '{"param": "value"}'
--output YYYY-MM-DD_results.json --format json
> `APIFY_TOKEN` must be set in environment or `.env` file.

**If Apify MCP is available:**
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 fallback:**
```bash
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}'
Wait for
SUCCEEDED
. Fetch dataset:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"
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备选方案:**
```bash
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
。获取数据集:
bash
curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN"

Step 3: Classify Results

步骤3:分类结果

classification: KEYNOTE (large event, competitive) | PANEL (group format) | PODCAST_GUEST (audio interview) | VIRTUAL_SUMMIT (online event) | WORKSHOP (hands-on, smaller)
分类:KEYNOTE(大型活动,竞争激烈)| PANEL(小组形式)| PODCAST_GUEST(音频访谈)| VIRTUAL_SUMMIT(线上活动)| WORKSHOP(实操型,规模较小)

Step 4: Score Each Result

步骤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
score = opportunity_score = (活动受众规模指标:大型=1,中型=0.6,小型=0.3) * 0.40 + (截止日期是否在未来?是=1 : 否=0) * 0.35 + (主题匹配度?是=1 : 否=0.5) * 0.25

Step 5: Edge Cases

步骤5:边缘情况处理

  • CFP deadlines are time-sensitive; flag any opportunity with a deadline in the past as EXPIRED; prioritize by days until deadline
Additional fallbacks:
  • < 20 results: Broaden search terms; remove secondary filters
  • No results: Verify the search terms are correct; try alternate phrasings
  • Data quality issues: Remove entries with missing key fields; note count in output
  • CFP截止日期具有时效性;标记任何截止日期已过的机会为EXPIRED;按截止剩余天数排序优先级
其他备选方案:
  • 结果少于20条:扩大搜索词范围;移除次要筛选条件
  • 无结果:验证搜索词是否正确;尝试其他表述方式
  • 数据质量问题:移除关键字段缺失的条目;在输出中注明数量

Output Format

输出格式

undefined
undefined

Finding Speaking Opportunities On Twitter

在Twitter上寻找演讲机会

Results: [N] | Date: [DATE]
#[Key Field][Metric 1][Metric 2][Classification][Score]
1[value][value][value][type][0.XX]
结果数量:[N] | 日期:[DATE]
序号[关键字段][指标1][指标2][分类][评分]
1[值][值][值][类型][0.XX]

Summary

总结

Top result: [description] Key finding: [insight]
undefined
最佳结果:[描述] 关键发现:[洞察]
undefined

Troubleshooting

故障排除

Too few results: Broaden the primary search term; remove restrictive filters. Low quality results: Apply minimum score threshold (≥ 0.50) to filter noise. Actor fails to run: Verify API key; check actor status at apify.com/apidojo.
结果过少:扩大主搜索词范围;移除限制性筛选条件。 结果质量低:应用最低评分阈值(≥ 0.50)过滤无效信息。 Actor运行失败:验证API密钥;在apify.com/apidojo查看Actor状态。