Freelance Engineer — built for WhatsApp
RESO Khdma
A WhatsApp AI agent matching Moroccan workers to jobs — in Darija.
Arabic · Darija · FrenchLanguages understood
R
RESO Khdma — agent
online · replies in Darija
The problem
كنقلب على خدمة ديال النجارة… ماكاينش فشي موقع، غير الواتساب 🙏“I'm looking for carpentry work… I'm not on any job site, just WhatsApp.”
Morocco's craft and service workers aren't on job boards — they're on WhatsApp. Recruiters had no way to search them, and workers had no way to be found.
The approach — the agent replies
step 1Built a conversational AI agent living entirely inside WhatsApp, where the workers already are — no app install, no sign-up form.14:02 ✓✓
step 2Gemini embeddings power semantic matching between what a worker says they do and what a recruiter is looking for — across Arabic, Darija, and French.14:02 ✓✓
step 3Tool calling via JSON-schema contracts keeps the agent's actions (registering, searching, matching) structured and reliable.14:02 ✓✓
step 4A recruiter dashboard turns matches into a searchable, paid product.14:02 ✓✓
Delivered ✓✓
Delivered a working platform: WhatsApp agent, matching engine, and recruiter dashboard.14:02 ✓✓
Handles the messy reality of Darija — the dialect real workers actually type in.14:02 ✓✓
لقينا ليك 3 فرص قريبة منك ✨“We found you 3 opportunities near you ✨” — the reply that matters.
How a message flows
01
WhatsApp intake
Workers register by chatting — the agent extracts skills, city, and availability.
02
Embedding & indexing
Profiles are embedded with Gemini and indexed for semantic search.
03
Matching
Recruiter queries are matched semantically, not by keyword.
04
Dashboard
Recruiters browse, search, and contact candidates from a web dashboard.
The recruiter side — where matches become hires


- Next.js
- Gemini embeddings
- Semantic search
- WhatsApp Business API
- PostgreSQL
- Prisma
- TanStack
