# Skills Observatory (Africa Workforce Insights)
Production-style dashboard tracking labor market demand across all 54 African countries, using 100% real job posting data — no synthetic or demo records.
## Features
- Full dashboard with 8 working pages (Overview, Jobs, Skills, Salary, Emerging Tech, Gaps, Reports, Alerts)
- **All 54 African countries** covered in filters, detection, and the choropleth map
- **Real data only** — every job record comes from a live API or job board
- **14 data ingestion sources**: Freehire, Remotive, Arbeitnow, RemoteOK, Fuzu, BrighterMonday, Jobberman, UNDP, UN Careers, UN Women, plus optional Adzuna, Jooble, ReliefWeb, and Apify (Careers24 + others)
- **ESCO-aligned skill taxonomy** — extracted skills are categorized against a two-tier ESCO-based taxonomy, used across the Gaps and Skills pages
- **Nigeria curriculum-gap analysis** — benchmarks employer skill demand against the NUC CCMAS 2022 computing curriculum
- **Auto-sync every 6 hours** via Vercel cron (`/api/cron/sync`)
- **PDF + CSV annual reports**
- **Africa choropleth map** with country-level job intensity
- **Sync history** tracking in database
- **PostgreSQL-ready** for production (SQLite for local dev)
## Quick Start
```bash
npm install
npx prisma migrate dev
npm run db:seed # pulls live jobs from all sources
npm run dev
```
Open
localhost and click **Sync Data** to refresh.
## Data Sources
| Source | Key required | Coverage |
|--------|--------------|----------|
| Freehire | No | Africa-wide (regions=africa filter) |
| Remotive | No | Remote jobs mentioning African locations |
| Arbeitnow | No | Remote jobs mentioning African locations |
| RemoteOK | No | Remote jobs mentioning African locations |
| Fuzu | No (scraped JSON-LD) | Kenya, East Africa |
| BrighterMonday | No (scraped JSON-LD) | Kenya, Ghana |
| Jobberman | No (scraped JSON-LD) | Nigeria |
| UNDP | No (official careers endpoint) | UNDP vacancies across African duty stations |
| UN Caree …