MaidLink
Two-sided home services marketplace. maidlink.ca · I co-founded it and own the full product layer: what we build, in what order, and why.
How the estimator works
Step 1 of 3
Submit photos of your space
AI reads actual condition from your photos. No self-rating required.
The problem was not the math. It was the input.
Home services pricing typically works like this: a customer describes their space, a provider estimates time and cost, and everyone commits. The problem is that customers cannot accurately describe their home's condition against professional cleaning standards.
What they say: “It's a bit messy.” What they mean: varies. Significantly.
We built a parametric estimator first: a rule-based system where customers input rooms, size, and condition. It was live at maidlink.app. It failed consistently, not because the logic was wrong, but because the input was unreliable.
After running 170+ jobs and observing the same pattern repeatedly, I identified the root cause: this is a perception problem, not a data problem. Clients do not lie. They genuinely cannot see their home the way a cleaning professional does. No form redesign or better instructions would fix that.
The only solution was to remove client self-assessment from the process entirely.
Why computer vision, and why not something simpler.
Before committing to computer vision, I evaluated three approaches:
Rule-based estimator (already live): accurate formula, unreliable input. Failed at the source.
Survey + AI classification: still depends on client self-report. Same root problem, different interface.
Computer vision: clients submit photos of their space, AI reads the actual condition, system generates service recommendations and time estimates. Removes client self-assessment entirely.
The trade-offs I weighed before committing to engineering:
Accuracy: CV can read condition signals (clutter, surface types, layout complexity) that clients miss or misreport.
Cost: inference cost per estimate was acceptable at projected volume.
Privacy: photos of home interiors are sensitive. We defined what is processed, how long it is stored, and what we do not retain.
Production feasibility: we needed a system my co-founder could build and maintain with a two-person tech team.
Computer vision was the right answer. Not because it was the most advanced option. Because it was the only approach that eliminated the broken step.
Defining success before engineering started.
If you do not define what “good” looks like before the model ships, you will be arguing about it after launch, when the pressure to keep moving is highest and the data is noisiest.
Before a single line of the CV estimator was written, I defined:
Accuracy threshold: what percentage of AI-generated estimates needed to be within an acceptable range of actual job time, and what “acceptable” meant at beta versus general availability.
Failure mode classification: not all wrong answers are equal. A 10% overestimate has different consequences than a 40% underestimate. We classified failure types by severity and defined what each required: correction, override, or re-prompt.
Confidence thresholds: when the model was uncertain, what did the user experience? We designed a fallback that does not expose system uncertainty as a bad product moment.
Production monitoring: consistency checks across similar property types, coverage warnings when the model encountered inputs outside training distribution, and a feedback loop from real job outcomes back to calibration.
Engineering can ship the model. Only the PM can define what “accurate enough” means for this product, for these users, at this stage.
The CV estimator is one module.
MaidLink has a full product surface: estimation (CV AI plus rule-based fallback), booking and confirmation, job assignment and scheduling, scope management, payment and settlement, review and reputation (blockchain-backed), cleaner onboarding.
I own the roadmap across all of it. Sequencing features, managing tech debt, and making the call on what does not get built right now.
The marketplace platform is built and on hold. Live operations revealed process problems on the cleaner side that would compound at scale. Launching into a broken operational process does not scale the business. It scales the problems. We are fixing the root causes first.
Where it stands.
Live market operation: still running. 100+ clients, 170+ jobs completed. Not a completed validation exercise. An ongoing data pipeline. Real job outcomes inform AI model calibration continuously.
Computer vision estimator: live in beta. Try it at maidlink.ca/estimate. Performance benchmarks are being established as beta matures. Numbers get published when there is enough real data to stand behind them.
Marketplace platform: built, not publicly launched. On hold pending resolution of operational scaling issues identified through live operations.
If you are building AI products and need someone who can own the product layer end-to-end: