Skip to main content

ApplyGenie MCP 🧞‍♂️

Your magical AI assistant that grants your job wishes.
A production-grade Model Context Protocol (MCP) server for desktop control, autonomous job application form filling, local application tracking, and personalized AI mock interview preparation.

Python 3.10+ MCP Protocol License: MIT FastMCP


🌟 What is ApplyGenie?

ApplyGenie bridges the gap between job discovery, form filling, application tracking, and interview readiness. It runs locally as an MCP server, empowering LLM agents (Claude Desktop, Cursor, Antigravity, VS Code, Windsurf) with 35+ specialized tools:

  1. 🖥️ Desktop Control & Vision: Fast screenshot captures (mss), DPI-corrected mouse navigation, human-like typing jitter (pynput), and native Windows window management (pywinauto).
  2. 📋 Smart Candidate Profile: Local JSON schema storing your education, work experiences, skills, work authorizations, and custom portal answer banks.
  3. 🌐 AI Browser Automation & Form Filling: Playwright-powered stealth engine that parses forms using DOM + Accessibility Trees, maps fields to your profile, uploads PDF/DOCX resumes, and requests explicit confirmation before submitting.
  4. 📊 Application Tracker & Analytics: Local SQLite database logging every applied role, tracking interview conversion rates, and charting application velocity.
  5. 🎤 Mock Interview Engine: Socratic coding hint ladders (4 rungs), behavioral STAR coaching ("I" vs "We" ownership ratio analysis), and 4-phase system design state machines.

🚀 Quickstart & Installation

Option 1: Run directly with uvx (Zero manual setup)

uvx applygenie-mcp

Option 2: Install via pip

pip install applygenie-mcp

# With full browser automation support:
pip install "applygenie-mcp[browser]"
playwright install chromium

⚙️ Configuration for MCP Clients

1. Claude Desktop

Add to your %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "applygenie": {
      "command": "uvx",
      "args": ["applygenie-mcp"]
    }
  }
}

2. Google Antigravity

Add to your project's .agents/mcp_config.json or ~/.gemini/config/mcp_config.json:

{
  "mcpServers": {
    "applygenie": {
      "command": "python",
      "args": ["-m", "applygenie.server"],
      "cwd": "C:\\Personal Projects\\resume generator\\applygenie-mcp"
    }
  }
}

3. Cursor / Windsurf

Navigate to Settings > Features > MCP > Add New MCP Server:

  • Name: ApplyGenie
  • Type: command
  • Command: uvx applygenie-mcp

🛠️ Complete MCP Tool Reference

1. Desktop Control & Vision

Tool Description
screenshot(monitor=0) Captures JPEG screenshot encoded in base64.
get_screen_size() Enumerates all connected monitors and resolution bounds.
mouse_click(x, y, button, clicks) Clicks mouse with DPI scaling correction.
mouse_move(x, y) Moves mouse cursor smoothly to target coordinates.
mouse_scroll(direction, amount) Scrolls mouse wheel up or down.
mouse_drag(start_x, start_y, end_x, end_y) Performs click-and-drag between coordinates.
get_mouse_position() Returns current mouse cursor coordinates.
type_text_input(text, interval) Types text with randomized jitter (±30%) to emulate human cadence.
press_keyboard_key(keys) Executes hotkeys (e.g. ctrl+a, tab, enter).
list_open_windows() Returns all visible application windows.
focus_app_window(title) Brings target window to foreground via fuzzy title match.
minimize_app_window(title) Minimizes target window.
maximize_app_window(title) Maximizes target window.
get_current_window() Returns info about currently focused active window.
search_windows(pattern) Finds windows matching regex or substring.
wait_seconds(seconds) Pauses execution safely (capped at 30s).
get_action_history(last_n) Inspects safety audit action logs.

2. Profile & Resume Management

Tool Description
get_user_profile() Loads complete candidate profile.
get_user_profile_summary() Returns concise summary of skills, credentials, and work history.
setup_user_profile(...) Initializes candidate personal info, URLs, location, and defaults.
update_profile_attribute(field, val) Updates a specific top-level profile field.
add_work_experience(...) Appends a work experience or internship entry.
add_education_entry(...) Appends a degree / university qualification.
add_project_entry(...) Appends a notable software project.
save_portal_custom_answer(pattern, ans) Saves reusable answer for portal questions (e.g. "Why hire you?").
parse_resume_file(filepath) Extracts text from PDF or DOCX resume.

3. Browser Automation & Form Filling

Tool Description
browser_open(url, headless) Launches stealth Chromium browser.
browser_navigate(url) Navigates browser to destination page.
browser_get_page_text() Extracts visible text content from current tab.
browser_get_page_screenshot() Captures high-res screenshot of current webpage.
browser_detect_form_fields() Parses inputs, textareas, selects, and file upload fields.
browser_fill_detected_form() Auto-maps profile data and fills all detected inputs.
browser_upload_resume(filepath) Uploads resume PDF/DOCX to detected file input field.
browser_submit_form(confirm=True) Clicks submit button (Requires explicit human confirmation).
browser_close() Closes browser gracefully.

4. Application Tracker

Tool Description
track_application(...) Records a new application in local SQLite database.
update_application_progress(id, status) Updates status (interview, screening, offer, rejected).
get_tracked_applications(...) Lists applications with optional status/company filtering.
search_tracked_applications(query) Full-text search across roles, companies, and notes.
get_application_analytics() Computes interview conversion rates, offer rates, and top companies.

5. Mock Interview Engine

Tool Description
start_mock_interview(type, company, diff) Starts coding, behavioral, or system design session.
get_coding_hint() Advances the 4-rung Socratic hint ladder without spoiling answers.
analyze_behavioral_star_answer(text) Evaluates STAR structure and calculates "I" vs "We" ownership ratio.
advance_system_design_interview(input) Steps through 4 architectural interview phases.
generate_interview_scorecard(...) Produces structured 1-5 rubric report card and hiring recommendation.

🛡️ Safety & Failsafe Architecture

ApplyGenie enforces strict safety guardrails:

  1. Mouse Corner Failsafe: Moving the cursor to screen corner (0, 0) immediately halts all automation.
  2. Rate Limiting: Enforces a maximum action frequency (default: 30 actions/min) and minimum delays to prevent runaway loops.
  3. Human-in-the-Loop Confirmation: Form submission and destructive actions require explicit confirm=True confirmation. The copilot fills 95% of the form, pausing for human review.
  4. Local Data Storage: All candidate profile data, resume caches, and application records stay on your local disk at ~/.applygenie/. No telemetry, no cloud sync.
  5. Key Combo Shield: Dangerous system combinations (alt+f4, ctrl+alt+del) are blocked by default.

🧪 Running Tests

python -m pytest tests/ -v

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

Developed with ❤️ by Tanishq Mangal (tanishkmangal3@gmail.com).

Release files for applygenie-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for applygenie-mcp 0.1.0
File Size Uploaded
applygenie_mcp-0.1.0.tar.gz 47.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for applygenie-mcp 0.1.0
File Interpreter ABI Platform
applygenie_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 97.8 kB

Release files / applygenie_mcp-0.1.0.tar.gz

Download URL applygenie_mcp-0.1.0.tar.gz
Size 47.7 kB
Tags Source
SHA-256 checksum
How to use checksums
53a36f7adbfe99df6969a65f1e1a3784bab55cc283ea7079ef9b3c65dd58d8fb
BLAKE2b-256 checksum
How to use checksums
bb2096604dd678f820b92feab13d299a1dbb8ab6ac31e11cb62938200be3da6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release files / applygenie_mcp-0.1.0-py3-none-any.whl

Download URL applygenie_mcp-0.1.0-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0373c10d711a08ff5f254133c20455c07d2c88d4454e22b3355bcfa6c464fd49
BLAKE2b-256 checksum
How to use checksums
2bae799ac3299e492d89716d8f4431a7f474488a60d8280e2ff9417bcb1d69c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page