Communityコーディング&開発github.com

Nicholas-V-rld/upwork-scout

新しいUpwork案件を検索・フィルタリング・スコアリングし、最適な3~5件に対して誠実なプロポーザルを作成します。デフォルトでは読み取り専用で、明示的な承認なしにコネクトを消費したり案件に応募したりしません。

upwork-scout とは?

このスキルは、Upworkでフリーランサーが自分のニッチに合った新しい案件を効率的に見つけ、質の低い案件を排除し、最適な案件にのみコネクトを投資できるように支援します。Upworkの公式MCPコネクタを介して案件を検索し、依頼主の評価、予算、プロジェクトの詳細などのシグナルに基づいて0〜10点でスコアリングします。その後、選ばれた案件ごとに、依頼主の具体的な問題に対処し、`me.md`に記載された実績のみを裏付けとして使用するプロポーザル案を作成します。このスキルはClaude Codeエージェントと連携し、ユーザーが「scout upwork」や「find me jobs」などのフレーズで呼び出すことができ、プロポーザルの実際の送信やコネクトの消費には明示的なユーザー承認が必要です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Nicholas-V-rld/upwork-ai-playbook/tree/main/skills/upwork-scout

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Upwork scout

コネクトを費やす価値のある案件を見つけ、無駄になる案件を除外し、フリーランサーが裏付けられる証拠のみを使用したプロポーザルを作成します。

始める前に

  1. me.mdを読んでください(初回はme.example.mdをコピーして内容を記入します)。このファイルには、あなたのニッチ、レート、検索語、そして唯一使用してよい証拠が含まれています。
  2. list_accountsを呼び出し、me.mdに記載されているTALENTアカウントを選択します。コネクタはセッション間でアカウントを切り替えることができます。指定されたアカウントが見つからない場合は、処理を停止してその旨を伝えてください。決して間違った人物の代わりにプロポーザルを作成しないでください。
  3. get_profile action=connects_balanceでコネクト残高を確認してください。

1. 検索

すべての検索を実行し、ジョブIDで重複を排除します:

  • find_jobs smart_search mode=most_recent, days_posted=2, verified_payment_only=true
  • find_jobs search(title = me.mdの各タイトル語句)verified_payment_only=true, proposals_max=10
  • find_jobs search(query = me.mdの「問題ワード」(例:「hacked OR slow OR broken」))同じフィルター

注意点:titleはquery、またはsort=relevanceと組み合わせることができません。searchには日付フィルターがないため、smart_search mode=most_recentを「本日投稿」の検索に使用します。

出力フォルダ内の以前のファイルにすでにリストされているジョブIDはスキップします。

2. 確認、そして除外

最良のものから約10件に対してfind_jobs getを呼び出します。以下の場合はジョブを除外します:

  • appliedがtrue、またはactivityStat.jobActivity.totalHired ≥ 1、またはtotalOffered ≥ 1
  • preferred_locations.location_requiredがtrueで、フリーランサーの居住国を除外している
  • クライアントのfeedback_scoreが4.0未満、または最近のレビューが1〜2★(案件がそれ以外で優れている場合はフラグを立てる)
  • me.mdのニッチの範囲外である

3. スコアリング(0〜10)、上位3〜5件を保持

シグナル点数
修正案件(壊れている、ハッキングされている、遅い、チェックアウトが失敗する、移行)+3
ニッチにおけるコアビルド+2
継続的またはリテイナーワークの記載+2
クライアントが1,000ドル以上を費やし、評価4.5以上+2
面接0、かつ提案数5未満+1
コネクト消費が20超−1

4. ドラフト作成

選択した各案件に対して:

  • 最初の行は、彼らの仕事について書きます。 投稿に公開URLが記載されている場合、それを取得し(20秒タイムアウト)、実際に見たものを1つ挙げてください。クライアントは一覧で最初の2行しか見ないため、一般的な書き出しでは開かれることはありません。
  • その後に番号付きの計画、価格、そして最後に1つの質問を記載します。
  • すべてのスクリーニング質問に答え、「プロポーザルはXで始めてください」という指示には正確に従います。
  • 証拠はme.mdからのみ取得します:実際のリンク、測定された数値、確認された実績。フリーランサーだけが知っていること(プロジェクトでの役割、過去の修正、納期、まだ設定していない価格など)は[CONFIRM: ...]として記載します。結果、クライアント、数値、経験を決して捏造しないでください。
  • アカウントのレビューが10件未満の間は、勝利を優先した価格設定を行い、納品後のケアプランへのアップセルを計画します。

5. ファイルに書き込む

<output folder>/YYYY-MM-DD.mdに以下を書き込みます:

  1. 本日のコネクト残高を含むヘッダー行。
  2. ランク付けされたテーブル:案件へのリンク、クライアント(国、支出額、評価)、コネクトコスト、採用理由。
  3. 他の案件が除外された理由を説明する「スキップ」行。
  4. 選択した全案件の合計コネクト数。
  5. 選択した案件ごとに1つのドラフト。

フィルターを通過する案件がない場合でも、空のテーブルと理由を記載したファイルを作成します。

6. 送信(ユーザーが明示的に指示した場合のみ)

プロポーザルは一度に1件ずつ行います。Upworkは単一のプレビューしか保持できず、2つ目のプレビューを作成すると最初のものが無効になります。

  1. list_freelancer_proposals action=invitationsおよびaction=listを呼び出します。案件に対する招待がある場合は、createの代わりにaccept_invitationを使用します。
  2. manage_proposals createでプレビューを作成します。ユーザーに全文、connects_cost、connects_balance、unmet_preferred_qualifications、およびブーストブロック(current_top_bidsとrecommended_connects、または「boost unavailable」)を表示します。
  3. 固定価格の案件ではpayment_mode(by_projectまたはby_milestone)が必要であり、ユーザーは提出前にUpworkの紛争解決に関するテキストに同意する必要があります。
  4. ファイル添付について尋ね、portfolio_project_ids(get_profile action=list_highlightsから取得)を介して関連するポートフォリオプロジェクトを添付することを提案します。
  5. 明示的な「はい」の後でのみconfirm_previewを呼び出します。その後、list_freelancer_proposals action=getでプロポーザルを読み返し、connectsBidが承認されたブーストと一致することを確認します。

絶対にしてはいけないこと

  • ユーザーの明示的な承諾なしに、送信、編集、取り下げ、メッセージ送信、または承諾を行わないこと。
  • ある人物の事実を別の人物のアカウントに記載しないこと。
  • [CONFIRM]の穴を推測で埋めないこと。

関連スキル