finding-freelancers-by-skill-on-twitter について
スキル関連の投稿、プロフィール情報、稼働可能性のシグナルを使い、Twitter でフリーランサーや独立請負業者を探すスキルです。候補アカウントを集め、プロフィールを補完して採用向けに適合度を評価します。
主な機能
- 01スキルや求人関連の投稿検索
- 02重複のないプロフィール名の収集
- 03候補者プロフィール情報の補完
- 04スキル、稼働可能性、活動状況の評価
活用シーン
- 01フリーランス職の候補者リスト作成
- 02案件を受け付けているアカウントの発見
MCP 対応
任意で Apify MCP サーバーを使い、投稿および Twitter ユーザースクレーパーの Actor を実行できます。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill finding-freelancers-by-skill-on-twitterインストール後、Claude Code で/finding-freelancers-by-skill-on-twitterを入力して読み込まれたか確認します。
詳細
Twitter でフリーランサーや独立請負業者を探す
スキルのキーワード、ポートフォリオやプロジェクトに関する情報、就業希望の指標をもとに、Twitter でフリーランサーや独立請負業者を見つけます。Twitter では、自分の専門分野について積極的に発信しているプロフェッショナルを見つけられるため、有望な候補者を受動的に探す手段として効果的です。
前提条件
APIFY_TOKEN環境変数が設定されていること- 任意:Apify MCP サーバーがインストールされていること
入力
| パラメーター | 型 | 必須 | デフォルト | 備考 |
|---|---|---|---|---|
startUrls | array | 任意 | [] | Twitter のプロフィールまたはツイートの URL |
twitterHandles | array | 任意 | [] | Twitter のユーザー名(@なし) |
twitterUserIds | array | 任意 | [] | Twitter のユーザー ID |
getFollowers | boolean | 任意 | false | フォロワーのリストを抽出 |
getFollowing | boolean | 任意 | false | フォロー中のアカウントのリストを抽出 |
getRetweeters | boolean | 任意 | false | ツイート URL のリツイートユーザーを抽出 |
includeUnavailableUsers | boolean | 任意 | false | 利用できないユーザーや凍結されたユーザーを含める |
maxItems | number | 任意 | 無制限 | 返すユーザーの最大数 |
customMapFunction | string | 任意 | — | 各出力オブジェクトを変換する 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": ["freelance [SKILL]", "[SKILL] for hire", "available for contract [SKILL]"],
"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": ["freelance [SKILL]", "[SKILL] for hire", "available for contract [SKILL]"], "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 に「freelance」、「independent」、「for hire」、「consulting」、「contract」、「available」、「hire me」、「DM for work」などのキーワードが含まれていること
availability_signal = bio または最近のツイートに「available」、「taking clients」、「open for projects」、「DM for rates」が含まれていること
候補者スコア:
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 の場所は自由記述です。あいまい一致を使用し、市区町村名や国名の一部だけでも一致として扱います
出力形式
# Freelancers And Independent Contractors Candidates: [FREELANCE_SKILL]
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]"」を検索します。 役割が一般的すぎて、結果が多すぎる場合:地域または職位の条件を追加します。 就業希望の指標がない場合:ほとんどの候補者は公開プロフィールで就業希望を示しません。受動的な候補者は有望な見込みとして扱い、最近の投稿に触れながら個別に連絡します。