Case Study · Automation · Backend
JOB AGGREGATION
SYSTEM
Python + Playwright scraper feeding a Flask REST API backed by PostgreSQL. Aggregates job listings across multiple boards, deduplicates, and tracks application status. Automated form-filling in progress.
Architecture
WHAT'S BUILT
Playwright + Python
Headless Chromium via Playwright scrapes job listings from multiple boards. Handles JavaScript-rendered pages that block simple HTTP scrapers. Randomised request timing and user-agent rotation to avoid rate limiting.
Flask REST API
Flask serves scraped job data over a REST API. Endpoints for listing jobs, filtering by keyword/location, and marking applications. SQLAlchemy ORM manages PostgreSQL reads/writes.
PostgreSQL
Jobs table stores listings with deduplication on (title, company, date_posted). Applications table tracks status per job (saved, applied, rejected, offer). Schema managed via Alembic migrations.
Roadmap
WHERE IT'S GOING
First case study
RCAF Facial Recognition →