TL;DR: Attachments on an Upwork proposal help when they are one or two pieces of evidence chosen for this specific job, and hurt when they are a dump of everything you have ever made. The cover letter does the selling and the attachment backs up one claim in it, so the rule is simple: if your proposal says "I have done this before," attach or link the one sample that proves it, name it so the client knows what it is before they open it, and refer to it in the text. Skip generic CVs, full portfolio exports, anything that contains contact details, and any client work you do not have permission to share. Never build a custom mockup for a stranger's job post for free just to have something to attach.
Most freelancers treat the attachment field as an afterthought. Some leave it empty every time. Others drop in the same three files on every proposal, usually a CV, a portfolio PDF and a screenshot that made sense for a job six months ago. Both habits waste the one part of a proposal that can show rather than tell.
This guide covers what clients actually do with attachments, what is worth attaching, what to leave out, how to name and reference files, and when a link beats a file.
A quick note: Upwork changes its proposal form from time to time, including which file types and sizes it accepts. Check the current form before relying on any specific detail.
What clients actually do with attachments
Start with how a proposal gets read. A client with a busy post sees a list of proposals, each showing the freelancer's name, title, rate and the first lines of the cover letter. Most decisions about who gets a closer look happen right there. Attachments are not visible at that stage. They only matter once a client has opened your proposal because the opening lines earned it.
That ordering explains almost everything else in this guide:
- An attachment cannot rescue a weak opening. If the first two lines of your cover letter are generic, nobody opens the file. How to write an Upwork proposal covers how to make those lines specific.
- An attachment is a second-stage tool. Its job is to turn "this freelancer sounds right" into "this freelancer has clearly done it before." That is a narrower job than most people give it.
- Clients open very few files. A client comparing a shortlist will usually check one sample per freelancer, if any. If you attach five, they pick one at random, which is rarely the one you would have chosen.
So the question is never "what can I attach?" It is "which single piece of evidence makes the strongest claim in my proposal believable?"
What is worth attaching
One sample that matches the job
The best attachment is a piece of work that looks like the thing the client asked for. If the post is for a Shopify product page redesign, a before and after of a product page you redesigned beats a general portfolio deck. If it is a technical blog post on Kubernetes, a published technical post beats your best lifestyle article.
The closer the match, the less the client has to imagine. That is the entire value of the file.
A short case study for complex work
For jobs where the result is not visible in a screenshot, like a data pipeline, an automation, an ad account restructure or a migration, a one-page case study works better than raw output. Keep it to a single page: the problem, what you did, the result, and one image or diagram. Only include numbers you can back up and are allowed to share.
Something the client asked for
If the post asks for a specific sample, a code snippet, a writing test or a reference to similar work, attach exactly that and say so in the first line. Clients who ask for something specific often use it as a filter, in the same way they use screening questions. A proposal that ignores the request reads as a proposal that did not read the post.
A brief plan, sometimes
On larger or vaguer projects, a short outline of how you would approach the work can help, especially when a client is comparing approaches rather than prices. Keep it to the shape of the work: phases, what you need from them, where the risks are. It should show how you think, not do the thinking for them.
What to leave out
Generic CVs and full portfolio exports
A CV is written for employers, not clients. It lists job titles and dates when the client wants to know whether you can solve their problem. Your Upwork profile already carries your history, and the client can click through to it. Your portfolio on your profile is where the full archive belongs, so the proposal only needs the piece that fits.
The same goes for a forty-page portfolio PDF. It tells the client you did not choose. Curating is part of the signal.
Anything that contains contact details
Upwork's terms restrict sharing contact information such as email addresses, phone numbers or messaging handles before a contract starts, and that applies to files as well as message text. A PDF with your email in the footer, a CV with your phone number, or a sample with your personal website's contact page is an easy way to break a rule you did not think about. Strip those details from anything you attach. Working with an Upwork client outside Upwork explains where those lines sit and why they matter for your account.
Client work you cannot share
If a past client's work was under an NDA, or simply was not public, do not attach it to a stranger's proposal. Anonymise it properly or describe it in a case study without the confidential parts. A prospective client who sees you casually sharing another client's internal material will assume you would do the same with theirs.
Free custom work
Some freelancers build a mockup, a sample article or a short demo specifically for a job post to stand out. Occasionally that wins a job. More often it is unpaid work for someone who may never hire anyone, and some posts exist precisely to collect it. If you want to show how you would handle their project, describe the approach in a few lines instead. If a client wants to see real output before committing, Upwork free test projects covers how to turn that into a small paid milestone.
How to name and reference your files
A file called final_v3.pdf gives the client no reason to open it. A file called Shopify-product-page-redesign-before-after.pdf tells them what they will see before they click.
Then tie the attachment to the proposal text. The strongest pattern is one sentence placed right after the claim it supports:
"I rebuilt the product pages for a skincare store last year with the same theme you're using. The before and after is attached as Shopify-product-page-redesign.pdf."
That sentence does two things. It makes the claim, and it tells the client exactly where the proof is. Without it, the attachment sits at the bottom of the proposal hoping to be noticed.
A few practical habits help:
- Use PDF or image formats that open in a browser without special software.
- Keep files light so they load quickly, especially for clients reading on a phone.
- Check every file before attaching it. A wrong file is worse than no file, because it suggests you reuse proposals without reading them.
When a link beats a file
Sometimes the evidence is a live thing: a website, a published article, an app listing, a public repository. In those cases a link is better than a screenshot, because the client sees the real work rather than a picture of it.
Two cautions apply. First, link to the specific page, not your homepage, so the client lands on the evidence and not on a navigation menu. Second, the same contact-details rule applies, so avoid linking to pages whose main purpose is getting the client to contact you outside Upwork. A portfolio item on your Upwork profile is often the cleanest link of all, since it keeps everything on the platform.
How long should an Upwork proposal be makes the same point from the other direction: one relevant link next to the proof sentence lets an interested client go deeper without lengthening the proposal for everyone else.
Does the job deserve an attachment at all?
Not every proposal needs one. On a small, clearly scoped task, a sharp cover letter and a well-built profile can be enough, and adding a file is just more to read. Attachments earn their place when:
- The client has asked for samples or examples
- The work is visual or easy to show
- The project is large enough that the client is comparing approaches
- Your profile does not yet show work in this exact niche
The last case is common for freelancers early on. If your first job on Upwork is still ahead of you, a well-chosen sample from outside the platform can stand in for the work history you do not have yet.
Attachments do not fix targeting
It is worth being honest about the limit here. A perfect attachment on a post with fifty proposals, a client who has never hired, or a job posted three days ago is still unlikely to be seen. The client may never reach your proposal, let alone open your file. Why am I not getting jobs on Upwork walks through the bigger factors, and most of them are about which jobs you choose and how early you get there.
That is the problem Upwork Scout is built for. It watches Upwork continuously, applies your filters on payment verification, client spend, hire history and proposal count, and emails you matching jobs while they are still fresh. You get to good posts early, with time to pick the right sample instead of rushing. The free tier lets you set your filters today.
The bottom line
Treat the attachment field as a place for evidence, not storage. Attach one piece of work that matches the job, name it clearly, and point to it in the sentence where you make the claim it supports. Leave out CVs, full portfolio dumps, contact details, confidential client work and free custom mockups. Use a direct link when the work is live. And remember that the attachment only gets opened if the opening lines of your proposal, and the job you chose to apply to, earned the click first.