
Maria Santos
Infrastructure Lead
Maria oversees Kavod's distributed systems infrastructure, building resilient platforms that serve millions across Africa.
The Trust Problem in Home Services
Finding a reliable electrician, plumber, or painter in most African cities is a gamble. You ask friends for recommendations, call someone who may or may not show up, negotiate a price with no benchmark, and hope the work gets done properly. When it does not, there is no recourse. The home services market runs on informal trust networks that do not scale.
Tradesmen On-Demand was built to formalize this trust. We provide a platform where service providers are rigorously vetted, fairly matched to jobs, and held accountable through a transparent review system. This post covers the engineering and operational systems behind our vetting, matching, and quality assurance processes.
Background Verification: Building Trust from Identity Up
Every tradesperson on our platform undergoes a multi-stage background verification process before they can accept their first job.
Identity Verification
The first step is confirming the person is who they claim to be:
- Government ID validation: We verify national ID cards, driver's licenses, or passports against government databases where API access is available (currently Nigeria, South Africa, Kenya, and Ghana). For countries without digital verification APIs, we use manual document review with trained analysts.
- Liveness detection: A real-time selfie check confirms the person submitting documents is the person on the ID. Our liveness model detects printed photos, screen replays, and mask attacks with 99.2% accuracy.
- Address verification: We confirm the tradesperson's home or workshop address through a combination of utility bill verification and, for high-population-density areas, field agent visits.
Criminal Background Checks
Where legally permitted and where databases exist, we run criminal background checks. This varies significantly by country:
- South Africa: Full criminal record check via the SAPS Criminal Record Centre
- Nigeria: Police clearance certificate verification
- Kenya: Certificate of Good Conduct verification via the DCI
- Other markets: Declaration-based with referee verification as the legal and data landscape evolves
Professional Credential Verification
For regulated trades (electrical, plumbing, gas fitting), we verify professional credentials:
interface CredentialVerification {
tradespersonId: string;
credentials: {
type: "license" | "certification" | "apprenticeship" | "degree";
issuingBody: string;
credentialNumber: string;
tradeCategory: TradeCategory;
verificationStatus: "verified" | "pending" | "expired" | "invalid";
verificationMethod: "api" | "manual" | "issuer-confirmed";
validUntil: Date;
autoRenewalReminder: boolean;
}[];
insuranceStatus: {
hasLiabilityInsurance: boolean;
provider?: string;
policyNumber?: string;
coverageAmount?: number;
validUntil?: Date;
};
}We maintain partnerships with trade licensing bodies across our operating countries to verify credentials directly. For unregulated trades (painting, tiling, general handyman), we rely on our skill assessment process.
Skill Assessment: Verifying What They Can Do
A valid license does not guarantee quality work. Our skill assessment process goes beyond credentials to evaluate actual capability.
Practical Assessment
For each trade category, we have developed practical assessment modules:
- Knowledge quiz: 30 multiple-choice questions covering trade theory, safety protocols, building codes, and common problem-solving scenarios. Questions are calibrated using Item Response Theory to accurately estimate skill level with minimal questions.
- Photo portfolio review: Tradespeople submit photos of past work, which are evaluated by our quality assessors (experienced tradespeople themselves) against a standardized rubric.
- Video assessment: For complex trades, candidates record themselves performing specific tasks (e.g., an electrician wiring a distribution board) and narrate their process. These videos are reviewed by senior assessors.
- On-site evaluation (for premium tiers): Our field assessors accompany the tradesperson on an actual job and evaluate their work in person.
Skill Scoring Model
Assessment results feed into a composite skill score:
class SkillScorer:
def __init__(self):
self.weights = {
"knowledge_quiz": 0.20,
"portfolio_quality": 0.25,
"video_assessment": 0.20,
"onsite_evaluation": 0.15,
"customer_ratings": 0.15,
"experience_years": 0.05,
}
def compute_score(self, tradesperson: Tradesperson) -> SkillProfile:
raw_scores = {}
for component, weight in self.weights.items():
raw = self.get_component_score(tradesperson, component)
if raw is not None:
raw_scores[component] = raw * weight
# Normalize to available components
total_weight = sum(
self.weights[k] for k in raw_scores
)
composite = sum(raw_scores.values()) / total_weight
return SkillProfile(
tradespersonId=tradesperson.id,
compositeScore=composite,
tier=self.classify_tier(composite), # Bronze, Silver, Gold, Platinum
componentScores=raw_scores,
specializations=self.detect_specializations(tradesperson),
lastAssessed=datetime.now(),
reassessmentDue=datetime.now() + timedelta(days=365),
)
def classify_tier(self, score: float) -> str:
if score >= 0.90: return "Platinum"
if score >= 0.75: return "Gold"
if score >= 0.60: return "Silver"
return "Bronze"Tier assignments affect which jobs a tradesperson can be matched to. Premium jobs with higher budgets are routed to Gold and Platinum providers, while simpler tasks are available to all tiers.
Job Matching Algorithm
When a customer posts a job, our matching algorithm identifies the best available tradespeople. This is a multi-objective optimization problem.
Matching Factors
The algorithm considers:
- Trade fit: Does the tradesperson's verified skill set cover the job requirements? A "leaking pipe" job needs a plumber, but an "install new bathroom" job might need both a plumber and a tiler.
- Proximity: Travel time from the tradesperson's current or home location to the job site, calculated using real-time traffic data.
- Availability: Real-time calendar availability, accounting for current job duration estimates and buffer time.
- Skill-to-job complexity match: Simple jobs do not need Platinum tradespeople (and customers should not pay premium rates for straightforward work). Complex jobs should not go to Bronze providers.
- Price alignment: The tradesperson's typical pricing for similar jobs versus the customer's stated budget.
- Customer preference: Returning customers may prefer a tradesperson they have used before.
The Matching Pipeline
interface MatchResult {
tradespersonId: string;
matchScore: number; // 0-100 composite
estimatedArrivalTime: number; // minutes
estimatedPrice: {
min: number;
max: number;
currency: string;
};
matchReasons: {
factor: string;
score: number;
explanation: string;
}[];
availableSlots: TimeSlot[];
}The customer receives the top 3-5 matched tradespeople with transparent information about each: tier, rating, number of completed jobs, estimated price range, and earliest availability. The customer chooses; we do not auto-assign.
Review and Reputation System
Post-job reviews are the feedback loop that keeps the entire system honest.
Structured Reviews
Our review system goes beyond a simple star rating:
- Overall rating: 1-5 stars
- Category ratings: Quality of work, professionalism, punctuality, cleanliness, communication
- Price fairness: Whether the final price matched the estimate
- Photo evidence: Customers are encouraged to photograph the completed work
- Would-hire-again indicator: A binary yes/no that we find more predictive of true satisfaction than star ratings
Fraud Detection in Reviews
Fake reviews undermine marketplace trust. We deploy several countermeasures:
- Verified job requirement: Reviews can only be submitted for jobs booked and completed through the platform.
- Timing analysis: Reviews submitted suspiciously quickly after job completion or in coordinated bursts are flagged.
- Linguistic analysis: Our NLP model detects templated or AI-generated reviews with high accuracy.
- Network analysis: We build a social graph of reviewers and flag accounts with suspicious connection patterns (e.g., multiple "customers" who only ever review the same tradesperson).
Reputation Consequences
Reputation directly impacts a tradesperson's business on the platform:
- Match priority: Higher-rated tradespeople appear first in match results.
- Tier reassessment: Consistently low ratings trigger reassessment and potential tier demotion.
- Platform suspension: Serious or repeated quality issues result in temporary or permanent suspension, with an appeals process.
- Incentive bonuses: Top-rated tradespeople in each city receive monthly bonuses and featured placement.
Dispute Resolution
When things go wrong -- and in home services, they sometimes do -- we provide structured resolution:
- Mediation: Our customer success team mediates disputes between customers and tradespeople, reviewing photos, messages, and job details.
- Workmanship guarantee: Jobs booked through the platform carry a 30-day workmanship guarantee. If the work fails within 30 days, we coordinate a free return visit or, if the tradesperson is unresponsive, assign another provider at our cost.
- Insurance claims: For damage caused during a job, our platform insurance provides coverage up to a defined limit, protecting both parties.
Scale and Impact
Tradesmen On-Demand currently operates in 6 cities across Nigeria, South Africa, Kenya, and Ghana, with over 12,000 verified tradespeople and 85,000 completed jobs. Our repeat booking rate of 64% tells us that once customers experience vetted, transparent home services, they do not go back to the informal market.
We are proving that trust in service marketplaces can be engineered through rigorous verification, fair matching, and transparent accountability. The informal economy is not going away, but for the millions of homeowners and businesses who need reliable tradespeople, Tradesmen On-Demand is becoming the default choice.
Try Tradesmen On-Demand today
Discover how Tradesmen On-Demand can help you build better, faster. Get started for free and see the difference.
Get Started


