The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the ApplyGenie listing page.
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.
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:
mss), DPI-corrected mouse navigation, human-like typing jitter (pynput), and native Windows window management (pywinauto).uvx (Zero manual setup)pipAdd to your %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
Add to your project's .agents/mcp_config.json or ~/.gemini/config/mcp_config.json:
Navigate to Settings > Features > MCP > Add New MCP Server:
ApplyGeniecommanduvx applygenie-mcp| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
ApplyGenie enforces strict safety guardrails:
(0, 0) immediately halts all automation.confirm=True confirmation. The copilot fills 95% of the form, pausing for human review.~/.applygenie/. No telemetry, no cloud sync.alt+f4, ctrl+alt+del) are blocked by default.This project is licensed under the MIT License — see the LICENSE file for details.
Developed with ❤️ by Tanishq Mangal (tanishkmangal3@gmail.com).