Upwork Profile Optimization: A Free Skill That Rebuilds Your Profile
Most Upwork profile optimization advice stops at the title. Rewrite it, add a keyword, move on. The title matters, but it is one field out of dozens, and a profile gets found and hired on all of them together. So I turned the process I use to rebuild a whole profile into a free Claude skill. You install it, paste in your current profile, and it walks you through every field until it can hand you a page you paste from.
The download is further down.
What Upwork says your profile is doing
Upwork's own guide to building a freelancer profile is plain about the two fields most people rush. On the title: "The title of your profile is your first impression to potential clients." On the overview, the field most freelancers call the About: "only the first 250 or so characters will appear in the freelancer search results list."
That second line is where a profile can lose. A buyer scanning search results reads a sentence or two of you. Everything past that exists only for the buyer who already clicked.
The same guide covers skills and categories. It says to pick skills by looking at "what you see clients request in their job descriptions", and that your profile "will be displayed in these categories when clients search through them."
The Upwork profile optimization mistake made of true facts
The obvious failure is inventing things. You do not need a tool to avoid that, and Upwork is explicit that "putting deliberately false or misleading information on your profile is against our Terms of Service."
The failure I found on a recent rebuild is quieter: every fact is true and the sentence still says something false. A result that came from two services gets rewritten as if one of them produced it, because the new profile focuses on that one. A second service drops out of a case study without anyone deciding it should. A company you co-founded becomes a company you own. A skill tag lands on work that never used it.
No single word in those sentences is a lie. Each one is still a claim you cannot defend when a buyer asks about it on a call. And narrowing your positioning is the pressure that produces them. On that rebuild, this failure turned up more than a dozen times.
Upwork's line on portfolios is short: "Your portfolio should be yours and yours alone." The skill holds every field to that.
What the skill does, in order
- Captures your live profile first. Before a word is drafted, you paste in your current profile exactly as it stands. That copy is the baseline for everything after it.
- Records what only you know. The services you deliver, every result together with the services that produced it, and your relationship to every company you name, in the words you already use in public.
- Checks your keyword is a phrase buyers type. You capture what Upwork's search suggests while logged in to your own account, and you count the competition on that phrase. Both are short steps you do by hand.
- Sets a positioning plan from that evidence, before any copy gets written.
- Builds every field into one source file. Title, About, skills, employment, portfolio and Project Catalog. Anything it is unsure about becomes a question for you, not a sentence on your profile.
- Runs every check and refuses to finish until all of them pass.
- Writes one page you paste from, with a copy button and a character count on every field.
The checks a checklist cannot run
- A claim you have not confirmed is held everywhere at once. If a field waits on your answer, it carries a hold marker on the page and its copy button is off. The build also checks that the same claim is not still sitting in another field. A hold that covers your skills list and misses a portfolio tag is not a hold.
- Every change to your own words is shown to you. The build compares the new copy with the profile you pasted in and lists what changed, deletions first. Anything on your live profile today is marked as live, because repeating a claim you publish adds no new risk.
- A result stays attached to what produced it. If a result came from two services, the build flags a sentence that states the result but credits only one of them. Its own test cases, included in the download, list the wordings it still misses.
- Your past job titles stay yours. The build refuses copy that renames a title you actually held to carry a keyword. Where the keyword is missing from a real title, it reports the gap instead.
- The page's counts come from the profile. When the page says how many skills, tags, portfolio items or open questions you have, the number is calculated from the profile, and a hand-typed count that disagrees fails the build.
- Skill and category caps come from your form, not from a guide. Upwork's help center says you "can add up to 15 skills". Forms change and accounts differ, so the skill has you read the limit off your own form and builds to that. Categories work the same way.
Get the skill
It is free and it runs in Claude Code. Download it, unzip it into your skills folder, and start a new session.
mkdir -p ~/.claude/skills
unzip ~/Downloads/profile-optimization.skill -d ~/.claude/skills/
Then ask Claude to optimize your Upwork profile, or run it yourself from any folder:
python3 ~/.claude/skills/profile-optimization/scripts/build.py --init my-profile
python3 ~/.claude/skills/profile-optimization/scripts/build.py my-profile/profile_source.json --phrases my-profile/phrases.json --out my-profile/out
The first command makes a my-profile folder with two blank files: one for your profile, and one for the search suggestions you capture by hand. The second runs every check and, only when all of them pass, writes my-profile/out/profile.html. It opens in any browser and loads nothing from the internet. You need Python 3.8 or newer and nothing else.
What to expect after you paste
A rebuilt profile does not move everything at once. Invites tend to move first, because they depend on being found. Reply rate, if it moves, comes later, because it depends on the profile a buyer reads after they click. Give it a week before reading anything into it, and a quarter before deciding it worked.
I will not promise you a reply rate, and I would be careful with anyone who does.
If your proposals are the problem and not your profile, start with why Upwork proposals get ignored. To see whether anyone opens your bids at all, read about Upwork proposal view rate. And for context on reply rates, see my earlier post on Upwork reply rate benchmarks.
New posts by email
One email per new post, written by me. No sequences, no pitch drip, unsubscribe anytime.
Want these numbers working for you?
I build automated Upwork lead generation systems for agencies: profile, targeting, bidding, all of it.
Book a call, then decide