Skip to content

Projects

Madadgar

Turns a spoken request for a home service into a matched, booked provider.

Role
Full-stack engineer
Period
2025-11—Present
Status
live

agents in the pipeline

8

Intake, extraction, matching, ranking, booking, and confirmation.

languages parsed

3

English, Roman Urdu, and Urdu, in one intake path.

Problem

Finding a plumber or an AC technician in Karachi is a phone-call problem. You describe what you need, in whatever mix of English and Urdu you speak, and someone on the other end works out who to send. A form with dropdowns throws most of that away in the first field.

Approach

A React Native app on Expo, an Express backend, and an eight-agent pipeline that takes the raw message and walks it through intake, intent extraction, provider matching, ranking, and booking. Auth and storage sit on Firebase.

The intake handles English, Roman Urdu, and Urdu. "Mujhe kal subah G-13 mein AC technician chahiye" comes out the other side as a service type, an area, and a time window.

Hard decision

Provider ranking is a weighted blend of rating, availability, and distance rather than a single sort key. A pure rating sort starves new providers and a pure distance sort ignores whether anyone is actually free.

What I'd change

The whole thing landed as one commit under hackathon pressure, so the history shows none of the reasoning. The ranking weights also need to be validated against real bookings rather than judgment.

Stack

  • TypeScript
  • React Native
  • Expo
  • Node.js
  • Express
  • Firestore