Skip to content

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.json

Technology Stack

LayerTechnology
Backend APINode.js, Express, TypeScript
DatabasePostgreSQL with Prisma ORM
AI ServicePython, FastAPI, Claude AI
FrontendReact, Vite, TypeScript
AdminReact, TanStack Query
AuthJWT (access + refresh tokens)
PaymentsStripe + Manual credits system
Real-timeSocket.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

One chat. Everything done.