Upwork Job Fit Ranker: Score Jobs Before You Bid avatar

Upwork Job Fit Ranker: Score Jobs Before You Bid

Pricing

from $5.00 / 1,000 jobs

Go to Apify Store
Upwork Job Fit Ranker: Score Jobs Before You Bid

Upwork Job Fit Ranker: Score Jobs Before You Bid

Rank Upwork jobs against your skills, budget and proposal cap. See client history, freshness and scoring reasons before spending Connects. Reuse scraped jobs or run searches; no applications are submitted.

Pricing

from $5.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Jessy Mariau

Jessy Mariau

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Spend your proposal time on briefs worth reading. Combine Upwork job records with your skills and budget preference to get a ranked list, the reason for each score and a starting note for your proposal.

This Actor does not submit applications or spend Connects. Its BID, MAYBE and SKIP labels are a screening rubric, not a prediction of winning work. Read the brief before acting.

See the result first

Leave searches and optional job records empty, then run. Three fictional jobs show each score band without a scraper run or Actor event charges. Demo scores use the fixture skills and budget settings; enter your own settings for live jobs.

Fictional jobScoreBandProposalsBudget
n8n and Airtable automation for a booking workflow95BID4Fixed price 1500 USD
Landing page redesign in Figma, then build in Webflow57MAYBE12Hourly 25 to 45 USD
Data entry from PDF invoices into a spreadsheet2SKIP50Fixed price 40 USD

These are actual outputs from the built-in fictional demo, not customer results. Open the dataset to inspect every reason, then export the rows as JSON, CSV or Excel.

Cost of a real run

$0.005 per job ranked. Ranking 100 jobs costs $0.50 in this Actor's events; doing that on 20 working days costs $10.00. Jobs dropped by your proposal cap have no ranking event charge. Supplied job records are charged when ranked.

Live searches run blackfalcondata/upwork-scraper on your Apify account, with its own charges and plan requirements. That search cost can still apply to jobs later excluded by your cap. Supply jobs to avoid a new search. Check the Pricing tab and your Apify plan for current platform or standby usage costs.

What I look at

Every post gets a score out of 100. Six lines feed it and they add up to exactly 100.

Client spend and history, worth 25. Lifetime spend on Upwork is worth up to 18, and the number of reviewed contracts is worth up to 7. A client with 40k spent across 18 reviewed contracts scores the full line.

Payment verified, worth 10. Verified scores 10, not verified scores 0, unknown scores 4.

Proposals so far, worth 20. Fewer than five scores 20, then it falls in steps, and fifty or more scores 0.

Freshness, worth 15. Up to three hours old scores 15, a day old scores 9, a week old scores 2.

Skill overlap, worth 20. I match your skills against the post's skill tags and title. One match is worth 8, two are worth 14, three or more score the full 20. Families count as a match, so n8n on your list matches a post asking for Make or Zapier, and Figma matches Webflow. These are adjacent tool categories, not evidence that you know the exact tool requested.

Budget against your minimum, worth 10. With a minimum set, a fixed price or top hourly rate at or above it scores 10 and anything below scores 0. With no minimum set, I use a floor of my own: a fixed price of 500 or an hourly top of 30 scores 10, a fixed price of 100 or an hourly top of 15 scores 6, and anything under that scores 2. No stated budget scores 4 either way.

A score of 60 or more is BID. From 35 to 59 is MAYBE. Below that is SKIP.

How to run it

Put one search per line, either a query as you would type it into Upwork or a saved-search URL. Put your skills in, one per line. Set a minimum budget if you have one and a cap on proposals so crowded posts are dropped before this Actor's ranking event is charged. Upstream search charges can still apply. Run it and sort the Overview table on the Fit column.

Leave the searches empty and you get three demo rows, one in each band, scored by the same rubric I use on real ones.

What comes back

One row per post, highest fit first. It holds the score and band, every signal I read, the rubric reasons with their numbers, and a proposal hook. The hook is one sentence written only from that row:

You have spent 41k on Upwork across 18 reviewed contracts, and this post is 3 hours old with 4 proposals, so here is the n8n and Airtable build you asked for.

Each row also says whether the post is new since the last run on the same watch key. Run it every morning with one key and the new column tells you what arrived overnight.

I also write a summary record with the band counts, how many posts were new, and the ten highest scores with their hooks.

Honest limits

  • The hire count is not on a public Upwork search result. The history line uses the client's reviewed contract count instead, which sits close to hires but is not the same number.
  • Skill overlap reads the post's tags and title, not the full description, so a brief that only mentions your tool in the body scores 0 on that line.
  • Proposals so far is the count at the moment I read the post. It moves fast on a fresh post.
  • The scraper I call has been seen to finish cleanly with no rows when Upwork is throttling it. I retry once and then report the empty search rather than invent a result.
  • A high score means the post is worth a look from the numbers on it. Whether the brief is any good is still your call.

Use it from an AI agent

Because this Actor runs as an MCP server too, an agent can rank a board without you opening the console. The endpoint is https://fractionalhqforyou--upwork-job-fit-ranker.apify.actor/mcp and the tool is rank_upwork_jobs, which takes the same posts and profile and returns the ranked scores. Each ranked post costs the same per event. A client limited to the Apify MCP server can load apify/actors-mcp-server with fractionalhqforyou/upwork-job-fit-ranker named as the Actor.

Help with your first run

Open an issue on this Actor with the run ID and the result you expected. Remove API keys and private records before sharing. Built by Fractional HQ, independent design and automation.