Comprehensive job market dataset for Rwanda built by scraping multiple online platforms including Mifotra's civil service portal. Includes historical data from 2017 archived via Wayback Machine.
# π·πΌ Rwanda Jobs Scraper
Automated job scraping system for Rwanda with multi-page dashboard.
## π Features
- **10 Job Sources**: JobInRwanda, NewTimes, GreatRwandaJobs, Mucuruzi, MIFOTRA
- **Automated Scraping**: Runs daily at 6 AM EAT via GitHub Actions
- **Auto-Deduplication**: Removes duplicate jobs automatically
- **Beautiful Dashboard**: Multi-page Plotly Dash interface
- **Database**: Supabase PostgreSQL
## π Live Dashboard
π **Dashboard URL**: [
rwanda-jobs-scraper.onrendeβ¦]
## π¦ Project Structure
```
rwanda_jobs/
βββ scrapers/
β βββ jobinrwanda_scraper.py
β βββ newtimesjobs_scraper.py
β βββ greatrwandajobs_scraper.py
β βββ mucuruzi_scraper.py
β βββ mifotra_scraper.py
βββ db_adapter.py
βββ run_all_5_scrapers.py # Master scraper with auto-dedup
βββ multi_page_dashboard.py # Dashboard
βββ requirements.txt # Dependencies
βββ .github/workflows/
βββ scrape_jobs.yml # Automated scheduling
```
## βοΈ Setup
### 1. Clone Repository
```bash
git clone
github.com
cd rwanda-jobs-scraper
```
### 2. Install Dependencies
```bash
pip install -r requirements.txt
```
### 3. Set Database URL
```bash
# Windows
set DATABASE_URL=your_postgresql_url
# Linux/Mac
export DATABASE_URL=your_postgresql_url
```
### 4. Run Scrapers
```bash
python run_all_5_scrapers.py
```
### 5. Run Dashboard
```bash
python multi_page_dashboard.py
# Open
localhost
```
## π€ Automated Scraping
GitHub Actions runs the scrapers **daily at 6:00 AM EAT** automatically.
To enable:
1. Add `DATABASE_URL` secret in GitHub Settings β Secrets
2. Push code to GitHub
3. GitHub Actions will run automatically
## π Database Schema
**Table**: `jobs`
Key columns:
- `title`, `company`, `source`, `sector`
- `district`, `employment_type`, `job_level`
- `experience_years`, `education_level`
- `description`, `posted_date`, `deadline`
- `source_url`, `scraped_at`, `is_active`
## π¨ Dashboard P β¦