upwork-sync

Mirror Upwork invitations, offers, messages, and Connects balance into the JobPilot web app.

73|19|Updated Mar 22, 2026
One-click install
npx skills add https://github.com/suxrobGM/jobpilot --skill upwork-sync-suxrobgm
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: upwork-sync
Source: https://github.com/suxrobGM/jobpilot/tree/main/plugin/skills/upwork-sync
Command: npx skills add https://github.com/suxrobGM/jobpilot --skill upwork-sync-suxrobgm

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? The Upwork MCP server runs locally on the user's machine, so the JobPilot web app cannot see Upwork account activity. This Skill bridges that gap by reading the Upwork account through the MCP and pushing invitations, offers, messages, and the Connects balance to the JobPilot API so they appear on the /upwork/inbox page. ## Core Features & Use Cases - Dashboard Mirroring: Reads the freelancer dashboard via the Upwork MCP in one call, covering invitations, offers, messages, matched jobs, and Connects balance. - Idempotent Inbox Sync: Pushes up to 200 items per batch keyed by Upwork's own IDs, so re-running refreshes rows instead of duplicating them and preserves user-set statuses like archived. - Read-Only Safety: Never calls write tools such as send_message or respond_to_offer, and treats invitation text as untrusted content that is only summarized. - Use Case: A freelancer running JobPilot wants the web dashboard to show new Upwork invitations and unread client messages each morning without opening Upwork; running this Skill syncs the latest account state into the inbox page. ## Quick Start Sync my Upwork invitations, offers, unread messages, and Connects balance into JobPilot and show me the inbox link.

Frequently Asked Questions about upwork-sync

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sync Upwork invitations and messages into JobPilot?▼

Run the upwork-sync skill, which reads the freelancer dashboard through the Upwork MCP and pushes invitations, offers, and unread message rooms to the JobPilot API in one batch. The results appear on the /upwork/inbox page.

Does the Upwork sync skill send messages or respond to offers?▼

No, the skill is strictly read-only against Upwork. It never calls write tools like send_message, respond_to_offer, or manage_proposals; acting on any item is done by the user from the web app.

Will re-running the Upwork sync duplicate inbox items?▼

No, each item is keyed by Upwork's own ID, which drives an upsert on the API side. Re-running refreshes existing rows instead of duplicating them, and statuses like archived are preserved.

Why is my Upwork Connects balance not updating in JobPilot?▼

The skill reports only the general Connects wallet via a PUT to /api/upwork/account. Product credits are a separate balance and are intentionally never folded into this number.

What happens if the Upwork MCP is not connected?▼

The setup step checks that the MCP tools are connected and resolves the ORG_UID. If the connection is missing, the skill stops with the message from the shared upwork-mcp setup doc instead of proceeding.