Community程式設計與開發github.com

Nicholas-V-rld/upwork-scout

在 Upwork 上搜尋、篩選並評分最新職缺,為您的利基市場擬定誠實的提案,預設為唯讀模式,未經明確許可絕不耗用 Connects。

upwork-scout 是什麼?

此技能整合 Upwork 官方 MCP 連接器,能自動搜尋最新職缺、去重、查閱詳情,並根據一系列訊號(如修復類工作、核心建置、客戶支出與評價、提案數等)為職缺評分(0–10 分),只保留前 3–5 個職缺。它會依據 `me.md` 中記錄的利基市場、費率、搜尋詞以及「唯一可使用的證明」來草擬提案,並要求提案第一行必須針對客戶的具體問題,例如擷取公開網址後指出一個真實的改進點。技能支援 Claude Code、Cursor 與 Codex 等平台,執行流程分為搜尋、檢查與捨棄、評分、草擬、寫檔,最後在用戶明確指示後才逐一提交提案。提交前會顯示預覽、Connects 成本與平衡、資格提醒及競價資訊,並要求用戶確認付款模式與爭議協助條款。

相容平台~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 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Upwork scout

找出值得花 Connects 的職缺、淘汰浪費的項目,並草擬只使用自由工作者能證明的事實的提案。

開始之前

  1. 閱讀 me.md(第一次使用時請複製 me.example.md 並填入內容)。其中應包含你的利基市場、費率、搜尋詞,以及唯一可使用的證明。
  2. 呼叫 list_accounts,選擇 me.md 中指名的 TALENT 帳號。連接器可以在不同 sessions 之間切換帳號。如果指定的帳號不在列表中,請停止並告知用戶。永遠不要為錯誤的使用者草擬提案。
  3. 使用 get_profile action=connects_balance 讀取 Connects 餘額。

1. 搜尋

執行每一組搜尋,然後根據 job 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 來搜尋「今天發布」的職缺。

跳過任何在輸出資料夾中已有更早檔案記錄的 job 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
客戶支出 $1K+ 且評分 4.5★++2
0 人面試且少於 5 份提案+1
花費超過 20 Connects−1

4. 草擬

針對每個選取的職缺:

  • 第一行要關於他們的工作。 如果職缺貼文提到一個公開網址,請擷取該網址(20 秒超時)並以你在該網站上看到的一個真實事項作為開頭。客戶在他的清單中只會看到前兩行,因此一個泛泛的開場白永遠不會被打開。
  • 接著提供一個編號計畫、一個報價,以及最後提出一個問題。
  • 回答每個篩選問題,並精確遵守任何「請以 X 開頭您的提案」的指示。
  • 證明只能來自 me.md:包含真實連結、可衡量的數字、經確認的故事。任何只有自由工作者自己才知道的事(例如在專案中的角色、過去的修復、交付時間、尚未設定的價格)必須填入 [CONFIRM: ...]。絕對不要編造結果、客戶、數字或經驗。
  • 當帳號評論數少於 10 個時,請以低價取勝,並規劃在交付後追加銷售維護方案。

5. 寫入檔案

寫入 <output folder>/YYYY-MM-DD.md,內容包含:

  1. 一個包含當日 Connects 餘額的標題行。
  2. 一個排名表格:職缺連結、客戶(國家、花費、評分)、Connects 成本,以及選取原因。
  3. 一個「已略過」行,說明其他職缺被捨棄的原因。
  4. 所有選取職缺的 Connects 總和。
  5. 每個選取職缺的一份提案草稿。

如果沒有任何職缺通過篩選,仍要寫入該檔案,並包含一個空表格及原因說明。

6. 發送(僅限用戶指示時)

一次只處理一個提案。Upwork 只能維持一個開啟的預覽,建立第二個會使第一個失效。

  1. 呼叫 list_freelancer_proposals action=invitations 與 action=list。如果該職缺有邀請,請使用 accept_invitation 代替 create。
  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] 中的空白。

相關技能