AI-powered, WhatsApp-accessible job matching platform for Namibian job seekers
# GradLink Namibia
AI-powered, WhatsApp-accessible job matching for Namibian job seekers.
This repo is a working MVP scaffold of the project described in the brief: candidates build a
profile over WhatsApp or the web, jobs get posted by employers, and a semantic matching engine
ranks candidates against roles — with a skills-gap indicator that suggests what to add to a
profile to unlock more matches.
## What's implemented
- **`backend/`** — Node.js + Express REST API
- `POST /api/candidates`, `GET /api/candidates` — profile CRUD
- `POST /api/employers`, `GET /api/employers`
- `POST /api/jobs`, `GET /api/jobs`, `GET /api/jobs/:id/candidates` — ranked candidates per job
- `POST /api/matching/run` — (re)computes similarity scores for a candidate or job
- `GET /api/matching/candidate/:id` — ranked jobs for a candidate
- `GET /api/matching/candidate/:id/skills-gap` — actionable skill suggestions
- `POST /api/whatsapp/webhook` — Twilio WhatsApp conversational flow (profile building + "jobs" lookup)
- `db/schema.sql` — PostgreSQL schema (candidates, employers, jobs, matches, conversations)
- **`frontend/`** — React (Vite) dashboard with two views: Job Seeker and Employer, both wired to the live API
- Semantic matching runs **offline by default** using a TF-IDF + synonym-expansion vectorizer
(`backend/services/embeddings.js`), so the whole thing works without any paid API key. Swapping
in a real embedding model later (e.g. an open-source sentence-transformer service) only requires
changing `embedText()` — everything downstream (cosine similarity, storage, matching routes) is
already vector-agnostic.
## What's stubbed / needs your accounts
- **WhatsApp Business API**: the webhook logic is complete, but you need a Twilio account (or
another WhatsApp Business API provider) and a public URL (e.g. via ngrok while developing) to
actually receive messages. Fill in `TWILIO_*` values in `.env`.
- **Voice-note profile building**: mentioned in the brief as future scope — the webh …