// case-study · marketplace

A trades marketplace where language decides who can take the job

Handman connects Swiss homeowners with vetted tradespeople — plumbers, electricians, carpenters, roofers — across the whole country, in German, French, Italian and English. We built the platform end to end.

Client
Handman
Sector
Home services marketplace
Market
Switzerland, nationwide
Scope
Full product, end to end
Handman architecture: a homeowner describes a job in one of four languages, the request is classified by trade and location, matched against a pool of vetted tradespeople filtered by canton, trade and language, and returned as ranked matches that can be booked directly.
Language sits in the matching layer, not the presentation layer — a tradesperson who cannot speak to the customer is not a match.
Languages
4

German, French, Italian, English

Trade categories
11

plumbing through to removals

Coverage
CH

nationwide, Zürich to Lausanne

Steps to booked
3

describe, match, book

The challenge

Finding a tradesperson in Switzerland is an exercise in phone calls and dead ends. You do not know who is competent, who covers your area, who is free this month, or who speaks your language. So people ask a neighbour, or they call five numbers and take whoever answers.

Switzerland makes this specifically harder than most markets. It has four national languages and they are geographic: a customer in Genf writes in French, one in Zürich in German, one in Lugano in Italian. That is not a translation problem you solve with a language switcher in the header — it is a matching problem. A superb electrician who covers the right canton but cannot hold a conversation with the customer is not a usable match.

The second constraint is trust. Home services is a market where the customer is letting a stranger into their house and paying in advance for work they cannot assess. A marketplace that lists anyone is worth nothing here; the vetting is the product.

The approach

Language as a matching dimension

Every tradesperson record carries the languages they actually work in, and every request carries the language it was written in. Language then joins trade and location as a filter on the match, rather than sitting in a presentation layer on top of a language-blind result set.

This shapes the data model from the beginning. Retrofitting it later is close to a rewrite, because it changes what a "match" is — which is why we treated it as a first-class field rather than an internationalisation task to be done at the end.

Describe the job in your own words

Homeowners are not tradespeople. They do not know whether a leak under the sink is a plumbing job or a tiling job, and asking them to choose a category first pushes the classification burden onto exactly the person least able to carry it.

So the intake takes a plain description in any of the four languages and derives the trade, the urgency and the location from it. The customer describes the problem; the system works out who fixes it.

Vetting is a state, not a badge

Verification is modelled as something a professional holds and can lose, rather than a flag set once at signup. Only verified professionals enter the matched pool. That keeps the marketplace's core promise — that anyone you are shown has been checked — enforceable in the matching layer rather than dependent on manual moderation.

A marketplace has to be trustworthy before it can be convenient. Convenience with no vetting is just a phone book, and a phone book is what the customer was already failing with.

Three steps, and no dead ends

The whole flow is describe, get matched, book. Every additional step in a marketplace costs conversion, and home services customers arrive with a problem they want gone — not a workflow they want to learn.

Where it landed

Handman is live at handman.ch, operating across all of Switzerland in four languages, covering eleven trade categories from plumbing, electrical and carpentry through to roofing, masonry, locksmithing and removals.

  • Nationwide coverage, from Zürich and Bern to Genf and Lausanne
  • Four languages handled as a matching constraint, not a UI toggle
  • Eleven trade categories with verified professionals in each
  • Job described in plain language, trade derived rather than chosen
  • Three steps from problem to booked professional

Stack

  • Full-stack
  • Matching engine
  • i18n
  • Geo / canton
  • Verification
  • Booking
  • Postgres

// start here

Building a marketplace?

The hard part is rarely the listings. It is matching, trust, and the constraints specific to your market. Tell us what yours are.

Book a call