Guide
How to write an Upwork proposal that clients finish reading
Clients see only the first couple of lines of a proposal before deciding whether to open it. This guide covers the structure that gets past those lines, with a worked example, a template and the stock phrases to cut.
Last updated
The short answer
- Keep it to about 110 to 170 words.
- Open on the client's problem, in their words, not on who you are.
- Give one relevant project with one concrete detail, not a list of skills.
- End with a specific next step, then your first name. No stock closing lines.
On this page
What the client actually sees first
A client reviewing applicants on Upwork sees a list, and each entry shows your name, your rate, your job success and the first couple of lines of your cover letter. Everything below that is behind a click. On a posting with thirty or fifty proposals, most of them never get that click.
That changes what the opening is for. It does not need to introduce you, because your name and title are already sitting next to it. It needs to prove, in one or two lines, that you read this post and understood the problem in it. That is the whole job of the first sentence, and it is where most proposals lose.
The five-part structure
Good proposals are short, and they are built in the same order. 110 to 170 words is a sensible target: long enough for one real piece of evidence, short enough to be read whole.
| Part | What it does | Length |
|---|---|---|
| 1. Greeting | The client's first name if the post gives it, otherwise a plain "Hi there". Never "Dear Sir/Madam". | A few words |
| 2. Hook | Mirrors the client's specific problem back to them, in their terms. It should be impossible to paste into a different proposal. | One sentence |
| 3. Proof | The single most relevant thing you have done, with a concrete detail. One project, not a list of skills. | Two to four sentences |
| 4. Call to action | A specific, low-effort next step: a question about their setup, or an offer to show a similar piece of work. | One or two sentences |
| 5. Sign-off | "Best," or "Thanks," and your first name. Nothing after it. | Two lines |
Write the hook from their words, not your résumé
Read the post for the one detail that tells you what is really wrong. It is usually a named tool, a deadline, a number, or a sentence that sounds frustrated. Then say that back to them as a statement of the problem, not as a claim about yourself.
| Opening | Why |
|---|---|
| "I have read your job posting and I am the perfect fit." | Every applicant can write this, so it tells the client nothing. |
| "I have 8 years of experience in React and Node." | It is about you, and the client's question is about them. |
| "A Stripe webhook that works locally and fails in production is almost always the signing secret or a proxy rewriting the body." | Specific to this post, shows diagnosis, and is worth clicking to read the rest. |
One piece of proof beats a skills list
Pick the single past project that is closest to this job and give one concrete detail from it. A finished Upwork contract is the strongest evidence you have, because a real client paid for it and left feedback on it. A short phrase from that feedback is fair to quote if it is about this kind of work. Never imply a past contract was for this client, and never name a past client without permission.
If you have nothing directly comparable, say what you would check first. A clear diagnosis is also proof: it shows the client how you think, which is what they are trying to work out.
A worked example
The posting, shortened:
A proposal that follows the structure above, at 126 words:
Notice what is missing: no years of experience, no list of technologies, no “I would love to help”. The client can see all of that on the profile. The letter only does what the profile cannot.
A template you can adapt
Use this as a shape, not as fill-in-the-blanks text. A template pasted unchanged across posts reads as exactly that, and clients who hire regularly can spot one immediately.
Openers and closers to cut
These phrases appear in so many proposals that clients skim past them. Delete them on sight:
- “I am the perfect candidate for this job”
- “I have read your job posting carefully”
- “My name is … and I am a …”
- “I have N years of experience in …” as the opening line
- “I am passionate about …”
- “Please consider me”, “Looking forward to hearing from you”, “Thank you for your time”
- “Dear Sir/Madam” and “To whom it may concern”
Screening questions and the bid
Clients often read screening answers before the letter, because the answers are shorter and more directly comparable across applicants. Answer each one in one to three sentences, specifically and honestly. If the question asks about something you have not done, say so plainly and say what you have done that is closest. A vague answer reads as evasive.
Bid what the work is worth to you, not the lowest number on the page. Underbidding does not reliably win on Upwork, and it trains the client to expect that rate. If the budget is too low for the scope, say so politely and propose a smaller first milestone.
Timing matters, but less than the first line
Applying early helps, because clients often start interviewing from the first batch of proposals. But an early generic letter still loses to a slightly later specific one. The best case is both: a specific letter that goes out within an hour or so of the post.
That is the job Nibwright does. It watches Upwork through the official API, and when a posting matches your search it drafts a proposal following this exact structure, from your real Upwork work history. You read it, edit it, paste it into Upwork and press Submit yourself.
Questions
How long should an Upwork proposal be?
Around 110 to 170 words for most jobs. That is enough for a specific opening, one piece of proof and a clear next step. Clients only see the first couple of lines before clicking, so length matters less than making those lines specific to the post.
What should the first line of an Upwork proposal say?
It should restate the client's specific problem, using a detail from their post, and ideally name the likely cause. It should not introduce you: your name, title and rate are already shown beside the letter.
Should I use a proposal template on Upwork?
Use a structure, not fixed text. A template that is pasted unchanged across posts is easy for clients to spot. Keep the order (hook, proof, call to action, sign-off) and write the hook and the proof fresh for each job.
Can I use ChatGPT to write Upwork proposals?
Yes, as long as you check every claim and edit the result. The usual problems with a general chatbot are generic openers and invented experience. A tool that drafts from your actual Upwork profile and contract history, and that you review before sending, avoids both.
Is it better to apply early on Upwork?
Generally yes, because many clients start interviewing from the first proposals they receive. But specificity matters more than speed: a generic letter sent in the first five minutes usually loses to a specific one sent within the hour.
See a real draft for a real Upwork posting before you pay anything.
Connect Upwork with read-only OAuth, save a search, and the first proposals arrive on the free 100 starter credits. You still press Submit yourself.
Start freeRelated
- Upwork proposal samplesFour finished proposals in this structure, across four job types.
- Upwork cover letter generatorDrafts proposals in this structure from your real Upwork history.
- Upwork Connects explainedWhat each proposal costs, and how to spend Connects where they return.
- Is Upwork automation allowed?Which tools get accounts flagged, and which do not.
- Upwork job alertsFind matching posts early enough for a specific letter to matter.