About KES Aggregator
A personal system for monitoring international development and evaluation tenders
Purpose
This application aggregates tender opportunities from multiple sources, making it easier to discover and track relevant opportunities in international development and evaluation sectors.
Features
- Automated scraping from multiple sources
- Centralized tender listing with advanced filtering
- Dynamic source configuration (no code changes required)
- Automatic deduplication
- Deadline tracking and status management
- Sector and country-based filtering
- Preservation of original data in JSONB format
Technology Stack
Frontend
- • SvelteKit
- • Tailwind CSS
- • Supabase Client
Backend
- • Supabase (PostgreSQL)
- • Node.js
- • Zod Validation
Scrapers
- • Playwright
- • Cheerio
- • Modular Architecture
Automation
- • PM2
- • Cron Jobs
- • Queue Management
How to Use
1. Add Sources
Navigate to the Sources page and add websites you want to scrape. Configure CSS selectors for the generic scraper or create custom scrapers for complex sites.
2. Run Scrapers
Scrapers can be run manually via the scraping button, command line, or scheduled automatically using PM2 or cron. They read active sources from the database and fetch new offers.
3. Browse Offers
View all scraped offers on the main page. Use filters to narrow down by country, sector, deadline, or search terms. Click through to view original tender pages.
Data & Privacy
This is a personal tool. All data is stored in your own Supabase instance. No data is shared with third parties. The scraper respects robots.txt and implements reasonable rate limiting.
Documentation
For setup instructions, scraper development guide, and API documentation, see the README files in the project repository.