Use case Leads and enquiries
Bid on the right posts
I bid on Upwork myself, and the slow part was never the writing. It was opening forty posts to find the six worth a proposal: a client with real spend behind them and a verified card, a post an hour old with three proposals on it, asking for what I actually do. Now I run the searches and hand back a ranked list, with the reason each post scored what it did and one sentence to open with.
The question this page answers
Which Upwork posts are worth my Connects this morning, and why?
How the working version is put together
Give it the searches and your skills
One search per line, either a query as you would type it into Upwork or a saved-search URL. Your skills one per line. Set a minimum budget if you have one and a cap on proposals, so crowded posts are dropped before they cost anything. Leave the searches empty and you get three demo rows, one per band, which costs nothing.
Read every post the way a bidder does
The search runs on a public Upwork scraper on your own Apify account and is billed there. From each post I take the client's lifetime spend and reviewed contracts, the payment status, the proposals so far, the age, the budget and the skill tags. If you already scraped the posts, paste them in and I rank them without a new search.
Match your skills, families included
I match your skills against the post's tags and title. One match is worth 8, two are worth 14, three or more the full 20. Families count, so n8n on your list matches a post asking for Make or Zapier, and Figma matches Webflow. The description is not read for this line, so a brief that only mentions your tool in the body scores 0 on it.
Score it out of 100
Client spend and history are worth 25, payment verified 10, proposals so far 20, freshness 15, skill overlap 20 and budget against your minimum 10. The lines add to exactly 100. Sixty or more is BID, 35 to 59 is MAYBE, below that is SKIP.
Write the hook from the row
One sentence built only from that post's numbers: You have spent 608k on Upwork across 91 reviewed contracts, and this post is 9 hours old with 8 proposals, so here is the n8n build you asked for. Each row also says whether the post is new since the last run under the same watch key, so a morning run tells you what arrived overnight.
What forty-one real posts scored
The first real run searched n8n automation and landing page design with my own skills set, and ranked forty-one posts: sixteen BID, twenty-one MAYBE and four SKIP. The top post scored 92 on a client who had spent 608k across 91 reviewed contracts, verified, nine hours old with eight proposals and three skill matches. Second was a Figma designer post at 79: 147k spent, 68 contracts, two hours old, but already carrying 31 proposals. Both hooks quote those figures back, which is the point. The whole run cost about twenty cents of my fee plus the search on my own account.
The honest row is the third one. A Google Ads post scored 72, BID, with zero skill overlap, because the client had spent 26k across 30 contracts and the post was two hours old with seven proposals. A rich, fresh, uncrowded client can reach BID on the client lines alone. That is the rubric telling you the post is worth a look from its numbers, and whether the brief fits you is still your call.
Reviewed contracts, not hires
The hire count is not on a public Upwork search result, and reading it needs a logged-in session, which this does not use. The history line uses the client's reviewed contract count instead. It sits close to hires but it is not the same number, and the row says reviewed contracts rather than hires so you are never misled.
What moves fast
Proposals so far is the count at the moment I read the post, and it climbs quickly on a fresh one. Freshness is scored the same way: three hours old scores the full 15, a day old scores 9, a week old scores 2. Run it in the morning rather than the evening. The scraper has also been seen to finish cleanly with no rows when Upwork is throttling it, so I retry once and then report the empty search rather than invent a result.
What it costs to run
Half a cent per post ranked. Posts dropped by the proposals cap are not charged. The Upwork search runs on a public scraper on your own Apify account and is billed there, exactly as if you had run it yourself.
Read this before you spend anything
When I would tell you not to bother
If you bid on one or two posts a week, open them yourself. This earns its keep on several searches a day for the same skill set.
A high score means the post is worth a look from the numbers on it. It does not read the brief for quality, and a BID row with zero skill overlap is a client signal, not a fit signal.
Skill overlap reads the tags and the title only. If your tool is buried in the description, the line scores 0 and the post may land in MAYBE.
What lands on your desk
- One row per post, highest fit first: score out of 100 and a BID, MAYBE or SKIP band
- Client spend, reviewed contracts, rating, payment verified, proposals so far, age and budget beside every row
- Which of your skills matched, and how
- Every rubric line that fired, with its numbers
- One proposal hook written from that row alone, and whether the post is new since the last run
- If you want the BID rows landing in a tracker with a draft proposal per post, that is the work I do
Open the proof
Published case studies of systems that are running. Each links to the thing itself.
Other builds in this cluster
Same pattern, each one aimed at a different part of the business and linking to its own page.
Questions this page answers
- Where do the posts come from?
- From an Upwork search run through a public Upwork scraper on your own Apify account. Or from job records you already scraped, pasted in, which runs no new search.
- What does the score measure?
- Six lines that add to 100: client spend and history 25, payment verified 10, proposals so far 20, freshness 15, skill overlap 20 and budget 10. BID is 60 and above, MAYBE is 35 to 59.
- Why did a post with none of my skills score BID?
- Because the client lines carried it. In the real run a Google Ads post reached 72 on 26k spent, 30 reviewed contracts, two hours old and seven proposals, with zero skill overlap. The row shows the overlap so you can see that.
- Does it know how many people the client has hired?
- It does not, because the hire count is not on a public search result. It uses the reviewed contract count instead and labels it as such.
- What does it cost?
- Half a cent per post ranked. The Upwork scraper bills your own Apify account on top, and posts dropped by the proposals cap are not charged.
Want this built and handed over working?
One line is enough to start. You get an honest answer on fit, and a number rather than a discovery call.
Start a brief

