Automated job application form extraction, filling, and job matching with dual MCP server integration and smart prerequisites detection
Project description
Job Application Automator
๐ค Automated job application form extraction and filling with Claude Desktop integration via Model Context Protocol (MCP).
Streamline your job search by automating form data extraction and filling while maintaining full control over submissions.
๐ Quick Start
Simple 2-step process for any user:
# Step 1: Install from PyPI
pip install job-application-automator
# Step 2: Setup Claude Desktop
job-automator-setup
That's it! Users get:
- โ All dependencies automatically installed
- โ Playwright browsers configured
- โ Claude Desktop MCP integration set up
- โ Cross-platform Unicode compatibility
- โ Professional package distribution
Restart Claude Desktop and you're ready to go!
๐ Prerequisites
- Python 3.10+ - Download here
- Node.js & npm - Download here (for enhanced features)
- Claude Desktop - Download here
๐ Alternative Installation Methods
Option 1: From PyPI (Recommended)
pip install job-application-automator
job-automator-setup
Option 2: From Git Repository
git clone https://github.com/username/job-application-automator.git
cd job-application-automator
python scripts/quick_setup.py
Option 3: Direct Install
pip install git+https://github.com/username/job-application-automator.git
job-automator-setup
โจ Features
- ๐ Form Extraction: Automatically extract form fields from any job posting URL
- ๐ Intelligent Form Filling: Fill forms with your information while keeping browser open for review
- ๐ผ Cover Letter Generation: Create personalized cover letters for each application
- ๐ Applied Jobs Tracking: Beautiful dashboard showing all your job applications
- ๐ Privacy First: All processing happens locally on your machine
- ๐ก๏ธ Stealth Mode: Uses undetected browser automation to avoid bot detection
- ๐ฏ Claude Desktop Integration: Seamless MCP integration with Claude Desktop
๐ก Usage
After installation, interact with Claude Desktop using natural language:
Extract Form Data
Extract form fields from https://company.com/careers/software-engineer
Fill Job Application
Fill the job application form with my information:
- Name: John Doe
- Email: john@example.com
- Phone: +1-555-0123
- Resume: /path/to/resume.pdf
View Application History
Show me my applied jobs dashboard
Generate Cover Letter
Create a cover letter for the Software Engineer position at TechCorp
๐ ๏ธ What's Included
MCP Tools Available in Claude Desktop:
-
simple_form_extraction- Extracts form structure from job posting URLs
- Identifies required fields, field types, and form layout
- Handles complex forms (Greenhouse, Workday, etc.)
-
simple_form_filling- Fills forms with your provided information
- Opens browser for manual review before submission
- Supports file uploads (resume, cover letter)
-
create_cover_letter- Generates personalized cover letters
- Saves with timestamp and company info
- Customizable templates
-
get_applied_jobs- Shows beautiful dashboard of all applications
- Tracks application dates and statuses
- Export capabilities
-
health_check- Monitor server status
- Check browser automation health
- Debug connection issues
๐ง Manual Setup
If you prefer manual configuration:
1. Install Package
pip install job-application-automator
2. Configure Claude Desktop
Add to your Claude Desktop config file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/claude/claude_desktop_config.json
{
"mcpServers": {
"job-automator": {
"command": "job-automator-mcp"
}
}
}
3. Install Browser Dependencies
playwright install chromium
4. Restart Claude Desktop
๐ System Requirements
- Python: 3.10 or higher
- Operating System: Windows, macOS, or Linux
- Claude Desktop: Latest version
- Memory: 4GB+ RAM recommended
- Storage: 500MB for dependencies
๐ Privacy & Security
- Local Processing: All form data stays on your machine
- No Data Collection: Nothing is sent to external services
- Manual Control: You review every form before submission
- Stealth Browsing: Avoids website bot detection
- Secure Storage: Temporary files are automatically cleaned up
๐๏ธ Architecture
Claude Desktop โโ MCP Server โโ Form Modules โโ Browser Automation
โ โ โ โ
User Chat FastMCP Extractor/ Playwright
Protocol Filler Logic (Undetected)
How it works:
- You ask Claude to extract or fill a form
- Claude calls the appropriate MCP tool
- MCP server delegates to form automation modules
- Browser automation handles the web interaction
- Results are returned to you through Claude
๐ Example Workflow
-
Find Job Posting
"Extract form data from https://greenhouse.io/company/job/apply" -
Review Extracted Fields Claude shows you all the form fields that were found
-
Fill Application
"Fill the form with my information: Name: Jane Smith Email: jane@example.com Phone: +1-555-0123 Resume: C:\Documents\resume.pdf" -
Review & Submit Browser opens with form pre-filled - you review and submit manually
-
Track Application
"Show my job applications dashboard"
๐ ๏ธ Development
Local Development Setup
git clone https://github.com/jobautomator/job-application-automator
cd job-application-automator
pip install -e .
job-automator-setup
๐งช Installation Verification
Check if everything is working:
# Check prerequisites
python scripts/check_prerequisites.py
# Test package installation
python -c "import job_application_automator; print('โ
Package installed')"
# Test MCP server
python job_application_automator/mcp_server.py
Troubleshooting
If you encounter issues:
- Check prerequisites:
python scripts/check_prerequisites.py - Verify Claude config: See
examples/claude_config_example.json - Manual setup: Follow detailed instructions in INSTALL.md
- Get help: Check GitHub Issues
๐๏ธ Repository Structure
job-application-automator/
โโโ .github/workflows/ # CI/CD workflows
โโโ .gitignore # Git ignore rules
โโโ README.md # This file
โโโ INSTALL.md # Detailed installation guide
โโโ LICENSE # MIT License
โโโ pyproject.toml # Package configuration
โโโ requirements.txt # Python dependencies
โโโ job_application_automator/ # Main package
โ โโโ __init__.py
โ โโโ mcp_server.py # FastMCP server
โ โโโ form_extractor.py # Form extraction engine
โ โโโ form_filler.py # Form filling automation
โ โโโ setup_claude.py # Claude Desktop setup
โ โโโ mcp_config/ # MCP configuration
โโโ scripts/ # Installation scripts
โ โโโ quick_setup.py # Cross-platform setup
โ โโโ install.sh # Linux/macOS setup
โ โโโ install.bat # Windows setup
โ โโโ check_prerequisites.py # Requirements check
โโโ examples/ # Example files
โโโ claude_config_example.json
โโโ sample_form_data.json
โโโ README.md
Run Tests
python -m pytest tests/ -v
Development Setup
git clone https://github.com/username/job-application-automator.git
cd job-application-automator
pip install -e .
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
Areas We Need Help With:
- Additional job board integrations
- UI/UX improvements for the dashboard
- Performance optimizations
- Documentation improvements
- Test coverage expansion
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: contact@jobautomator.dev
๐ Acknowledgments
- Model Context Protocol by Anthropic
- Playwright for browser automation
- Undetected Playwright for stealth automation
- FastMCP for MCP server framework
๐ Roadmap
- v1.1: GUI application for non-technical users
- v1.2: Integration with more job boards (Indeed, LinkedIn, etc.)
- v1.3: AI-powered application optimization suggestions
- v1.4: Team collaboration features
- v1.5: Mobile app support
Made with โค๏ธ for job seekers everywhere
Automate the tedious, focus on what matters - landing your dream job!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file job_application_automator-1.2.7.tar.gz.
File metadata
- Download URL: job_application_automator-1.2.7.tar.gz
- Upload date:
- Size: 64.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a737d293cea348d45fbe5c1f865e79f524ff054b08a6f89f288336aa47fa3e94
|
|
| MD5 |
289818d24617fa4acc7554218e908b3a
|
|
| BLAKE2b-256 |
e492021ea3139db8b44658f02a21653e0ce6f14323d026c24a8cc51153b55a17
|
File details
Details for the file job_application_automator-1.2.7-py3-none-any.whl.
File metadata
- Download URL: job_application_automator-1.2.7-py3-none-any.whl
- Upload date:
- Size: 63.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8af6b7f3f69163ecef4a8ccdb81279b0160d9f4c9f0a17be84a8ff774699bf4b
|
|
| MD5 |
feafabd3f9ca963a7b08004e0124d23a
|
|
| BLAKE2b-256 |
855970e5d406bd2edf89ab1e31ec483cfe8a226946392631b73d7a3290b809cf
|