SuperAPI AI 工具集

finding-data-scientists-on-twitter

营销与增长

查看项目

更新于 10-15 09:05

技能介绍

用途

本技能用于在 Twitter 上发现数据科学家和机器学习工程师,以支持招聘场景。它通过技能关键词、作品集/项目信号以及“开放求职”标志来识别候选人。Twitter 上活跃讨论自身专业的从业者,是一种强有力的被动候选人信号。

主要能力

  • 按角色相关关键词搜索推文,收集唯一作者用户名。
  • 丰富 Twitter 用户资料,获取个人简介、粉丝数、关注数、推文数等信息。
  • 根据技能确认、开放求职信号、粉丝数区间和近期活跃度对候选人进行评分。
  • 区分活跃(30 天内)、被动(30–90 天)和休眠(超过 90 天)候选人。
  • 输出结构化的候选人列表,包括优先的开放求职候选人和被动候选人。

使用方式

前置条件

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

输入参数

参数 类型 必填 默认值 说明
startUrls array 可选 [] Twitter 个人资料或推文 URL
twitterHandles array 可选 [] Twitter 用户名(不含 @)
twitterUserIds array 可选 [] Twitter 用户 ID
getFollowers boolean 可选 false 提取粉丝列表
getFollowing boolean 可选 false 提取关注列表
getRetweeters boolean 可选 false 提取推文的转发者
includeUnavailableUsers boolean 可选 false 包含不可用/被暂停的用户
maxItems number 可选 无限制 返回的最大用户数
customMapFunction string 可选 — 用于转换每个输出对象的 JavaScript 函数

工作流程

  1. 搜索角色相关推文。
  2. 收集唯一用户名。
  3. 丰富个人资料。
  4. 对候选人匹配度评分。
  5. 输出候选人列表。

步骤 1:搜索查询

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

# 快速回答(在聊天中打印表格)
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-scraper" \
  --input '{"param": "value"}'

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

# 保存为 JSON
node scripts/run_actor.js \
  --actor "apidojo~twitter-user-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": ["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 可用:

工具:apify:run-actor Actor:"apidojo~twitter-user-scraper" 输入:{"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"

研究信号 = 个人简介包含 '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]"

适用场景

  • 招聘数据科学家、机器学习工程师、LLM 工程师等角色。
  • 寻找对特定技能(如 NLP、PyTorch、TensorFlow)有公开讨论的被动候选人。
  • 需要基于 Twitter 公开信号进行候选人筛选和优先级排序。

限制

  • 需要 APIFY_TOKEN 环境变量,可能涉及 Apify 服务的使用成本(具体费用暂未提供)。
  • 依赖 Twitter 公开数据,候选人信息可能不完整或不准确。
  • 大多数候选人不会公开表示求职,被动候选人需要个性化外联。
  • 地点匹配为模糊匹配,可能不精确。
  • 机器人检测和品牌账户过滤为启发式规则,可能存在误判。

故障排除

  • 所有结果都是机构/公司而非个人:添加人称代词过滤或搜索 "I am a [role]"、"I do [skill]"。
  • 角色太泛导致结果过多:添加地点或资历限定词。
  • 没有开放求职信号:大多数候选人不会公开表示——将被动候选人视为温暖线索,通过引用其近期内容进行个性化外联。