Structure clients can skim
Line one: their outcome in your words. Lines two–four: proof. Middle: plan or questions. Close: one clear next step. Short beats long when every sentence adds signal.
Checklist before submit
- Referenced something specific from the post.
- Removed filler phrases (“I am excited to apply”).
- Matched tone to client formality.
- Confirmed rate and timeline align with your intent.
- Previewed on the actual Upwork form.
Use AI as co-pilot, not autopilot
Draft variants from the job and your GitHub context, then edit voice and facts. Clients reward humans who read; they punish obvious automation.
Example opener skeleton (fill the brackets)
“You need [outcome] under [constraint]. I [similar proof] for [similar client/industry] — [metric or timeframe]. Two questions before I scope milestones: [question 1] and [question 2].” That pattern forces specificity without sounding like a mail merge.
Length guidance
Short posts: shorter letters. Complex posts: use a tight letter plus optional structured landing page for phases and deliverables. Never paste a novel that repeats the job description back to the client.
Common mistakes to delete
- Opening with your life story instead of their outcome.
- Listing every skill you have ever used.
- Quoting the entire job description back to them.
- Saying you are “perfect for this job” without proof.
- Attaching five files before the client asks.