upwork-profile-optimizer
Upwork Profile Optimizer
The proposal's only job is to earn a profile visit. The profile does the actual closing, and it also decides search visibility before any proposal is sent: Upwork's AI search ranks freelancers on profile relevance, buyer intent, the client's history, and price fit, and clients can preview the whole profile from search results without clicking through. A half-filled profile loses twice: weaker preview, weaker ranking. Method from Upwork's published guidance plus a Top Rated Plus profile as the worked example.
Inputs
- Title, exact text.
- Overview, full text.
- Portfolio list: titles and niche of each piece, in their current order.
- Skills tags, as listed.
- Stats and badges: JSS if visible, badge tier, total earnings bracket, response stats.
- The user's niche and the kind of client they want next. The audit is against that target, not against a generic ideal.
Profile shortcut: if a stored profile file exists (upwork-profile.md in the working directory or ~/.claude/), read it first and audit against it; ask only for sections the file lacks or states vaguely (a rate line that says "ask me" means ask). If a stored profile file and a fresh paste both exist, the paste is ground truth for scoring and the file is background context. Flag any mismatch between the two as a finding.
When tags or stats are missing from both sources, audit what's present now and end by requesting exactly those two. Don't block the audit waiting for them.