mcpField
F
finding-software-engineers-on-twitter

finding-software-engineers-on-twitter

github.com/apidojo-ioその他1780 回インストール24 週間前に更新
リポジトリ

finding-software-engineers-on-twitter について

Twitter/X でソフトウェアエンジニアを探す採用調査スキルです。技術スタックのキーワード、求職の兆候、コミュニティでの活動を使って候補者を見つけ、プロフィールを補完して評価します。

主な機能

  1. 01技術スタックや職種の兆候から投稿を検索
  2. 02ユーザーアカウントを収集して重複排除
  3. 03候補者プロフィールを取得
  4. 04技術適合度、求職意向、活動状況を評価
  5. 05経験レベルやボットの可能性を判定

活用シーン

  1. 01特定の技術スタックを持つエンジニアを探す
  2. 02転職意向を示す候補者を特定
  3. 03活動状況や経験に基づいて候補者を優先

MCP 対応

Apify MCP の run-actor ツールで apidojo~tweet-scraper と apidojo~twitter-user-scraper を実行できます。

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/finding-software-engineers-on-twitterを入力して読み込まれたか確認します。

詳細

Twitter でソフトウェアエンジニアを探す

技術スタックのキーワード、求職中のシグナル、エンジニアリングコミュニティでの活動を通じて、Twitter/X でソフトウェアエンジニアを見つけます。Twitter では、技術コミュニティで活発に活動するエンジニアが見つかります。これは、候補者が積極的に応募していない場合でも、有望なシグナルとなります。

前提条件

  • APIFY_TOKEN 環境変数が設定されていること
  • オプション:Apify MCP サーバーがインストールされていること

入力

パラメーター型必須デフォルト備考
startUrls配列任意[]Twitter のプロフィールまたはツイートの URL
twitterHandles配列任意[]Twitter のユーザー名(@ を除く)
twitterUserIds配列任意[]Twitter のユーザー ID
getFollowersブール値任意falseフォロワーのリストを抽出します
getFollowingブール値任意falseフォロー中のリストを抽出します
getRetweetersブール値任意falseツイート URL のリツイートしたユーザーを抽出します
includeUnavailableUsersブール値任意false利用できないユーザーや凍結されたユーザーを含めます
maxItems数値任意無制限返すユーザーの最大数
customMapFunction文字列任意—各出力オブジェクトを変換する JavaScript 関数

ワークフロー

Progress:
- [ ] Step 1: Search tweets by tech stack + role signals
- [ ] Step 2: Collect unique handles
- [ ] Step 3: Enrich profiles via twitter-user-scraper
- [ ] Step 4: Score candidate fit
- [ ] Step 5: Deliver candidate list
ステップ 1:検索クエリ
Queries: ["[TECH_STACK] engineer", "[TECH_STACK] developer", "senior [TECH_STACK]",
          "built with [TECH_STACK]", "[TECH_STACK] open to work", "[TECH_STACK] job search"]

求職中のユーザーを探す場合は、"looking for [TECH_STACK] role"、"[TECH_STACK] available" を追加します。

推奨 — 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": ["[TECH_STACK] engineer", "senior [TECH_STACK] developer", "built with [TECH_STACK]"],
  "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": ["Python engineer", "senior Python developer", "built with Python"], "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:候補者の質を評価する

技術スタックの確認: 自己紹介または最近のツイートで対象の技術スタックに言及している場合、stack_confirmed = true とします。

自己紹介から推定する役職レベル:

  • 「senior」、「staff」、「principal」、「lead」、「CTO」、「VP Eng」→ シニア以上
  • 「mid」、「3+ years」、「5 years」→ ミドル
  • 「junior」、「new grad」、「bootcamp」→ ジュニア

求職中のスコア:

candidate_score = (stack_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 で、自己紹介に企業名やブランド名が含まれるアカウントを除外します。これらは開発者向けツールのマーケティングアカウントである可能性が高いです。
  • 場所による絞り込み:Twitter の自己紹介に記載された場所は自由記述です。contains で照合し、場所が曖昧なプロフィールや地理的な場所ではないプロフィールを除外します。
  • ニッチな技術スタックで結果が 20 件未満の場合:言語ファミリーまで検索範囲を広げる(例:「Rust」→「systems programming」)か、役職レベルのフィルターを解除します。
  • ボットアカウント:follower/following ratio < 0.05 かつ tweetsCount < 10 のプロフィールに、ボットの可能性があることを示すフラグを設定します。

出力形式

# Software Engineer Candidates: [TECH_STACK]
Profiles found: [N] | Open-to-work: [N] | Senior: [N] | Mid: [N] | Active: [N] | Date: [DATE]

## Priority: Open-to-Work Candidates
| Name | @Handle | Role Level | Location | Stack Confirmed | Followers | Last Active | Score |
|------|---------|-----------|---------|----------------|-----------|------------|-------|
| [name] | @[handle] | Senior | [city] | ✓ | [N] | [X days ago] | [0.XX] |

## Passive Candidates (Not Actively Searching)
| Name | @Handle | Role Level | Location | Stack | Followers | Score |
|------|---------|-----------|---------|-------|-----------|-------|

## Bio Highlights
Top 5 candidates — summarized bios:
1. @[handle]: "[bio excerpt]" — [tech signals]

トラブルシューティング

個人ではなく企業ばかりが検索結果に表示される場合:検索語に "-company -official -team -agency" を除外語として追加するか、自己紹介に一人称代名詞が含まれるかで絞り込みます。 技術スタックが一般的すぎて検索結果が多すぎる場合:場所または経験レベルによるフィルターを追加して、扱いやすい件数に絞り込みます。 求職中のシグナルが少ない場合:パッシブな候補者の多くは公に求職中であることを示しません。最近のツイートに触れた個別メッセージを添えて、passive 層へのアプローチに重点を置きます。

コメント