Logo Lanfrica

jacobs-junias-jay/gradlink-namibia

Domaine:

digital infrastructuresocioeconomic

Type de record:

software
Créateur:
jac
Hôte:
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 …