mcpField
F
finding-data-scientists-on-twitter

finding-data-scientists-on-twitter

github.com/apidojo-io其他1809 次安装24 周前更新
代码仓库

关于 finding-data-scientists-on-twitter

用于在 Twitter 上寻找数据科学家和 ML 工程师的技能,通过搜索相关推文、收集资料并评估候选人信号来生成名单。它说明如何用 Apify Actor 收集和补充用户资料。

主要功能

  1. 01搜索职业相关推文
  2. 02收集去重后的账号名
  3. 03补充用户资料数据
  4. 04评估技能和求职信号
  5. 05评分候选人匹配度与活跃度

适用场景

  1. 01寻找潜在的数据科学候选人
  2. 02识别表示正在求职的 ML 工程师
  3. 03根据 Twitter 资料建立候选人名单

MCP 相关

可使用 Apify MCP 服务运行 tweet-scraper 和 twitter-user-scraper Actor;文档也提供 REST API 方案。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill finding-data-scientists-on-twitter

安装后在 Claude Code 中输入/finding-data-scientists-on-twitter确认已加载。

详细介绍

在 Twitter 上寻找数据科学家和 ML 工程师

通过技能关键词、作品集/项目线索和求职意向信号,在 Twitter 上发掘数据科学家和 ML 工程师。Twitter 上有许多积极讨论专业领域的从业者,这是发现被动候选人的有力信号。

前提条件

  • 已设置 APIFY_TOKEN 环境变量
  • 可选:已安装 Apify MCP 服务

输入

参数类型必填默认值说明
startUrlsarray可选[]Twitter 个人资料或推文 URL
twitterHandlesarray可选[]Twitter 用户名(不含 @)
twitterUserIdsarray可选[]Twitter 用户 ID
getFollowersboolean可选false提取关注者列表
getFollowingboolean可选false提取关注列表
getRetweetersboolean可选false提取转发某条推文 URL 的用户
includeUnavailableUsersboolean可选false包含不可用/已暂停的用户
maxItemsnumber可选不限返回的用户数上限
customMapFunctionstring可选—用于转换每个输出对象的 JavaScript 函数

工作流

Progress:
- [ ] Step 1: Search for role-specific tweets
- [ ] Step 2: Collect unique handles
- [ ] Step 3: Enrich profiles
- [ ] Step 4: Score candidate fit
- [ ] Step 5: Deliver candidate list
步骤 1:搜索查询

推荐 — run_actor.js(自动处理等待、输出和文件保存):

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}'

# Save as CSV
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# Save as JSON
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-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": ["data scientist", "ML engineer", "LLM engineer", "machine learning open to work"],
  "maxItems": 300,
  "tweetLanguage": "en"
}

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": ["data scientist", "ML engineer", "LLM engineer", "machine learning open to work"], "maxItems": 300}'

从结果中收集唯一的 author.username。

步骤 2:完善个人资料

如果 Apify MCP 可用:

Tool: apify:run-actor
Actor: "apidojo~twitter-user-scraper"
Input: {"usernames": ["[username1]", "[username2]", "..."]}

REST API 备用方案:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~twitter-user-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"usernames": ["handle1", "handle2"]}'
步骤 3:筛选和评分

**技能确认:**个人简介包含关键词:“data science”、“machine learning”、“ML”、“NLP”、“LLM”、“AI”、“neural network”、“PyTorch”、“TensorFlow”、“scikit-learn”

research_signal = 个人简介包含 'PhD'、'researcher',或包含论文/Google Scholar 链接

候选人评分:

candidate_score = (skill_confirmed ? 1 : 0) * 0.35
                + (open_to_work_signal ? 1 : 0) * 0.30
                + (followerCount in 200..20000 ? 1 : 0.6) * 0.20
                + (tweeted_in_last_30_days ? 1 : 0) * 0.15

活跃度:活跃(< 30 天)| 被动(30–90 天)| 不活跃(> 90 天)

步骤 4:边缘情况
  • 结果中包含公司/品牌账号:筛除 followerCount > 50K 且个人简介不含人称代词的账号;这些很可能是品牌账号
  • 找到的候选人少于 20 位:扩大技能词范围;移除地点或资历筛选条件;尝试相近技能
  • 检测机器人账号:将 followerCount / followingCount < 0.05 且 tweetsCount < 20 标记为潜在机器人账号
  • 地点不匹配:个人简介中的地点是自由文本——使用模糊匹配;接受部分城市/国家名称

输出格式

# Data Scientists And Ml Engineers Candidates: [ML_SPECIALTY]
Profiles found: [N] | Open-to-work: [N] | Active: [N] | Date: [DATE]

## Priority: Open-to-Work Candidates
| Name | @Handle | Specialty | Location | Followers | Last Active | Score |
|------|---------|----------|---------|-----------|------------|-------|

## Passive Candidates
| Name | @Handle | Specialty | Location | Followers | Score |
|------|---------|----------|---------|-----------|-------|

## Bio Highlights (Top 5)
1. @[handle]: "[bio excerpt]"

故障排除

结果全是代理机构/公司,而非个人:添加人称代词筛选条件,或搜索 "I am a [role]"、"I do [skill]"。 职位名称太笼统,返回结果过多:添加地点或资历限定条件。 没有求职意向信号:大多数候选人不会公开表达求职意向——将被动候选人视为有望转化的潜在线索,并结合其近期内容进行个性化联系。

评论

支持 Markdown