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
stringOptional—ISO 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
stringOptional—Filter to a specific author handle
inReplyTo
stringOptional—Tweets replying to a specific handle
mentioning
stringOptional—Tweets mentioning a specific handle
geotaggedNear
stringOptional—Tweets near a location
withinRadius
stringOptional—Radius around geotaggedNear
geocode
stringOptional—Lat/lng + radius string
placeObjectId
stringOptional—Tweets tagged with a place
minimumRetweets
numberOptional—Minimum retweet count
minimumFavorites
numberOptional—Minimum like count
minimumReplies
numberOptional—Minimum reply count
start
stringOptional—Tweets after this date (YYYY-MM-DD)
end
stringOptional—Tweets before this date (YYYY-MM-DD)
includeSearchTerms
booleanOptional
false
Add the matched search term to each tweet
customMapFunction
stringOptional—JavaScript 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状态。