Automated web scraping and data mining system that tracks in-demand technical skills across four Cameroonian job portals.
# π¨π² Cameroon Tech Job Market Miner
> Automated web mining & skill trend analysis for the Cameroonian technology sector
> Academic project β Data Mining & Applications, 2025/2026
---
## What it does
Scrapes tech job listings from **4 Cameroonian job portals** every week, extracts in-demand skills using a bilingual (French/English) NLP pipeline, runs association rule mining and K-Means clustering, then presents everything in a **live public Streamlit dashboard**.
| Portal | URL |
|---|---|
| Emploi.cm |
emploi.cm |
| Talent.cm |
cm.talent.com |
| Expertini.cm |
cm.expertini.com |
| WorkConnect |
workconnectjob.com |
---
## Project phases
| Phase | Weeks | Status | Built |
|-------|-------|--------|-------|
| **1 β Scraping** | 1β2 | β
| 4 scraper classes, SQLite storage, CSV export |
| **2 β Processing** | 3β4 | β
| Cleaning, bilingual taxonomy, NLP skill extraction |
| **3 β Mining & Dashboard** | 5β6 | β
| Apriori rules, K-Means, Streamlit dashboard |
| **4 β Deploy & Document** | 7β8 | β
| Render.com config, GitHub Actions, full docs |
---
## Quick start
```bash
# 1. Set up
git clone
github.com
cd cameroon-job-miner
python -m venv venv && venv\Scripts\activate # Windows
pip install -r requirements.txt
# 2. Scrape (Phase 1)
python run_scrapers.py
# 3. Clean + Mine (Phases 2 & 3)
python run_pipeline.py
# 4. Dashboard
streamlit run app.py
```
---
## Project structure
```
cameroon-job-miner/
βββ scrapers/ Phase 1 β web scraping
β βββ base_scraper.py httpx + BeautifulSoup base class
β βββ emploi_cm.py
β βββ talent_cm.py
β βββ expertini_cm.py
β βββ workconnect.py auto-falls back to Selenium
β
βββ pipeline/ Phases 2 & 3 β processing & mining
β βββ cleaner.py normalise, detect language, extract skills
β βββ miner.py Apriori association rules + K-Means
β
βββ data/
β βββ β¦