Applied to 1,000 jobs in 2 days. Fully autonomous. Open source.
ClawCV is a 6-stage autonomous job application pipeline. It discovers jobs across 5+ boards, scores them against your resume with AI, tailors your resume per job, writes cover letters, and submits applications for you. It navigates forms, uploads documents, answers screening questions, all hands-free.
Three commands. That's it.
pip install clawcv
pip install --no-deps python-jobspy && pip install pydantic tls-client requests markdownify regex
clawcv init # one-time setup: resume, profile, preferences, API keys
clawcv doctor # verify your setup — shows what's installed and what's missing
clawcv run # discover > enrich > score > tailor > cover letters
clawcv run -w 4 # same but parallel (4 threads for discovery/enrichment)
clawcv apply # autonomous browser-driven submission
clawcv apply -w 3 # parallel apply (3 Chrome instances)
clawcv apply --dry-run # fill forms without submittingWhy two install commands?
python-jobspypins an exact numpy version in its metadata that conflicts with pip's resolver, but works fine at runtime with any modern numpy. The--no-depsflag bypasses the resolver; the second command installs jobspy's actual runtime dependencies. Everything exceptpython-jobspyinstalls normally.
Requires: Python 3.11+, Node.js (for npx), Gemini API key (free), Claude Code CLI, Chrome
Runs all 6 stages, from job discovery to autonomous application submission. This is the full power of ClawCV.
Requires: Python 3.11+, Gemini API key (free)
Runs stages 1-5: discovers jobs, scores them, tailors your resume, generates cover letters. You submit applications manually with the AI-prepared materials.
| Stage | What Happens |
|---|---|
| 1. Discover | Scrapes 5 job boards (Indeed, LinkedIn, Glassdoor, ZipRecruiter, Google Jobs) + 48 Workday employer portals + 30 direct career sites |
| 2. Enrich | Fetches full job descriptions via JSON-LD, CSS selectors, or AI-powered extraction |
| 3. Score | AI rates every job 1-10 based on your resume and preferences. Only high-fit jobs proceed |
| 4. Tailor | AI rewrites your resume per job: reorganizes, emphasizes relevant experience, adds keywords. Never fabricates |
| 5. Cover Letter | AI generates a targeted cover letter per job |
| 6. Auto-Apply | Claude Code navigates application forms, fills fields, uploads documents, answers questions, and submits |
Each stage is independent. Run them all or pick what you need.
| Feature | ClawCV | AIHawk | Manual |
|---|---|---|---|
| Job discovery | 5 boards + Workday + direct sites | LinkedIn only | One board at a time |
| AI scoring | 1-10 fit score per job | Basic filtering | Your gut feeling |
| Resume tailoring | Per-job AI rewrite | Template-based | Hours per application |
| Auto-apply | Full form navigation + submission | LinkedIn Easy Apply only | Click, type, repeat |
| Supported sites | Indeed, LinkedIn, Glassdoor, ZipRecruiter, Google Jobs, 46 Workday portals, 28 direct sites | Whatever you open | |
| License | AGPL-3.0 | MIT | N/A |
| Component | Required For | Details |
|---|---|---|
| Python 3.11+ | Everything | Core runtime |
| Node.js 18+ | Auto-apply | Needed for npx to run Playwright MCP server |
| Gemini API key | Scoring, tailoring, cover letters | Free tier (15 RPM / 1M tokens/day) is enough |
| Chrome/Chromium | Auto-apply | Auto-detected on most systems |
| Claude Code CLI | Auto-apply | Install from claude.ai/code |
Gemini API key is free. Get one at aistudio.google.com. OpenAI and local models (Ollama/llama.cpp) are also supported.
| Component | What It Does |
|---|---|
| CapSolver API key | Solves CAPTCHAs during auto-apply (hCaptcha, reCAPTCHA, Turnstile, FunCaptcha). Without it, CAPTCHA-blocked applications just fail gracefully |
Note: python-jobspy is installed separately with
--no-depsbecause it pins an exact numpy version in its metadata that conflicts with pip's resolver. It works fine with modern numpy at runtime.
All generated by clawcv init:
Your personal data in one structured file: contact info, work authorization, compensation, experience, skills, resume facts (preserved during tailoring), and EEO defaults. Powers scoring, tailoring, and form auto-fill.
Job search queries, target titles, locations, boards. Run multiple searches with different parameters.
API keys and runtime config: GEMINI_API_KEY, LLM_MODEL, CAPSOLVER_API_KEY (optional).
config/employers.yaml- Workday employer registry (48 preconfigured)config/sites.yaml- Direct career sites (30+), blocked sites, base URLs, manual ATS domainsconfig/searches.example.yaml- Example search configuration
Queries Indeed, LinkedIn, Glassdoor, ZipRecruiter, Google Jobs via JobSpy. Scrapes 48 Workday employer portals (configurable in employers.yaml). Hits 30 direct career sites with custom extractors. Deduplicates by URL.
Visits each job URL and extracts the full description. 3-tier cascade: JSON-LD structured data, then CSS selector patterns, then AI-powered extraction for unknown layouts.
AI scores every job 1-10 against your profile. 9-10 = strong match, 7-8 = good, 5-6 = moderate, 1-4 = skip. Only jobs above your threshold proceed to tailoring.
Generates a custom resume per job: reorders experience, emphasizes relevant skills, incorporates keywords from the job description. Your resume_facts (companies, projects, metrics) are preserved exactly. The AI reorganizes but never fabricates.
Writes a targeted cover letter per job referencing the specific company, role, and how your experience maps to their requirements.
Claude Code launches a Chrome instance, navigates to each application page, detects the form type, fills personal information and work history, uploads the tailored resume and cover letter, answers screening questions with AI, and submits. A live dashboard shows progress in real-time.
The Playwright MCP server is configured automatically at runtime per worker. No manual MCP setup needed.
# Utility modes (no Chrome/Claude needed)
clawcv apply --mark-applied URL # manually mark a job as applied
clawcv apply --mark-failed URL # manually mark a job as failed
clawcv apply --reset-failed # reset all failed jobs for retry
clawcv apply --gen --url URL # generate prompt file for manual debuggingclawcv init # First-time setup wizard
clawcv doctor # Verify setup, diagnose missing requirements
clawcv run [stages...] # Run pipeline stages (or 'all')
clawcv run --workers 4 # Parallel discovery/enrichment
clawcv run --stream # Concurrent stages (streaming mode)
clawcv run --min-score 8 # Override score threshold
clawcv run --dry-run # Preview without executing
clawcv run --validation lenient # Relax validation (recommended for Gemini free tier)
clawcv run --validation strict # Strictest validation (retries on any banned word)
clawcv apply # Launch auto-apply
clawcv apply --workers 3 # Parallel browser workers
clawcv apply --dry-run # Fill forms without submitting
clawcv apply --continuous # Run forever, polling for new jobs
clawcv apply --headless # Headless browser mode
clawcv apply --url URL # Apply to a specific job
clawcv status # Pipeline statistics
clawcv dashboard # Open HTML results dashboard
See CONTRIBUTING.md for development setup, coding standards, and PR guidelines.
ClawCV is licensed under the GNU Affero General Public License v3.0.
You are free to use, modify, and distribute this software. If you deploy a modified version as a service, you must release your source code under the same license.