I've been building Opencals (booking platform for service businesses): 150+ businesses on the platform, $0.99/booking pricing, all features built. The whole time I was doing what every IH post tells you to do for distribution – Quora, LinkedIn, Reddit, cold email, SEO. Slow grind. Some wins, mostly silence.
This week I realized something obvious that I'd somehow missed for the entire time I've been building.
Upwork isn't just a place to find freelance work. It's a public list of people who:
Have a written, scoped requirement for software you might already have built
Have a budget (they've already decided they'll pay)
Have decided they need a custom solution and are about to take the risky path (hiring a stranger)
That last point is the whole game.
I searched for "booking software" jobs on Upwork. I found around ~10 active postings, in one night, for custom booking systems. Salons, gyms, multi-location service shops, a tutoring marketplace. Each one had detailed requirements – number of staff, locations, payment integrations, calendar logic. The exact thing I've already built. With API, SDK, dashboard, admin panel, multi-location support, the works.
I wasn't going to bid as a freelancer. I bid as the founder of a product that already does 90% of what they wrote down.
The math from the customer's side
Hiring a freelancer to build custom booking software:
$5k–$25k upfront
2–6 months of dev time
High risk: you don't know if the freelancer is good, the spec changes mid-build, they disappear, the code is unmaintainable, you have no support after launch
You own the code, but you also own all the bugs forever
Buying my product + implementing the missing 10%:
A few hundred to a few thousand for the custom work
Live in days, not months
The core is already battle-tested by 150+ businesses
I built it, I know it end-to-end, and I'm financially incentivized to keep it running
They get all future improvements for free
When you frame it like that, the choice is pretty obvious to the customer. They didn't actually want a custom-built thing. They wanted their problem solved. They were going the custom route because they didn't know a product like mine existed.
The math from my side
Every "custom feature" I build for one of these clients goes into the core product. So:
I get paid to build features I would have built anyway
The features ship for all my other users
I'm validating real demand with money on the table (not survey answers)
The client becomes user #1 of the feature and helps me debug
This is the part that flipped my thinking. I was treating Upwork as a side hustle. But each gig is actually a funded user acquisition campaign for a feature my product needs.
Why I think this is underused
I think builders ignore Upwork and other freelance platforms because the framing is wrong. We think of it as "freelance work" – the thing you do when you're not building a product, or to pay rent. So when you're heads-down on your SaaS, Upwork doesn't enter the picture.
But if you flip the frame to "list of people who've written down their requirements and are about to spend money on a problem you've already solved," it's the most efficient lead source I've found. Better than Quora. Better than SEO. Better than cold email. These people are not skeptical leads – they are buyers who've already decided to buy something. The only question is what.
It also works the other direction. If you don't have a product yet and you're trying to figure out what to build, scanning Upwork for repeated job postings is a free, real-time, money-validated demand signal. Ten people posting jobs for the same custom thing this month means a market exists.
The honest caveats
You need an actual product, not a half-built MVP. Customers are choosing you over a freelancer specifically because your thing is real and proven. If it's not, they'll just hire the freelancer.
You have to be the founder/developer on the call. A salesperson can't credibly answer "can it do X? can we implement Y?" The leverage comes from you knowing the codebase well enough to commit to feasibility on the spot.
You can't undercut on price. The pitch isn't "I'm cheaper than a freelancer." The pitch is "I'm dramatically less risk, and you're live in days instead of months."
It's not infinite. There are only so many "build me X" jobs per week. But for a bootstrapped product that needs its first 50 paying users, it doesn't have to scale to infinity. It just has to fill the pipeline.
I wish I'd done from day one
If you're in the bootstrapping middle – product is real, traction is slow, you're not sure where the next user comes from – go open Upwork right now and search for the exact thing your product does. There's a non-zero chance someone is actively budgeting for it this week.
Don't bid as a freelancer. Bid as the founder of the product they didn't know existed.
Genuinely smart framing. "List of people who wrote down their requirements and are about to spend money" is the sharpest version. Quoting that.
One pressure-test though: Upwork is a surface, not the wedge. The pattern you're exploiting is "buyers paying for custom-built solutions because they don't know productized alternatives exist." Same buyer exists on Reddit ("anyone know a booking tool for X?"), Twitter, LinkedIn freelance groups, niche subreddits. Upwork makes them visible. Not Upwork-only.
Volume caps fast on Upwork — 5-15 jobs/week globally, 2-5 hours each. A few customers/month before you're founder-hour-bound.
Distribution stops being "find more Upwork" and becomes "find more of this buyer in their natural habitats." The Upwork insight is the unlock. The buyer pattern is the moat.
The interesting part is that these people already crossed the hardest line:
They admitted the problem is painful enough to spend money solving it.
Are you able to find the identities of the people who post their job requirements?
Maybe on some other platforms they’re exposed. On Upwork, no – you have to apply for the job posting, and if the client is interested, they’ll reply so you can continue the conversation.
This comment was deleted a month ago
Great insight. You didn’t find freelance work—you found people already ready to buy your solution.
Turning custom requests into paid roadmap features and early customers is a smart growth loop for a bootstrapped SaaS.
Curious what the lead source is before reading further - my guess is either job postings (companies hiring for a role signal they have the problem your tool solves) or GitHub stars (engagement pattern that predicts buying intent).
The pattern that makes a lead source 'underrated' is usually that it requires interpretation rather than direct action. Email lists, PH upvoters, and Twitter followers are easy to measure so everyone chases them. The sources that require you to infer intent (what does hiring a 'head of X' signal? what does starring repo Y signal?) are harder to operationalize but much less competitive.
For solopreneurs specifically, the underrated source I keep coming back to is IH comments. Someone who comments substantively on a thread about a specific pain has already pre-qualified themselves - they're not just browsing, they're actively thinking about that problem. They go into the CRM database of the Solopreneur OS I'm building with a 'warm signal' tag.
What's the lead source? Interested in how you're capturing and following up with them once identified.
The reframe from 'freelance work' to 'pre-qualified buyer list' is the key shift, and once you see it that way it's hard to unsee it.
The second-order benefit worth noting: Upwork postings are also a continuous product signal. When you see the same requirement phrased 10 different ways across 30 listings in a month, that's a funded feature request — people have already decided to pay someone to solve that problem. If you track the categories systematically, you get a real-time demand map that's more actionable than any survey or customer interview.
The approach also double-qualifies leads in a way cold outreach never does: they've committed attention (writing a detailed spec), budget (already decided to hire), and urgency (live posting). Three buying signals before you've sent a single message.