Skip to content

Darshanhub/automate_job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Auto Job Applier πŸš€

Automatically apply to internships with AI! Just add your resume and run one command.

What It Does

  1. Scrapes job boards (Jobright, Intern List) every 5 minutes
  2. Ranks jobs based on your resume (AI scoring)
  3. Shows jobs on beautiful web dashboard with fit scores
  4. Auto-applies using Gemini AI + browser automation
  5. Saves proof - screenshots and action logs for every application

Quick Start (3 Steps!)

Step 1: Add Your Resume

Create my_resume.json in this folder:

{
  "name": "Your Name",
  "contacts": {
    "email": "[email protected]",
    "phone": "+1-234-567-8900",
    "location": "Your City, State"
  },
  "education": [
    {
      "school": "Your University",
      "degree": "BS Computer Science",
      "grad": "2026"
    }
  ],
  "skills": ["Python", "JavaScript", "SQL", "React"],
  "projects": [
    {
      "name": "Cool Project",
      "tech": ["Python", "FastAPI"],
      "bullets": ["Built something awesome", "Improved by 50%"]
    }
  ],
  "constraints": {
    "locations": ["US-remote", "San Francisco"],
    "visa": "US Citizen",
    "preferred_roles": ["Software Engineer Intern"]
  }
}

Step 2: Configure API Keys

Copy .env.example to .env and add your keys:

cp .env.example .env

Edit .env:

  • Add your Gemini API Key (get at aistudio.google.com)
  • Add your Gemini API Key (get from aistudio.google.com)
  • (Optional) Configure storage (GCS or S3) for saving application proofs

Step 3: Start Everything!

./start.sh

That's it! The script will:

  • Build Docker containers
  • Start PostgreSQL + Redis
  • Start API + Workers
  • Load your resume
  • Begin monitoring jobs

Access the Dashboard

Open your browser and go to:

http://localhost:8000

You'll see a beautiful dashboard with:

  • πŸ“Š Real-time statistics
  • 🎯 Job listings with fit scores
  • 🏷️ Matched keywords
  • βœ“/βœ— One-click approve/reject buttons

Also available:

How It Works

  1. Every 5 minutes, the system checks job boards for new postings
  2. AI Ranking: Each job is scored against your resume (0-100%)
  3. Dashboard Review: High-scoring jobs (β‰₯65%) appear on the dashboard
  4. Your Decision: Click βœ“ Yes, Apply or βœ— No, Skip
  5. Auto-Apply: If approved, Gemini AI fills out the application
  6. Proof Saved: Screenshots and logs saved to artifacts/{job_id}/

Usage

View Logs

docker compose logs -f

Stop Services

docker compose stop

Restart

docker compose restart

Full Reset

docker compose down -v
./start.sh

How It Works

Job Sources β†’ Scraper β†’ Database β†’ AI Ranking β†’ Slack Notification
                                                        ↓
                                                    You Click Yes
                                                        ↓
                                          Gemini AI + Playwright Apply
                                                        ↓
                                              Save Proof + Logs

Features

βœ… Auto-polling - Checks for new jobs every 5 minutes
βœ… AI scoring - Ranks jobs 0-100% fit with your resume
βœ… Web dashboard - Beautiful UI to review and approve jobs
βœ… Auto-yes mode - Skip prompts for high-fit jobs (β‰₯85%)
βœ… Smart form filling - Gemini AI fills out applications
βœ… Full audit trail - Screenshots + action logs
βœ… Safety limits - Daily caps, allowlist, CAPTCHA detection
βœ… Cloud storage - Saves proof to GCS/S3

Configuration

Enable Auto-Apply

Skip the manual review for high-scoring jobs:

curl -X POST http://localhost:8000/settings/auto-yes \
  -H "Content-Type: application/json" \
  -d '{"auto_yes_enabled": true, "auto_yes_threshold": 0.85}'

Adjust Thresholds

Edit .env:

  • FIT_THRESHOLD=0.65 - Minimum score to show on dashboard
  • AUTO_YES_THRESHOLD=0.85 - Auto-apply above this score
  • MAX_SUBMITS_PER_DAY=10 - Daily application limit

Add More Job Sources

Edit app/jobs/ to add new scrapers.

Safety

  • Allowlist only - Only applies to approved ATS domains
  • Daily limits - Max 10 applications per day (configurable)
  • CAPTCHA detection - Stops if CAPTCHA found (no bypass)
  • Kill switch - Set KILL_SWITCH=true to stop all applications
  • Truth only - Never fabricates resume data

Troubleshooting

Docker not running?

sudo systemctl start docker

No jobs showing up?

  1. Wait 5 minutes (polling interval)
  2. Check logs: docker compose logs -f worker
  3. Update HTML selectors in app/jobs/jobright_fetcher.py if needed

Dashboard not loading?

  1. Check API is running: curl http://localhost:8000/healthz
  2. View API logs: docker compose logs -f api
  3. Restart: docker compose restart api

Application failed?

  1. Check artifacts/{job-id}/ for screenshots
  2. View logs: docker compose logs -f worker
  3. Try dry-run first: see API docs at /docs

What Gets Created

  • Containers: postgres, redis, api, worker, beat
  • Volumes: Database storage (persists after restart)
  • Artifacts: ./artifacts/ - All application screenshots + logs
  • User Data: ./user_data_dirs/ - Browser profiles per company

Tech Stack

  • Backend: FastAPI + Python 3.11
  • Database: PostgreSQL 15
  • Cache: Redis 7
  • Workers: Celery
  • Browser: Playwright + Chromium
  • AI: Gemini 2.5 Flash
  • Notifications: Slack SDK
  • Storage: GCS or S3

API Endpoints

  • GET /healthz - Health check
  • POST /profile - Update resume
  • POST /settings/auto-yes - Configure auto-apply
  • POST /dry-run/apply - Test without submitting
  • GET /jobs - List jobs
  • GET /applications - View history

See full docs at http://localhost:8000/docs

Files

  • my_resume.json - Your resume (you create this)
  • .env - Your API keys (copy from .env.example)
  • docker compose.yml - Service definitions
  • Dockerfile - Container build
  • start.sh - One-command setup
  • app/ - Python application code

Support

Questions? Check the API docs or view logs:

# API logs
docker compose logs -f api

# Worker logs
docker compose logs -f worker

# All logs
docker compose logs -f

Built with ❀️ for automated job hunting

⚠️ Disclaimer: For personal use only. Respect platform ToS. Only use truthful resume data.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published