How Vibeworker Scores Upwork Jobs
Every freelancer on Upwork faces the same problem: the job feed is a firehose. Hundreds of new posts per day, most of them irrelevant, a handful genuinely worth your time. Manually scanning that feed is how you lose an hour every morning.
Vibeworker solves this by scoring every job the moment it's posted — before you ever open the app.
The scoring pipeline
When a new job arrives, Vibeworker does two things automatically:
1. Embeds the job. We convert the job's skills, scope, client signals, and risk factors into a high-dimensional vector using a state-of-the-art embedding model (Qwen3-Embedding-8B, currently ranked #1 on the MTEB benchmark). This happens in milliseconds.
2. Compares it against your profile. Your skills and preferences are also stored as a vector. We compute the cosine similarity between the job and your profile — a single number representing how well this job matches what you're looking for.
Why embeddings instead of keywords
Keyword matching is brittle. A job titled "Build a web app" and one titled "Next.js developer needed for SaaS MVP" are the same opportunity — but a keyword filter would treat them differently.
Embeddings understand meaning, not just words. They capture that React and TypeScript are related, that "MVP" implies a certain kind of project, that a client with a high hire rate is different from one who posts and ghosts.
The percentile score
Raw similarity scores are hard to interpret — is 0.62 good or bad? So we convert them to percentiles. If a job scores in the top 5%, you'll see "Top 5% match." That's a number you can act on immediately.
The percentile is computed against your full job history, so it calibrates to your profile. As more jobs flow through, the distribution gets more accurate.
What the score doesn't capture (yet)
Embeddings measure skill fit. They don't directly measure opportunity quality — whether the budget is realistic, whether the client has a track record of actually hiring, whether the scope is well-defined.
We're working on a separate "opportunity quality" score that captures these signals. Combined with skill fit, the goal is a single ranked feed where the top jobs are both a great match and worth bidding on.
Vibeworker is in early access. Start your free trial →

Michael Watkins
Founder of Vibeworker. Helping freelancers win the Upwork game through speed and data.
Stop missing the jobs that matter
Vibeworker watches the Upwork feed and alerts you the moment a high-fit job appears — before the proposals pile up.
Start free trial →Keep reading
AI vs. Keywords: Why Your Job Alerts Are Failing You
Keyword alerts are a 2010 solution to a 2026 problem. Learn why semantic search is the only way to find your perfect Upwork matches.
What Is Vibe Working? The New Way Freelancers Are Winning Online
Vibe working is the emerging approach to freelancing where AI handles the scanning, matching, and grunt work — so you focus on the work that actually matters.
How to Use AI Proposal Generation Without Every Proposal Sounding the Same
AI gets you to a draft faster. The problem is every other freelancer is using the same tools producing the same output. Here's how to make it yours.