Community编程与开发github.com

Nicholas-V-rld/upwork-scout

使用Upwork官方MCP连接器,为您的利基市场查找、筛选并评分最新的Upwork工作,然后为最佳3–5个职位草拟诚实的提案。默认只读;未经明确批准绝不提交或消耗Connects。

upwork-scout 是什么?

Upwork Scout 是一款专为Upwork自由职业者设计的AI Agent技能,通过Upwork官方MCP连接器自动化工作搜索、筛选和提案起草流程。该技能遵循严格的只读安全策略,仅在用户明确授权后才提交提案或消耗Connects,从而保护用户的账户和资金。它支持对职位进行智能评分(0–10分),基于客户评分、工作类别、竞争程度和Connects成本等因素自动筛选出高价值机会。技能还包含提案起草环节,要求基于用户配置文件(me.md)中的可验证事实撰写个性化、诚实的提案,避免虚构任何经验或结果。该技能适用于Claude Code、Cursor等AI Agent平台,可集成到每日工作流程中,通过关键词如“scout upwork”或“run the scout”触发。

兼容平台~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的工作,过滤掉浪费Connects的职位,并起草只有自由职业者能证实的提案。

开始之前

  1. 阅读 me.md(首次使用时复制 me.example.md 并填写)。该文件包含利基市场、费率、搜索词以及唯一可使用的证据。
  2. 调用 list_accounts 并选择 me.md 中命名的TALENT账户。连接器可以在不同会话间切换账户。如果指定的账户不存在,停止操作并告知用户。切勿为错误的人起草提案。
  3. 使用 get_profile action=connects_balance 读取Connects余额。

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
客户消费超过$1K且评分4.5星以上+2
0人面试且提案数少于5个+1
消耗超过20个Connects−1

4. 起草

对于每个选中的职位:

  • 第一行要围绕他们的工作。 如果帖子中提到了公开URL,则获取它(超时20秒)并打开一个你真正看到的东西。客户在他们的列表中只能看到前两行,因此通用的开场白永远不会被打开。
  • 然后是一个编号的计划、一个价格,末尾加一个问题。
  • 回答每一个筛选问题,并严格遵守“以X开头您的提案”的指示。
  • 证据仅来自 me.md:实时链接、测量的数字、已确认的故事。任何只有自由职业者知道的事情(项目中的角色、过去的修复、周转时间、尚未设置的价格)都以 [CONFIRM: ...] 形式填写。切勿编造结果、客户、数字或经验。
  • 当账户评价少于10条时,定价要能赢得项目,并计划在交付后追加护理计划。

5. 写入文件

写入 <输出文件夹>/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,或“提升不可用”)。
  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] 空白。

相关技能