Skip to content

devopsgeek1979/devops-job-automation-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ DevOps Job Automation Platform

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

πŸ“Œ Table of Contents


🧱 Architecture

Frontend (Next.js)
        ↓
FastAPI Backend
        ↓
Job Scraper (BeautifulSoup / Playwright)
        ↓
PostgreSQL (future)
        ↓
Redis + Celery (async tasks)

πŸ› οΈ Tech Stack

Backend

  • FastAPI
  • Python 3.10
  • Celery + Redis

Automation

  • BeautifulSoup (current)
  • Playwright (recommended upgrade)

Frontend

  • Next.js (basic starter)

DevOps

  • Docker & Docker Compose
  • GitHub Actions (CI/CD)

πŸ“ Project Structure

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

βš™οΈ Prerequisites

Make sure you have:

Optional:

  • Node.js (for frontend development)
  • Python 3.10+

πŸš€ Local Setup (Without Docker)

1. Clone Repo

git clone https://github.com/yourname/devops-job-automation-platform.git
cd devops-job-automation-platform

2. Backend Setup

cd backend
pip install fastapi uvicorn requests beautifulsoup4 celery redis

Run backend:

uvicorn app.main:app --reload

3. Frontend Setup

cd frontend
npm install
npm run dev

🐳 Run with Docker (Recommended)

Start All Services

docker-compose up --build

Services

Service URL
Backend http://localhost:8000
Frontend http://localhost:3000

πŸ”Œ API Usage

Get Jobs

GET /jobs

Example:

curl http://localhost:8000/jobs

Response:

[
  {
    "title": "DevOps Engineer",
    "company": "XYZ Corp"
  }
]

⚠️ Troubleshooting

Issue: Port already in use

lsof -i :8000
kill -9 <PID>

Issue: Docker build fails

docker system prune -a

Issue: Playwright not installed

playwright install

πŸ”„ CI/CD Pipeline (GitHub Actions)

πŸ“ Create Workflow File

Create:

.github/workflows/ci.yml

🧾 Add This Configuration

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 build

πŸš€ Optional: Push Docker Image (Advanced)

Add Docker Hub secrets in GitHub:

  • DOCKER_USERNAME
  • DOCKER_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

πŸ” Security Notes

  • Do NOT commit API keys
  • Use .env file
  • Add .gitignore

πŸ“ˆ Future Enhancements

  • PostgreSQL integration
  • Resume AI engine (OpenAI)
  • Playwright-based auto apply
  • LinkedIn session handling
  • Kubernetes (Rancher deployment)
  • Grafana monitoring

🀝 Contribution

Feel free to fork and improve.


⭐ Support

If this helps you, give it a ⭐ on GitHub.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors