# Freelance Proposal Writer

> Generate personalized Upwork/freelance proposals from job postings. Paste a job description, and get a tailored cover letter that highlights relevant experience, addresses client pain points, and includes a concrete action plan. Optimized for high response rates.

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

---


# Freelance Proposal Writer

Generate a high-converting freelance proposal tailored to a specific job posting.

## Steps

### 1. Parse the Job Posting

Read the job description provided by the user. Extract:

- **Client need**: What problem are they trying to solve?
- **Required skills**: What technologies/tools do they mention?
- **Project scope**: Fixed price or hourly? Duration? Part-time or full-time?
- **Budget signals**: Stated budget, or infer from description complexity
- **Client context**: Company size hints, industry, previous hires, spending history
- **Red flags**: Unrealistic scope, extremely low budget, unclear requirements
- **Keywords**: Exact phrases the client uses (mirror these in the proposal)

If the user also provides their portfolio/resume/skills, note the strongest matches.

### 2. Identify the Hook

Find the single strongest connection between the user's experience and the client's need. This becomes the opening line.

**Hook formula**: "I [built/shipped/solved] [specific thing] that [directly relates to their problem]."

Bad: "I'm an experienced developer with 5 years of experience."
Good: "I built a Shopify MCP server with 16 tools that does exactly what you're describing — I can adapt it for your store in days, not weeks."

### 3. Generate the Proposal

**Structure** (optimized for Upwork):

```
[HOOK — 1-2 sentences connecting your experience to their need]

**Relevant builds:**

1. **[Project Name]** — [1-2 sentences describing what you built and the outcome. Use metrics if possible.]

2. **[Project Name]** — [1-2 sentences. Focus on the aspect most relevant to this job.]

3. **[Project Name]** — [1-2 sentences. Show breadth if the job requires multiple skills.]

**My approach for your project:**

[3-4 bullet points describing HOW you'd tackle their specific project. Be concrete — mention specific APIs, tools, or architectures you'd use. Show you've thought about their problem, not just skimmed it.]

[CLOSING — 1-2 sentences. Express genuine interest. Offer a concrete next step: trial task, quick call, or a specific deliverable timeline.]

Best,
[Name]
```

**Rules for high-converting proposals:**

1. **Under 200 words**: Clients read dozens of proposals. Be concise.
2. **Mirror their language**: Use the exact terms they used in the job posting.
3. **Lead with results, not credentials**: "I built X" > "I have 5 years of experience in X"
4. **Be specific about their project**: Reference specific details from THEIR posting, not generic claims.
5. **One CTA**: Propose exactly one next step (trial task, call, or deliverable).
6. **No desperation**: Don't say "I really need this job" or "I can start immediately for any rate."
7. **Price anchoring**: If the job has a stated budget, don't undercut massively — it signals low quality. Price within 10-20% of their range.

### 4. Provide Submission Tips

```
## Submission Checklist

- [ ] Proposal is under 200 words
- [ ] Opening line references something specific from the job posting
- [ ] At least 2 relevant portfolio pieces mentioned
- [ ] Approach section shows you understood THEIR problem
- [ ] Closing has a clear, specific CTA
- [ ] No generic filler phrases ("I am passionate about...", "I believe I am the perfect fit...")
- [ ] Connects used: [estimate based on job type — typically 8-16]

## Boost Tips
- Attach a relevant portfolio link or live demo
- If possible, do 30 minutes of free work and attach it (e.g., audit their website, sketch a solution)
- Apply within 24 hours of job posting for maximum visibility
```

### 5. Optional: Generate Multiple Variants

If the user asks, generate 2-3 variants with different hooks:

- **Variant A**: Lead with technical expertise
- **Variant B**: Lead with business outcome / ROI
- **Variant C**: Lead with speed / availability

## Edge Cases

- **No relevant experience**: Be honest. Highlight transferable skills and offer a reduced rate or trial task to prove capability.
- **Very competitive job (50+ proposals)**: Go shorter (under 150 words), lead with a specific insight about their business that shows research.
- **Fixed price job**: Include a brief scope confirmation and mention what's included vs. out-of-scope.
- **Job in a language you don't speak**: Note it. Suggest using the proposal in the job's language if the user can provide translations.
- **Vague job posting**: Ask clarifying questions in the proposal itself — this shows engagement and filters serious clients.

