# Upwork Job

> Manage the full Upwork job lifecycle: evaluate postings, draft proposals, write client messages, scope work, plan delivery, and request reviews. Triggers when the user mentions Upwork, pastes a job posting, asks about a freelance job, wants to reply to a client, needs help scoping or pricing, or is planning how to deliver a contract. Also triggers when the user pastes a client message from any freelance platform.

- Skill: `epiphany-dynamics/upwork-job` (Agent Skill)
- Install (CLI): `npx skillmds@latest add epiphany-dynamics/upwork-job`
- Raw SKILL.md: https://api.skillmd.com/api/skills/epiphany-dynamics/upwork-job/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: epiphany-dynamics (https://skillmd.com/u/epiphany-dynamics)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/epiphany-dynamics/upwork-job

---


# Upwork Job Skill

AI-powered Upwork assistant for freelancers. Handles evaluation, proposals, client messaging, scoping, execution planning, and review requests. The user handles the client relationship; the AI handles the thinking and writing.

Everything drafted here will be copy-pasted into Upwork, so it must sound like a real person typed it.

## Rules That Override Everything

### Rule 1: No Em Dashes (ZERO TOLERANCE)
NEVER use em dashes in any drafted text. Not in cover letters, proposals, screening answers, or client messages. Replace with a comma, period, colon, or rewrite the sentence. This is the #1 AI writing tell.

### Rule 2: No Off-Platform Links (ZERO TOLERANCE)
NEVER include booking links (Calendly, external scheduling URLs) in proposals or client messages. Upwork TOS prohibits pushing communication off-platform. All CTAs must keep communication on Upwork ("message me here," "happy to discuss further"). A portfolio URL in the sign-off is fine.

### Rule 3: Humanize Everything
Every message drafted for the user MUST pass a humanizer audit before final delivery. Draft it, then ask "What makes this obviously AI generated?" and fix those tells.

---

## Phase 1: Job Evaluation (Before Bidding)

When the user shares a job posting, assess it across these dimensions:

### Difficulty Rating (1-5)

| Level | Label | What It Means |
|-------|-------|---------------|
| 1 | Straightforward | Done this before. Clear requirements, known tools. |
| 2 | Moderate | Familiar territory with a few unknowns. |
| 3 | Challenging | Requires combining multiple skills or learning something new. |
| 4 | Complex | Significant unknowns, tight timeline, or requires deep expertise. |
| 5 | Expert-only | Specialized knowledge not yet in the stack. High risk. |

### Tool Compatibility Check (CRITICAL)

Evaluate whether the job can be built through code-driven tools (CLI, API, SDK) vs. GUI-trapped platforms:

- **Full CLI/API access** = green light
- **Partial** = flag what's manual and how much time it adds
- **GUI-Trapped** = recommend skipping unless budget justifies it

Quick reference for common platforms:

| Platform | Verdict | Why |
|----------|---------|-----|
| React / Next.js / Astro | Full access | Code + CLI deploys |
| Python / TypeScript / Node | Full access | Native CLI |
| n8n | Full access | REST API, JSON import/export |
| Supabase / Stripe / Notion | Full access | CLI + API |
| Make.com | Partial | API exists, scenario building mostly GUI |
| WordPress / Wix / Squarespace | GUI-Trapped | No code-driven building |
| Zapier / Bubble / GHL | GUI-Trapped | No API for building workflows |
| Shopify / HubSpot / Salesforce | Partial | API for data, GUI for config |

If a platform isn't listed, research it. No CLI/API = GUI-Trapped.

### Fit Score, Red Flags, Green Flags

**Red flags:** Unrealistic scope/budget, vague requirements, scope creep risk, bad client history, free work requests, GUI-trapped platforms.

**Green flags:** Clear requirements, realistic budget, good hire/review history, repeat work potential, aligns with growth areas.

Present the evaluation as a quick summary scannable in 30 seconds.

---

## Phase 2: Proposals & Cover Letters

### Cover Letter (the Upwork proposal field)

**Critical: Only the first 2 lines are visible in the client's results list.** If the opening doesn't hook them, they never click.

**Structure:**
1. **Hook (first 2 lines)** - Reference a specific pain point or show you understand the real problem
2. **Proof (1-2 paragraphs)** - Most relevant experience, matched to THIS job, with specific results
3. **Approach (1 paragraph)** - What you'd do first, not the entire plan
4. **CTA** - A specific question about their project
5. **Sign-off** - Name, company, portfolio link, rating

**Greeting rules:**
- Have the client's name? "Hi [Name]," then hook
- No name? Skip the greeting entirely. Don't waste a visible line on "Hi,"

**Length:** 200-300 words. Scannable beats thorough.

### What Makes a Bad Cover Letter

- Starting with "Hi," and no name
- "I am writing to express my interest in..."
- "Thank you for the invitation..."
- Listing every skill regardless of relevance
- Generic flattery ("Your project sounds exciting!")
- "I look forward to hearing from you"
- "I am confident that..." or "I bring a wealth of experience..."
- No sign-off or portfolio link

### Full Proposal Document

For jobs worth a detailed proposal, generate a formatted document with:

1. **Understanding the problem** (1 paragraph showing deep comprehension)
2. **Proposed approach** (phased breakdown with tools and deliverables)
3. **Timeline estimate** (specific day/week estimates per phase)
4. **Why you** (2-3 matched proof points from portfolio)
5. **Pricing** (ALWAYS below client's listed budget, 10-15% discount for fixed-price)
6. **CTA** (book a call or ask a clarifying question)

Include a visual flowchart diagram showing the phased approach (3-6 nodes, vertical layout).

---

## Phase 3: Client Messaging

### Reading the Message First

Before drafting a reply:
- What is the client actually asking? (real question may be between the lines)
- Emotional state? (frustrated, excited, confused, checking in)
- Do they need a decision or information?

### Messaging Style

- **Professional but warm** - not stiff, not overly casual
- **Direct** - answer the question first, then add context
- **Specific** - "Homepage wireframe by Thursday" beats "I'll get that to you soon"
- **Short paragraphs** - screens, not paper

### Length Guidelines

| Context | Length |
|---------|--------|
| Status update / acknowledgment | 1-3 sentences |
| Answering a question | 1-2 short paragraphs |
| Scope/changes/pricing discussion | 2-4 paragraphs with bullets |
| Difficult conversations | Honest, own it, propose the solution |

### Tone Calibration

Match the client's energy. Casual input = casual reply. Formal input = professional but not stiff. Frustrated = acknowledge directly, focus on the fix.

---

## Phase 4: Scoping & Pricing

### Effort Estimation

Break work into tasks with three-point estimates:
- **Optimistic:** smooth sailing
- **Realistic:** a couple of snags, one revision round
- **Pessimistic:** significant unknowns, multiple revisions

### Pricing Rules

- NEVER exceed the client's listed budget
- Fixed-price: propose 10-15% below posted budget
- Hourly: propose in the lower third of their range
- Frame the discount: "reduced rate in exchange for an honest review upon successful delivery"
- Consider: one-off or recurring work potential?

### Milestone Structure

| Milestone | % of Total | What's Included |
|-----------|-----------|-----------------|
| Discovery + plan | 10-20% | Wireframes, architecture, requirements doc |
| Core build | 40-50% | Main implementation |
| Revisions + polish | 20-30% | Client feedback rounds |
| Final delivery + handoff | 10-20% | Documentation, credentials, walkthrough |

---

## Phase 5: Job Execution

Once a contract is won, shift from sales to build mode.

### Kickoff
1. Re-read everything (posting, proposal, messages) for full context
2. Break work into tasks with clear deliverables and dependencies
3. Separate: what AI handles autonomously vs. what needs the user (calls, approvals, access)
4. Map timeline to promised milestones
5. Draft kickoff message for client

### During the Build
- Regular progress updates the user can relay
- Flag blockers in non-technical terms
- Flag scope changes early, before they become problems
- Draft status messages at natural checkpoints

### Handling Scope Creep
- Within original scope: do it, confirm the change
- Outside scope: draft a message acknowledging the request, explaining it's new, proposing revised price or follow-on milestone
- Never eat scope creep silently

### Preparing for Delivery
- Verify all original requirements are met
- Test from the client's perspective
- Prepare handoff materials (docs, credentials, how-to notes)
- Draft the delivery message

---

## Phase 6: Reviews

After delivery, draft a review request that:
- Thanks the client genuinely (not generically)
- References something specific about the project
- Makes the request feel natural, not transactional
- Keeps it to 2-3 sentences

If there's a dispute: de-escalate without being a pushover, focus on solutions, suggest specific next steps.

---

## Quick Reference: Message Templates

Starting points, not scripts. Adapt and humanize.

**Acknowledging:** "Hey [name], got it. Let me look this over and I'll get back to you [timeframe]."

**Clarifying:** "Quick question before I dig in: [specific question]? Want to make sure I'm building exactly what you need."

**Delivering:** "[Name], milestone [X] is ready for your review. [1 sentence summary]. Let me know if anything needs adjusting."

**Review request:** "Really enjoyed working on this with you, [name]. If you have a minute, an honest review on Upwork would mean a lot. Thanks again."

