How Vibeworker Scores Upwork Jobs with AI | Vibeworker
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 has a free plan. Get started for free →

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
Vibeworker RSS Feed: Your Scored Upwork Jobs Delivered
Get your personalized, scored Upwork job feed with Vibeworker's new RSS feature. Ditch Upwork's old feeds and get pre-evaluated job opportunities delivered directly to your favorite reader. Easy setup in Settings > API.
AI vs Keywords: Why Job Alerts Fail & How Vibeworker Finds Fit
Stop wasting time with keyword alerts that miss relevant Upwork jobs. Discover how Vibeworker uses AI and semantic embeddings to understand job meaning, ensuring you see only the top 5% of opportunities that truly match your skills. Upgrade your freelance job search with smarter, AI-powered matching.
What Is Vibe Working? The AI-Powered Freelancing Revolution
Discover Vibe Working, the new freelancing philosophy where AI handles repetitive tasks like job scanning and proposal writing. Reclaim your time to focus on high-value work, build client relationships, and truly excel in your freelance career. Learn how Vibeworker empowers this efficient approach.