About this project

# Job Agent An autonomous job application agent that automates the entire job search lifecycle — from discovery to application tracking. ## What It Does Job Agent connects to major job platforms (LinkedIn, Indeed, Glassdoor, ZipRecruiter, Dice, Wellfound), discovers postings, scores them against a configurable candidate profile using AI, tailors resumes for each application, and automatically submits high-confidence matches. Medium-confidence jobs queue for manual review through a web dashboard. ## Key Features **Multi-Platform Job Discovery** Supports LinkedIn, Indeed, Glassdoor, ZipRecruiter, Dice, and Wellfound with rate-limiting and session management per platform. **AI-Powered Matching** Scores each job 0.0–1.0 against your profile using configurable AI providers: Google Gemini (free), Groq (free), Ollama (local), OpenRouter, and Anthropic Claude. **Resume & Cover Letter Tailoring** Auto-generates ATS-optimized resumes (PDF) and customizable cover letters per application. Supports professional, casual, and formal tones. **External ATS Handling** When job boards redirect to company career sites, the agent detects and fills forms on Greenhouse, Lever, Workday, Ashby, and generic application portals. Also handles screening questions and email-apply flows. **Tiered Autonomy** - Score ≥ 0.80: Auto-apply - Score 0.70–0.79: Queue for manual review - Score < 0.70: Skip Thresholds are configurable via dashboard or YAML profiles. **Web Dashboard** Flask + HTMX + Bootstrap 5 interface at http://127.0.0.1:5000 with pages for overview, jobs, review queue, applications, outreach, analytics, and settings. Configure everything from the UI — no file editing required. **Interactive Bots** Telegram bot (long-polling, no public URL needed) and Discord bot (slash commands) for approving/rejecting jobs, checking queue status, and viewing statistics from your phone. **Anti-Detection Browser** Uses Camoufox stealth browser with human-like typing, mouse movement, random delays, and session rotation to reduce detection risk. **Notifications & Outreach** Email (SMTP), Slack/Discord webhooks, Telegram alerts. AI-generated cold emails and LinkedIn connection requests to recruiters. **Scheduling** APScheduler with configurable activity windows (default 8am–11pm). Run once, on a schedule, or in dry-run mode. ## Quick Start ```bash git clone https://github.com/billmal071/job-agent.git cd job-agent uv sync uv run playwright install chromium uv run job-agent init-db uv run job-agent dashboard ``` Visit http://127.0.0.1:5000/settings to configure AI provider, platform credentials, thresholds, and notifications. ## Profile Generation Upload your existing resume (PDF/DOCX) in the dashboard and AI extracts skills, experience level, and target roles to auto-generate a searchable profile. ## Multiple Profiles Supports separate profiles for different job searches (e.g., fullstack vs. devops), each with its own keywords, locations, salary expectations, and resume template. ## Docker Support ```bash docker compose up dashboard # or docker compose run --rm agent ``` ## Security - Platform credentials Fernet-encrypted (key at ~/.job-agent/fernet.key) - API keys in .env (gitignored) - Database at ~/.job-agent/agent.db (SQLite, outside repo) - Browser state persisted separately ## License MIT