YeboJobs
YeboJobs is a comprehensive job marketplace platform for Africa, combining formal job listings with informal service provider matching. It features TikTok-style swiping UX, AI-powered interviews via Okia, and a credit-based monetization system.
Product Overview
YeboJobs serves multiple user types:
- Job Seekers - Browse and apply for formal jobs
- Service Workers - Offer informal services (plumbers, cleaners, etc.)
- Clients - Find and book service workers
- Employers - Post jobs and manage applications
- Hybrid Users - Both job seekers and service workers/clients
Key Features
For Job Seekers
- TikTok-style vertical swiping job feed
- AI-powered CV building via chat
- AI interviews (Okia) with scoring and ranking
- Real-time messaging with employers
- Experience Lab for skill building and certificates
For Service Workers
- GPS-based discovery
- TikTok-style worker profiles with video
- Quote submission on client requests
- Booking management
- YeboScore rating system
For Employers
- Job posting with AI interview integration
- Application management dashboard
- Stripe billing for premium plans
- Real-time messaging with candidates
Repository Structure
~/Documents/omevision/yebojobs/frontend/
├── backend/ # Node.js/Express API
│ ├── prisma/ # Database schema and migrations
│ │ └── schema.prisma # Full Prisma schema
│ ├── src/
│ │ ├── app.ts # Express application setup
│ │ ├── routes/ # API route definitions
│ │ ├── controllers/ # Request handlers
│ │ ├── services/ # Business logic
│ │ ├── middleware/ # Auth, validation, etc.
│ │ ├── config/ # Configuration (Prisma, etc.)
│ │ └── utils/ # Helpers (JWT, responses, etc.)
│ └── package.json
│
├── frontend/ # React SPA (Vite)
│ ├── src/
│ │ ├── App.tsx # Main app with routing
│ │ ├── components/ # UI components
│ │ │ ├── pages/ # Full page components
│ │ │ ├── jobs/ # Job-related components
│ │ │ ├── services/ # Service worker components
│ │ │ ├── messages/ # Chat components
│ │ │ ├── okia/ # AI interview UI
│ │ │ └── auth/ # Login/register modals
│ │ ├── services/ # API client
│ │ ├── context/ # React context providers
│ │ └── types/ # TypeScript definitions
│ └── package.json
│
├── okia-service/ # Python/FastAPI AI Interview Service
│ ├── app/
│ │ ├── main.py # FastAPI app entry
│ │ ├── api/v1/ # REST endpoints
│ │ ├── services/ # AI services (Claude, scoring)
│ │ ├── sockets/ # WebSocket handlers
│ │ └── db/ # SQLAlchemy models
│ └── requirements.txt
│
└── yebojobs-admin/ # Admin Dashboard (React)
├── src/
│ ├── App.tsx # Admin app entry
│ ├── pages/ # Admin pages
│ │ ├── dashboard/ # Metrics overview
│ │ ├── users/ # User management
│ │ ├── employers/ # Employer management
│ │ ├── jobs/ # Job management
│ │ ├── payments/ # Payment requests
│ │ ├── services/ # Workers & bookings
│ │ └── reviews/ # Review moderation
│ ├── router/ # React Router config
│ └── api/ # Admin API client
└── package.jsonTechnology Stack
| Layer | Technology |
|---|---|
| Backend API | Node.js, Express, TypeScript |
| Database | PostgreSQL with Prisma ORM |
| AI Service | Python, FastAPI, Claude AI |
| Frontend | React, Vite, TypeScript |
| Admin | React, TanStack Query |
| Auth | JWT (access + refresh tokens) |
| Payments | Stripe + Manual credits system |
| Real-time | Socket.IO (for chat & interviews) |
Deployment
- Backend: Google Cloud Run (
yebojobs-api-1026777738823.europe-west1.run.app) - Frontend: Cloudflare Pages (
yebojobs.pages.dev) - Okia Service: Google Cloud Run (
okia-service-1026777738823.europe-west1.run.app) - Admin: Cloudflare Pages (
yebojobs-admin.pages.dev) - Database: Neon Serverless PostgreSQL