An end-to-end AI-powered job automation system built using FastAPI, Playwright, Docker, and modern DevOps practices.
This platform helps you:
- Discover jobs automatically
- Filter relevant roles
- (Extendable) Generate tailored resumes
- Apply with semi-automation
- Showcase DevOps + Automation skills
- Architecture
- Tech Stack
- Project Structure
- Prerequisites
- Local Setup
- Run with Docker
- API Usage
- Troubleshooting
- CI/CD Pipeline (GitHub Actions)
- Future Enhancements
Frontend (Next.js)
β
FastAPI Backend
β
Job Scraper (BeautifulSoup / Playwright)
β
PostgreSQL (future)
β
Redis + Celery (async tasks)
- FastAPI
- Python 3.10
- Celery + Redis
- BeautifulSoup (current)
- Playwright (recommended upgrade)
- Next.js (basic starter)
- Docker & Docker Compose
- GitHub Actions (CI/CD)
devops-job-automation-platform/
β
βββ backend/
β βββ app/
β β βββ main.py
β β βββ services/
β β β βββ scraper.py
β β βββ workers/
β β βββ celery_worker.py
β βββ Dockerfile
β
βββ frontend/
β βββ index.js
β βββ Dockerfile
β
βββ docker-compose.yml
βββ README.md
Make sure you have:
- Docker installed β https://docs.docker.com/get-docker/
- Docker Compose installed
- Git installed
Optional:
- Node.js (for frontend development)
- Python 3.10+
git clone https://github.com/yourname/devops-job-automation-platform.git
cd devops-job-automation-platformcd backend
pip install fastapi uvicorn requests beautifulsoup4 celery redisRun backend:
uvicorn app.main:app --reloadcd frontend
npm install
npm run devdocker-compose up --build| Service | URL |
|---|---|
| Backend | http://localhost:8000 |
| Frontend | http://localhost:3000 |
GET /jobsExample:
curl http://localhost:8000/jobsResponse:
[
{
"title": "DevOps Engineer",
"company": "XYZ Corp"
}
]lsof -i :8000
kill -9 <PID>docker system prune -aplaywright installCreate:
.github/workflows/ci.yml
name: CI/CD Pipeline
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: jobuser
POSTGRES_PASSWORD: jobpass
POSTGRES_DB: jobdb
ports:
- 5432:5432
redis:
image: redis:7
ports:
- 6379:6379
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
cd backend
pip install fastapi uvicorn requests beautifulsoup4 celery redis
- name: Run basic test
run: |
cd backend
python -c "import app.main"
- name: Build Docker images
run: docker-compose buildAdd Docker Hub secrets in GitHub:
DOCKER_USERNAMEDOCKER_PASSWORD
Then extend workflow:
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Build & Push
run: |
docker build -t ${{ secrets.DOCKER_USERNAME }}/job-agent ./backend
docker push ${{ secrets.DOCKER_USERNAME }}/job-agent- Do NOT commit API keys
- Use
.envfile - Add
.gitignore
- PostgreSQL integration
- Resume AI engine (OpenAI)
- Playwright-based auto apply
- LinkedIn session handling
- Kubernetes (Rancher deployment)
- Grafana monitoring
Feel free to fork and improve.
If this helps you, give it a β on GitHub.