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エンジニアを探すスキルです。職種関連の投稿を検索してプロフィールを収集・補完し、候補者の情報を評価して一覧にまとめます。

主な機能

  1. 01職種に関連するツイートの検索
  2. 02重複のないアカウント名の収集
  3. 03ユーザーデータによるプロフィール補完
  4. 04スキルと求職シグナルの評価
  5. 05候補者の適合度と活動状況の採点

活用シーン

  1. 01データサイエンス分野の候補者探し
  2. 02求職中のMLエンジニアの特定
  3. 03Twitterプロフィールから候補者一覧を作成

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 またはツイート 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

APIFY_TOKEN は環境変数または .env ファイルに設定してください。

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:フィルタリングとスコアリング

スキルの確認: bio に次のキーワードが含まれていること:「data science」、「machine learning」、「ML」、「NLP」、「LLM」、「AI」、「neural network」、「PyTorch」、「TensorFlow」、「scikit-learn」

research_signal = bio に「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 かつ bio に一人称代名詞が含まれないアカウントを除外します。ブランドアカウントの可能性があります
  • 候補者が20人未満の場合:スキル用語の範囲を広げます。地域または職位のフィルターを外すか、隣接するスキルを試します
  • ボットの検出:followerCount / followingCount < 0.05 かつ tweetsCount < 20 のアカウントに、ボットの可能性があるというフラグを付けます
  • 所在地が一致しない場合:bio の所在地は自由記述です。あいまい検索を使い、都市名/国名の部分一致も許容します

出力形式

# 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]」で検索します。 役職が一般的すぎて結果が多すぎる場合:地域または職位の条件を追加します。 転職意欲を示すシグナルがない場合:候補者の多くは公には転職意欲を示しません。パッシブ候補者を有望な見込み客とみなし、最近の投稿に触れたパーソナライズされたメッセージでアプローチします。

コメント