Skip to content

mehrinshamim/jobflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JobFlow

License: MIT PRs Welcome GSSoC

An AI-powered job discovery and application platform.
Upload your resume once. Get AI-ranked LinkedIn jobs. Apply in one click.

πŸ“– Architecture Β· 🀝 Contributing Β· πŸ› Report Bug Β· ✨ Request Feature


Important

Local-First, Single-User Design β€” JobFlow runs entirely on your local machine. A single default user (user_id=1) is seeded at startup, and all API endpoints use this fixed user ID. There is no authentication, login system, or multi-user support. This is by design β€” the app is a personal productivity tool, not a hosted multi-tenant service.


πŸ“Έ Screenshots

Landing Page Guide Dashboard
Landing Page Guide Dashboard
Hero, features overview Step-by step guide Resume upload + AI-ranked jobs

πŸ“‘ Table of Contents


✨ Features

  • Resume Upload β€” Upload your PDF resume to power personalized job matching
  • LinkedIn Job Scraping β€” Discover live job listings by role and location via Apify
  • AI Fit Scoring β€” Every job scored 1–10 against your resume with plain-English reasoning
  • Application Auto-Filler β€” Chrome Extension auto-fills job application forms using your profile
  • Smart Form Detection β€” Works on Google Forms, Lever, Greenhouse, and most ATS platforms
  • User-Friendly Dashboard β€” Clean, dark-themed interface with animated score cards
  • Step-by-Step Guide β€” Built-in guidebook so users can hit the ground running

πŸ—οΈ Architecture

JobFlow System Architecture

JobFlow has three independently runnable components that work together:

Component Technology Role
frontend/ Next.js + React + Tailwind Dashboard, landing page, guide
backend/ FastAPI + Celery + PostgreSQL REST API, async AI/scraping tasks
extension/ Chrome Extension (MV3) Autofills job application forms

πŸ“– Read the full architecture guide β†’


πŸ”„ How It Works

JobFlow Data Flow

  1. Upload your PDF resume β€” parsed once by AI (Docling)
  2. Search by role and location β€” Apify scrapes live LinkedIn listings
  3. AI scores each job against your resume (Groq Llama 3.1) β€” takes 2–3 min
  4. Review ranked results with fit scores and reasoning
  5. Apply β€” Chrome Extension autofills the form for you (Groq Llama 3.3)

πŸš€ Tech Stack

Layer Technology
Frontend Next.js 16, React 19, Tailwind CSS v4, TypeScript
Backend FastAPI, Python 3.12+, Celery, SQLModel
Database PostgreSQL (via Docker)
Queue Redis + Celery (async tasks)
AI Models Groq API β€” Llama 3.1 (scoring), Llama 3.3 (answer gen)
Scraping Apify (LinkedIn jobs)
PDF Parsing Docling
Extension Chrome Manifest V3

πŸ› οΈ Project Setup

Prerequisites

  • Python 3.12+ and uv
  • Node.js 18+ and npm
  • Docker + Docker Compose
  • Google Chrome

1. Backend

cd backend
cp .env.example .env

Open .env and set your API keys:

GROQ_API_KEY=your_groq_api_key_here
APIFY_API_TOKEN=your_apify_token_here

πŸ“š No Apify account yet? See backend/docs/get-apify-token.md
πŸ“š No Groq account yet? Get a free key at console.groq.com

Start Docker services and apply migrations:

./setup.sh

Start the API server and Celery worker (two terminals required):

# Terminal 1 β€” API server
cd backend
uv run uvicorn app.main:app --reload

# Terminal 2 β€” Celery worker
cd backend
uv run celery -A app.worker.celery_app worker --loglevel=info
# macOS: add --pool=solo if you see forking errors

πŸ“– Full backend details: backend/README.md

2. Frontend

cd frontend
npm install
npm run dev

Visit http://localhost:3000

3. Chrome Extension

  1. Open chrome://extensions/ in Chrome
  2. Enable Developer mode (top right toggle)
  3. Click Load unpacked β†’ select the extension/ folder

πŸ“– Extension contributor guide: extension/README.md


πŸ“‚ Project Structure

JobFlow/
β”œβ”€β”€ docs/                   # Architecture diagrams, data flow, images
β”‚   β”œβ”€β”€ ARCHITECTURE.md     # Full system architecture reference
β”‚   └── images/             # Diagrams and screenshots
β”œβ”€β”€ frontend/               # Next.js web app (dashboard, guide, landing)
β”‚   └── app/
β”‚       β”œβ”€β”€ components/     # Navbar, JobCard, ResumeSection, JobSearch
β”‚       β”œβ”€β”€ dashboard/      # Main user workflow page
β”‚       └── guide/          # Usage tutorial page
β”œβ”€β”€ backend/                # FastAPI API + Celery workers + AI logic
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/            # HTTP route handlers
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic (parsing, scoring, discovery)
β”‚   β”‚   └── worker/         # Async Celery tasks
β”‚   └── docs/               # API reference, engineering journal, guides
└── extension/              # Chrome Extension for application autofilling
    β”œβ”€β”€ content.js          # Form field scraper and filler
    β”œβ”€β”€ background.js       # API relay service worker
    └── popup.html/js       # Extension UI

🀝 Contributing

Contributions are welcome β€” from first-timers to experienced engineers!

1. Browse open issues β†’ pick one labeled "good first issue" or "gssoc"
2. Comment to claim it
3. Fork β†’ branch β†’ code β†’ PR

πŸ“‹ Full Contributing Guide β†’
πŸ” Browse Open Issues β†’
πŸ“ Architecture Reference β†’

For GSSoC Contributors

  1. Find an issue labeled gssoc or good first issue
  2. Comment on the issue before starting β€” don't open a PR on an unclaimed issue
  3. One issue at a time per contributor
  4. PRs should link to their issue: Closes #42

πŸ§‘β€πŸ’» Development Notes

  • API Explorer: When the backend is running, visit http://localhost:8000/docs for interactive Swagger UI
  • Engineering Journal: backend/docs/log.md documents every major decision β€” highly recommended reading for contributors
  • Bruno Collection: backend/bruno/ contains a ready-to-use API collection for testing endpoints

πŸ“ License

This project is MIT licensed.

About

An AI-powered job discovery and application platform.

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages