Can an AI agent submit Upwork proposals? Yes, with your OK
Upwork's official MCP lets Claude, Codex or Cursor send a proposal for you. What it shows before sending, what stays on upwork.com, and what I got wrong.
Short answer: yes. Upwork’s official MCP, launched in August 2026, lets an AI agent submit a proposal on your behalf. It sends nothing until you approve a preview of that exact proposal.
I tested it today from Claude Code, on a real job, with my own account.
What happens when you say “send”
- The agent checks for an invite or an earlier proposal on that job. If the client already invited you, it accepts the invite instead of applying again.
- It builds a preview. You see the cover letter, your rate, the Connects it will cost, what you will have left, and the portfolio items attached.
- It asks about extras: files to attach, and whether to boost. A boost is a Connects bid for a top slot, and the preview shows the real competing bids, so you know the smallest amount that gets in.
- You approve, or change something. The preview expires after 15 minutes, so a forgotten one never goes out later.
- It submits. The proposal shows as Pending on Upwork, like any other.
One approval covers one proposal. There is no “apply to all ten”.
What stays on upwork.com
Per Upwork’s own help page, offers, milestone payments and accepting a contract complete on upwork.com, outside the agent. The agent can bring you an offer; you take it on the site.
The rules I follow
- Approve every proposal yourself, after reading the preview. Upwork’s API & MCP Terms forbid scripting around its confirmation step.
- Activity on your login is yours. If your agent sends something wrong, it went from your account.
- Sweep on demand. Searching on a schedule counts as monitoring, which the Terms rule out.
What I got wrong
I shipped upsweep, my open-source skill for finding Upwork jobs with an agent, with a rule that said drafts only, never submit. I had read the Terms as forbidding agent submission. They don’t, and Upwork’s own tooling is built around a submit-with-confirmation flow. The rule now reads: submit only after the user approves the preview, one proposal at a time. The fix is a public commit.
Try it
npx skills add dave8172/upsweep
Say “upsweep” for jobs that pass your filters, “draft 2” for a proposal draft, and “send” when you want the preview. Details on the project page.
upsweep is unofficial and not affiliated with Upwork.