Logo Lanfrica

gabrielntwari/rwanda-jobs-scraper

Domain:

socioeconomic

Record type:

dataset
Creator:
gab
Host:
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 …