Saathi Mandram is a lightweight full-stack job onboarding platform for blue-collar workers and recruiters. It allows job seekers to register with basic details and apply for jobs, while recruiters can post job listings, manage applications, and view applicants — all on a responsive web app with OTP-based authentication. PRESENTATION OF OUR IDEA
In many parts of India, migrant workers from rural villages fall prey to exploitative middlemen, known as dalals. These agents often promise lucrative jobs in distant cities like Mumbai or Delhi, but what awaits is a cycle of wage theft, abuse, and forced labor, with no one to turn to for help.
A hostel floor attendant from Assam once shared his experience — he was sent to Bombay for work, only to realize it was a scam. He was one of the lucky few who escaped, but many others never return, falling into a system that dehumanizes and exploits them. Their voices are silenced before they’re ever heard.
Saathi Mandram is built for them — the invisible workforce, the overlooked backbone of our economy. Those who aren't looked at twice. We aim to restore dignity, safety, and opportunity through a verified, transparent job onboarding platform that protects against fraud and connects workers directly with employers — no middlemen, no traps.
Everyone deserves a chance to work with security and respect. Saathi Mandram ensures that those who build our cities aren’t left behind in the process.
- Next.js API Routes – Built-in serverless functions for handling RESTful APIs.
- SQLite (via better-sqlite3) – Lightweight, file-based database used for storing users, jobs, and applications.
- Firebase Authentication – OTP-based login system using Firebase's secure phone authentication.
- Next.js with App Router (
/app) - React Hooks & Server Components
- Tailwind CSS – Utility-first CSS framework for styling.
- Fetches a user by phone number.
- Query Param:
phone(required)
-
Adds or updates a user (job seeker or recruiter).
-
Body:
{ "phone": "string", "name": "string", "age": number, "place": "string", "field_of_work": "string", "remarks": "string", "picture_link": "string", "years_of_experience": number, "is_recruiter": 0 or 1, "position": "string", "company_name": "string" }
- Fetches all jobs posted by a specific recruiter.
- Returns applicant count and user details for each job.
-
Creates a new job post.
-
Body:
{ "recruiter_phone": "string", "area_of_work": "string", "pay": "string", "job_description": "string", "job_type": "string", "benefits": "string", "location": "string" } -
Only users with
is_recruiter: 1can post jobs.
-
Records a job application.
-
Body:
{ "user_phone": "string", "job_id": number }
- ✅ Job Seeker Registration: Capture name, age, place, field, remarks, and experience.
- ✅ Recruiter Portal: Add company name, position, and post jobs.
- ✅ Job Posting & Management: Recruiters can view and manage their listings and see applicant details.
- ✅ Firebase OTP Login: Secure, phone number–based login system.
- ✅ Fallback UI: Graceful fallback to dummy data if the server is unreachable.
- ✅ Applicant Count: Shown live per job post.
/app/api/users/route.js– User management API./app/api/jobs/route.js– Job posting and retrieval API (with applicants)./app/api/apply/route.js– Endpoint for job applications./app/recruiter/jobs/page.jsx– Full recruiter dashboard with job list, applicant info, and job creation form.
- Recruiter dashboard with job management
- Job listing cards with applicant count
- OTP-based login screen (powered by Firebase)
- 🔐 JWT-based session authentication
- ☁️ Firebase Storage or S3 for image uploads
- 📱 PWA support for mobile users
- 🔎 Search and filter for job listings
- 🎤 TTS based user onboarding for the illiterate