Home Projects Mery Platform
م
نظام ميري  — MERY AGENCY · SAUDI ARABIA
Multi-Vendor · App · Nafath

Mery Multi-Vendor Recruitment Platform

A complete SaaS recruitment ecosystem connecting 500+ licensed recruitment offices with individuals across Saudi Arabia — CV library, request management, real-time tracking, and Nafath (نفاذ) identity verification. Delivered as a Laravel multi-vendor backend + Flutter iOS & Android app.

🇸🇦 Saudi Arabia ✓ Live — mery.agency 🏢 500+ Offices 📄 10K+ CVs ⭐ 99% Satisfaction 🛡️ Nafath SSO
Mery Recruitment Platform
🏢
Multi-Vendor Portal500+ Offices · Laravel
📱
iOS & Android AppFlutter · Users & Offices
📄
CV Library10K+ Profiles · Arabic-first
🛡️
Nafath SSOSaudi Digital Identity
🔔
Real-time TrackingPush · SMS · In-app

Project Overview

Mery (ميري) is a Saudi multi-vendor SaaS platform bridging licensed domestic recruitment offices with individuals seeking household or administrative workers. Each office gets its own fully isolated management environment within a shared infrastructure — a true multi-tenant system at scale.

Delivered as two products: (1) Laravel multi-vendor backend for offices — requests, CVs, stages, documents, finance, team; and (2) Flutter mobile app for individuals and office staff. Both authenticate via Nafath (Saudi national identity) — real-identity verified, zero friction.

🛡️

Nafath (نفاذ) Integration — Saudi National Digital Identity

Users and office staff authenticate via Nafath — Saudi Arabia's government digital identity platform. No username/password, no fake accounts — every person on Mery is verified through their Saudi national ID via the Nafath SSO API.

Who Is It For?

👤

For Individuals (Customers)

  • Submit recruitment requests electronically
  • Browse CV library — filter by nationality, skills, experience
  • Track request status step-by-step in real time
  • Receive instant push notifications at every stage
  • Authenticate securely via Nafath — no passwords
🏢

For Recruitment Offices

  • Manage all requests and documents in one workspace
  • Add and manage CV library — worker profiles with photos
  • Track each request through all processing stages
  • Team management with role-based permissions per staff
  • Detailed performance reports and client analytics

System Components

🏢
Multi-Vendor Office Portal
Laravel · Multi-tenant · Arabic RTL
LaravelPHP MySQLMulti-tenant

Each of 500+ offices gets its own isolated workspace — request pipeline, CV library, client database, finance, team roles, dashboards. Offices fully isolated with row-level data scoping.

📱
Flutter Mobile App — iOS & Android
Flutter · Dart · Firebase Push
FlutterDart FirebaseREST API

Single Flutter codebase — two distinct app experiences: individuals (browse CVs, requests, tracking) and office staff (process, update stages, notify on the go). App Store + Google Play.

📄
CV Library — Worker Profiles
10K+ Profiles · Searchable · Arabic-first
Arabic RTLSearch FiltersPhotos

Offices upload worker CV profiles — nationality, skills, experience, photo, availability. Individuals search and filter by nationality, job type, experience — attach preferred CVs to their request.

🛡️
Nafath SSO — Saudi National Identity
Nafath API · NIC Verification · Zero-password
Nafath APISSO NICJWT

Auth via Nafath — users verify their national ID card via QR code or Nafath app notification, returning a secure JWT. No username, no password, no unverified accounts — every user is a verified Saudi resident.

Request Lifecycle — 5 Steps

1
Individual Authenticates via Nafath & Browses CVs User logs in via Nafath national ID verification, browses the CV library with filters (nationality, job type, office), and shortlists preferred worker profiles.
2
Submit Recruitment Request to Office Formal request submitted to chosen office — attaches preferred CVs, specifies requirements, uploads documents. Request enters the office queue instantly.
3
Office Reviews, Assigns, and Processes Office reviews request, verifies documents, confirms CV availability, assigns to staff, moves through processing stages — each stage change triggers instant push notification to the individual.
4
Individual Tracks Status in Real Time Individual sees live visual timeline in the app — current stage, pending documents, office messages. SMS fallback ensures notifications reach all users.
5
Service Completion, Report & Rating Office marks fulfilled — individual receives a final summary report. Individual rates the office's service, contributing to the platform's visible performance score for future clients.

Mobile App — Store Links

The Mery Flutter app is live on both stores — single codebase, fully Arabic-first RTL for individual users and office staff.

Key Features

Multi-Vendor Architecture — 500+ Isolated Offices Each office is a fully isolated tenant — own data, users, CV library, config — sharing the Laravel backend with row-level isolation. Zero data leakage between offices.
Nafath SSO — Saudi Government Identity Every user is a verified Saudi resident via national ID. Eliminates fake accounts, reduces fraud, meets Saudi government digital compliance requirements.
CV Library — Browse, Filter, Attach 10K+ worker profiles searchable by nationality, job title, skills, experience. Individuals browse and attach preferred CVs before submitting — offices manage CV inventory in real time.
Flutter — Single Codebase, iOS & Android One Flutter build for iOS + Android — two distinct UX modes (individual / office staff). Full Arabic RTL, push notifications, camera for document scanning.
Real-time Tracking — Push, SMS & In-app Every stage change triggers push (Firebase), SMS fallback, and in-app notification history. Offices can send direct messages to clients within the platform.
Office Team Management & RBAC Each office adds staff with defined roles — admin, case manager, finance, viewer. RBAC ensures staff only see data relevant to their role, preventing internal data misuse.
Reports & Performance Analytics Offices get operational reports — volumes, processing times, stage bottlenecks, staff performance, satisfaction scores. Platform aggregates ratings creating public performance ranking for potential clients.
Arabic-First — Full RTL System Web portal + Flutter app both Arabic-first RTL — layouts, forms, notifications, reports all RTL by default. English available for non-Arabic office staff without layout degradation.

Project Highlights

500+Recruitment Offices
10K+CV Profiles
99%Satisfaction Rate
NafathSaudi Gov. SSO
FlutteriOS + Android
24/7Support Available

Technical Challenges

Multi-tenant isolation for 500+ offices at scale without dedicated databases

Strong data isolation between competing offices sharing one database — achieved via row-level security with global query scopes in Laravel. Every query auto-scoped by tenant ID, preventing cross-tenant exposure even under application-level bugs. New office onboarding generates isolated config with zero downtime.

Nafath SSO integration — handling async national ID verification flow

Nafath auth is async — user initiates on Mery, approves on separate Nafath gov app, Nafath callbacks Mery with verification token. Implemented via Flutter deep linking: app listens for Nafath callback URL, processes returned token, resumes session — all within 60-second timeout with graceful handling for expired/rejected verifications.

Flutter single codebase — two distinct UX modes sharing one app binary

App serves two very different user types from one binary — detected from the Nafath JWT, conditionally rendering completely different navigation trees and feature sets. Shared only common components: notifications, auth, API clients. Single codebase cuts maintenance cost by 50%.