Skill: charlie-morrison/upwork-proposal-coach (version 1.0.0)

--- name: upwork-proposal-coach description: Coach freelancers on writing winning Upwork proposals (and equivalents on Fiverr Pro, Toptal, Contra, Catalant) — diagnose why proposals get ignored, rewrite them with hooks that win first-line review, structure pricing and scoping, and choose which jobs to actually bid on. Knows the 2026 Upwork algorithm: connects, JSS, BSS, profile completeness, top-rated badges, response time, and how to game the search ranking ethically. Also covers proposal rewrites for cold outbound on LinkedIn/email when Upwork dries up. Use when asked to write or improve an Upwork proposal, raise interview rate, set Upwork pricing, structure a proposal template, choose between hourly and fixed bids, evaluate if a job is worth bidding, fix low JSS, or migrate clients off-platform. Triggers on "upwork proposal", "fiverr gig", "freelance proposal", "win clients", "interview rate", "JSS", "fixed bid", "hourly bid", "freelance bidding", "upwork algorithm", "off-platform clients". metadata: tags: ["upwork", "freelance", "proposals", "fiverr", "bidding", "client-acquisition", "remote-work", "self-employment"] --- # Upwork Proposal Coach Coach freelancers from "I send 30 proposals and hear nothing" to a sustainable bid-to-interview-to-hire ratio. Built for both new freelancers building their first 5 reviews and established freelancers stuck below the rate they're worth. ## Usage **Basic invocation:** > Why am I getting no replies on Upwork? > Rewrite this proposal: [paste] > What's a good proposal template? > My JSS dropped to 78% — fix > Should I bid on this job? **With context:** > 6 months on Upwork, 11 jobs, JSS 87%, send 25 proposals/wk, 1 interview/wk. Mid-level React. > New on Upwork, 0 reviews, 4 days no responses. Backend Python. > Top Rated, $75/hr, 30 active proposals out, 2 interviews/wk. Want to raise to $120/hr. > Lost a 6-month client. Pipeline empty. Need 3 new clients in 30 days. The coach diagnoses the pipeline math, identifies the actual blocker (proposal quality, profile, pricing, niche, or job selection), and rewrites or rebuilds the system. ## The Pipeline Math Before any rewrite, the coach computes the funnel: ``` Jobs viewed → bid → invited / interview → hired → completed → reviewed → JSS impact 100 30 2 1 ``` Healthy ratios for a working freelancer: - **Bid rate of viewed jobs:** 15–25% (you're picky, not desperate) - **Interview rate of bids:** 8–15% (proposal quality lands) - **Hire rate of interviews:** 35–60% (you close) - **Review rate of completed jobs:** 90%+ (you ask, follow up, deliver) If your bid-to-interview is below 5%, the proposal is the blocker. If interview-to-hire is below 25%, you're underprepared for calls. ## Proposal Anatomy That Wins The first 130 characters appear in the client's preview pane. Most freelancers waste them. Structure of a winning proposal: ``` [First line: a specific observation, question, or claim from the job post] [Second line: a sentence about how you'd approach the core of their problem] [Third paragraph: 2–4 sentences about specifically relevant experience] [Fourth paragraph: 1–2 questions to confirm scope or pricing] [Closing: clear call to action — hop on a 15-min call, send loom, etc.] ``` **Rules:** - 100–250 words (longer is worse, almost always) - No "Dear Sir/Madam" (instant skim) - No "I am the perfect fit" (instant skim) - No "I have 10 years experience in..." opening (skim) - No template feel; specific to THIS post - No portfolio link dump (clients don't click) - Loom video embedded if the job is worth >$2k (response rates 3–5x) ## First-Line Hooks That Land The first-line is what clients see in their dashboard preview. Pretend it's a tweet that has to win the click. Good first lines: - "I noticed you mentioned the API rate-limiting issue twice — that's the most important sentence in your post." - "Quick question: are you keeping the existing Node backend, or is the rewrite up for discussion?" - "I shipped exactly this last quarter for a fintech with 4M monthly users. Took 5 weeks." - "Two clarifying questions before I send a proposal — they'll save us both time." Bad first lines (cut these from your template): - "I am writing to apply for the position of..." - "I am a passionate developer with..." - "I have read your job description carefully..." - "I would love to work with you..." ## When NOT to Bid Most freelancers waste connects on jobs that won't hire them. Filter out: - **Posted >24 hrs ago with 50+ proposals** — saturation, you won't be seen - **Client has hired 0 / spent $0** — anchor; tire-kicker - **Verified payment missing** — they may not pay - **Budget radically below market** ($500 fixed for 80-hr build) — you can't earn - **Job description copy-pasted from elsewhere** — content mill - **"Looking for the cheapest option"** — race to the bottom - **Skills mismatch** — bidding outside your stack to "stretch" rarely lands - **Long-term contract with no milestones** — risk of unpaid scope creep - **Vague description, vague budget** — needs scoping before bid Check filter: only bid on jobs where the client and the job both pass these. The coach builds a saved search filter that screens these out. ## Profile Hygiene (the Silent Killer) Even with a great proposal, a weak profile loses interviews. Audit: | Element | What good looks like | |---|---| | Title | 2–3 specific skills + outcome ("Senior React/Next.js Developer — Conversion-Focused") | | Hourly rate | Match the price-band you're targeting; hidden discount via long-term clients | | Profile photo | Smiling, eye contact, professional but human | | Overview | 3 short paragraphs: who you serve, what you do, proof. Not autobiography. | | Skills tags | Top 5 must match the jobs you bid; 6–10 max | | Portfolio | 4–6 entries with results, screenshots, brief case story | | Specialized profiles | 1–2 (paid feature, but pays back) | | JSS | 90%+ ideal; 80%+ acceptable; <80% you're losing visibility | | Top Rated / Plus / Expert-Vetted badge | Pursue once eligible | | Response time | <24h ideally; <48h acceptable | | Availability | Open to work; show capacity matches what you bid | ## Rate Strategy Three layers of pricing: 1. **Posted hourly rate** (visible to clients) — market position; what people see first 2. **Fixed-bid pricing** (job-specific) — packaged value; usually higher effective hourly 3. **Long-term contract rate** (negotiable per client) — discounted for stability **Common rate mistakes:** - Posted rate too low to attract serious clients (<$50/hr in tech invites discount-shoppers) - Rate doesn't differentiate from peers (everyone's at $75 = no signal) - Same rate for client #1 and client #50 (your value should grow) - No fixed-bid options for clients who hate hourly **Raising rates:** - Existing clients: 90 days notice, 10–25% increase, frame as standard rate adjustment - New clients on Upwork: change posted rate, accept slower start (4–6 weeks of fewer interviews) - Specialty positioning: change profile to specialize, justify rate band ## Job Categories to Target Some Upwork categories pay better than others (in 2026): - **High pay / low competition:** specialized backend (Rails, Elixir, Go), database (PostgreSQL/MySQL/SQL tuning), DevOps, AI engineering, compliance work, B2B Salesforce - **Decent pay / moderate competition:** Senior React/Vue/Angular, Node, Python, mobile (Swift/Kotlin) - **Saturated / commodity pricing:** WordPress, basic data entry, generic Shopify, voice-over (entry), simple translation - **Avoid:** AI prompt engineering as a junior, "social media manager" (race to bottom) Specialty stacks (PostgreSQL DBA, Rails monolith, Salesforce dev) often have $100–250/hr ranges with 5x less competition than React. ## Cover Letter Template (Editable) ``` Hi [client first name if visible], [Specific observation about their job: 1 sentence that proves you read it] [How you'd approach the core challenge: 2–3 sentences, concrete, with one mini-decision they'll need to make] I [specific relevant experience, 2 sentences max] — happy to send the case study or jump on a 15-min call if useful. A couple of clarifying questions before quoting firmly: - [scope question] - [timeline / constraint question] If pricing is a fit, I'd estimate [hourly range or fixed bid range with one-sentence basis]. Available to start [timeframe]. [First name] ``` ## Response Time and Follow-Up - Reply to interview invitations within 4 hours when possible (algorithm rewards) - Available for calls within 24h on weekdays - After interview, send a short summary email recap with your proposed scope and price - One follow-up after 5 business days if silence; never more - Save the convo into a tracker so you can re-engage 30/90 days later if not hired ## Off-Platform Strategy (the Real Win) Upwork is the on-ramp. The career play is to: 1. Land first 5–8 clients on Upwork 2. Get 2–3 of them to repeat 3. Deliver such consistent value they refer to off-Upwork peers 4. Move new business off-platform via your own contracts (after Upwork's 24-month no-circumvention period or with explicit conversion process) 5. Eventually: 70%+ revenue off-platform, Upwork is occasional pipeline Off-platform tools you'll want: - Bonsai or HelloBonsai for contracts/invoices - LinkedIn for cold outbound (high-value clients without Upwork tax) - Personal landing page (charlie.dev/hire-me-style) - Newsletter or content for inbound (long-term) ## Common Diagnoses ### "I send 30 proposals, get 0 interviews" Most likely: 1. Profile is incomplete or generic (60% of cases) 2. First-line hook is generic (30%) 3. Bidding on saturated jobs (10%) 4. Rate too low (signaling junior) — sometimes Fix order: profile → first lines → job selection → rate. ### "Interviews but no hires" - Underpreparing for calls - Pricing surprise on the call (mismatch with proposal) - Client never seriously hiring (tire-kicker — better job filter) - Slow callback / scheduling friction Fix: pre-call prep deck, send price band in proposal, qualify clients harder. ### "JSS dropped" - Refunded or ended-poorly contract recently - Long contract idle (no payments + no end = silent ding) - Bad private feedback even if public review was 5 stars - Decline rate (declining invites) increased Fix: close stale contracts cleanly, request feedback request, turn down work you can't excel at. ### "Stuck at $X/hr for two years" - Posted rate hasn't moved - Same niche, same client type - No specialty or differentiation - Calendar full at current rate (you're optimizing for occupancy, not earnings) Fix: niche down, raise rate, accept 6–8 weeks of slower bookings while market adjusts. ## Output Format The coach returns: 1. **Pipeline diagnosis** — where the funnel is leaking 2. **Profile audit** — top 3 changes to make today 3. **Rewritten proposal** — paste-ready, specific to the job 4. **Job filter recommendations** — saved-search criteria 5. **Rate guidance** — current vs target, transition plan 6. **30-day plan** — specific bid count, study targets, profile updates 7. **Off-platform path** — when to start, how to talk to existing clients about it Specific. Tactical. Built around the writer's actual situation, not platitudes.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)