Skip to content
Live2024-presentFounder / engineer

Handi

A guided home-services marketplace with search, provider matching, in-app messaging, and payments

Livebooking, messaging, and payments across both sides

The customer site, showing the app home screen and its service categories
A walk through the professional app, from setting working hours to bidding on a job
What the app promises customers, from verified professionals to secured payment

The problem

Home-services marketplaces push people through forms, filters and checkout flows. Both sides would rather just message. Turning a free conversation into reliable booking, search and payment is the hard part. The software has to know who is talking, remember where they left off, and handle things going wrong, not just paste a chatbot on top.

What I built

Handi is an app-based marketplace where customers find plumbers, electricians and other professionals by talking. Professionals manage bookings, availability, pricing and their profile the same way. Registration, semantic search, scheduling and payment all happen in the conversation, across Hebrew, English, Arabic, Spanish and French.

How every message is handled

Every message follows the same path before anyone gets a reply:

  1. Check it: run security checks, handle blocked users, and save the message
  2. Work out who is talking: customer, professional, or someone new
  3. Check the account: stop paused, blocked, or archived professionals
  4. Do the work: use the right flow for a customer or professional
  5. Reply safely: check the answer, send it, and record what happened

The system rebuilds the right context from the conversation history, then lets Gemini choose from only the actions that person can use.

Keeping actions separate

Search, booking, messaging and profile updates are separate actions. One cannot quietly trigger another, and each one checks that the caller is allowed to reach only their own bookings, profile and conversations.

Each action has its own usage limits and audit trail, so risky behaviour can be traced and blocked without shutting down the whole conversation.

Search and matching

Matching starts with hard filters such as rating, price, experience and service area. It then finds professionals whose profile and availability fit what the customer described in the conversation, before presenting the best options as a message instead of a results grid.

Security by design

When people can type anything instead of clicking through forms, there are more ways to misuse the system. So the app checks suspicious input, keeps each phone number's data separate, scans replies for leaked personal details, and temporarily blocks high-risk behaviour. Permission checks are never skipped for convenience.

Deployment

The app runs on Google Cloud Run, with PostgreSQL holding its data and S3 storing uploads. Every AI step is traced and testable, which matters when the whole product is a conversation and every bug report is a transcript.

Building something like this?