autoapply-mcp
Integrates with Greenhouse's public job board API to discover job postings, apply eligibility gates, score candidates, and prepare applications.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@autoapply-mcpwhat new AI security jobs are available and which should I apply to?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
autoapply-mcp
An MCP server that turns a verified candidate profile into a governed job-application pipeline: it discovers postings from public ATS boards, applies hard eligibility gates, scores what survives with quotable evidence, drafts only the answers your profile actually supports, and refuses to submit anything without a recorded human approval.
It is built for high-volume search without becoming a spam bot. Discovery, ranking and form-filling are automated. Judgement, truthfulness and consent are not.
What it does
Stage | Behaviour |
Discover | Fetches Greenhouse, Lever and Ashby public job-board APIs for the companies you configure |
Gate | Hard-rejects on location, seniority, compensation floor, clearance, citizenship and sponsorship constraints |
Score | Ranks survivors across seven weighted dimensions, each with the quote that earned it |
Draft | Builds a match report, loads the employer's real questions, and answers only what verified profile data supports |
Approve | Binds a human approval to a hash of the exact submission content |
Submit | Manual, assisted or auto - never beyond the mode the campaign permits |
Track | Records submissions, outcomes and an append-only audit log |
Related MCP server: job-search
Design rules
Nothing is invented. Every drafted answer traces to a profile field or a pre-approved answer. Anything else is handed back to you.
Sensitive questions always stop. Work authorization, citizenship, compensation, criminal history, demographics and legal attestations require a human decision by default.
Approval binds to content.
approve_applicationrecords a packet hash. Editing anything invalidates it and submission is refused.Job descriptions are untrusted data. Text from employers is scanned for prompt-injection patterns, wrapped in an explicit data boundary, and never treated as instructions.
Anti-bot controls are respected. A detected CAPTCHA aborts the run and hands the application back to you. There is no solving, evading or fingerprint spoofing.
Destinations are allowlisted. Submissions only go to hosts the campaign explicitly trusts, over HTTPS.
Requirements
Node.js 22.5 or newer (uses the built-in
node:sqlite, so there is no native build step)Playwright, only if you want assisted or automatic form filling:
npm install playwright && npx playwright install chromium
Install
git clone <your-fork> autoapply-mcp
cd autoapply-mcp
npm install
npm run build
npm testConfigure
Personal data lives outside the repository, so a checkout can be published as-is. The default home is ~/.autoapply:
mkdir -p ~/.autoapply
cp examples/profile.example.json ~/.autoapply/profile.json
cp examples/campaign.example.json ~/.autoapply/campaign.json
cp presets/ai-security-us-canada.json ~/.autoapply/companies.jsonThen edit them and verify:
node dist/cli/doctor.js --probedoctor validates all three files, checks that your resume files exist and are real PDFs, confirms every track points at a resume variant, and probes each configured board.
presets/ai-security-us-canada.json ships 80 company boards that were verified live against the ATS APIs, weighted toward AI, security and infrastructure companies in the US and Canada.
Nothing in this repository is specific to one candidate. Keep profile.json, resumes and the database in ~/.autoapply and they can never be committed by accident.
Environment variables
Variable | Default | Purpose |
|
| Root for config, database and artifacts |
|
| Candidate profile |
|
| Campaign policy |
|
| Company board list |
|
| SQLite database |
|
| Screenshots and submission evidence |
|
|
|
|
| Minimum delay between requests to one host |
|
| Response size ceiling |
Register with an MCP client
{
"mcpServers": {
"autoapply": {
"command": "node",
"args": ["/absolute/path/to/autoapply-mcp/dist/index.js"],
"env": { "AUTOAPPLY_HOME": "/absolute/path/to/your/.autoapply" }
}
}
}The server speaks stdio. All logs go to stderr, so stdout stays clean for the protocol. AUTOAPPLY_HOME can be omitted if you use the default ~/.autoapply.
Typical session
Single application:
discover_jobs -> fetch every board, gate, score, store
list_queue -> the ranked, de-duplicated shortlist
explain_job jobId -> gate result and scoring evidence
prepare_application jobId -> match report, employer questions, drafted answers
set_application_content -> your cover letter and any answers only you can give
preview_application -> the exact packet plus its hash
approve_application + hash -> your explicit authorization
submit_application mode -> manual, assisted or auto
record_outcome -> track what happenedHigh volume:
prepare_batch {tiers:["A","B"], locationClasses:["bay-area"], minCompensation:250000}
preview_batch -> the set, plus grouped blocking questions
approve_batch + manifestHash + expectedCount
submit_batch mode -> honours daily limit and pacing
list_batches -> progressSee docs/TOOLS.md for every tool, docs/BATCH.md for high-volume campaigns and cached personal data, docs/CONFIGURATION.md for the schemas, docs/RESUMES.md for resume variants and LaTeX builds, and docs/SAFETY.md for the guarantees and their limits.
Submission modes
Mode | Behaviour | Use it when |
| Server prepares the packet; you submit it yourself | Always start here |
| Server fills the hosted form in a visible browser and leaves it open for you to review and submit | After the manual pilot proves the packets are right |
| Server fills and clicks submit | Only for allowlisted companies on forms you have already seen work |
auto additionally requires the company to appear in submission.allowedCompanies, every required field to be fillable, and no blocked questions to remain unanswered.
What it deliberately does not do
No LinkedIn, Indeed or Wellfound automation. Their terms prohibit it and their anti-bot systems are built to stop it. Use their alerts as leads, then apply through the employer's own board.
No Workday support. Each tenant is bespoke, session-bound and protected; a candidate-side integration cannot be done reliably or respectfully.
No CAPTCHA solving, proxy rotation or fingerprint evasion.
No writing of your resume prose or cover letters. The server supplies structured evidence; your agent writes the words and you approve them.
Known limitations
Compensation parsed from description text is a heuristic. Postings that list several geographic pay zones can yield the wrong figure, so those results carry a
compensation-parsed-from-textflag. Structured ATS pay data is preferred whenever a board publishes it.FX rates in
campaign.jsonare static. Update them before relying on a cross-currency floor.Only Greenhouse publishes an application question schema. For Lever and Ashby the server drafts against a baseline field set and reads the real form during an assisted run.
@modelcontextprotocol/sdkcurrently pulls a transitive advisory in@hono/node-serveraffecting its static-file server. This server uses the stdio transport only and never serves static files, so the affected code path is not reachable.
Development
npm run typecheck
npm test
npm run coverage174 tests cover location classification, compensation parsing, every gate, scoring, the answer policy, resume validation, submission guards, packet hashing, persistence, the ATS adapters and an end-to-end run through a real in-memory MCP client.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
Alicense-qualityAmaintenanceMCP server for job search and application tracking, enabling AI agents to search jobs, get details, manage applications, and find contacts across 128K+ jobs and 1,900+ companies.Last updated2,3611MIT- Alicense-qualityBmaintenanceA job-search MCP server that ranks roles, drafts cover letters, and rehearses Q&A answers using a candidate profile, with live listings from five public sources.Last updated61MIT
- Alicense-qualityBmaintenanceAn MCP server that enables AI-assisted job search workflows including job discovery, application tracking, resume evaluation, and cover letter generation, with support for multiple job sources and scheduled scraping.Last updated81AGPL 3.0
- Alicense-qualityBmaintenanceMCP server for job search, enabling profile creation, job hunting, review, and supervised application preparation without auto-submission.Last updatedApache 2.0
Related MCP Connectors
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
GetJobzi MCP server for job search, application tracking, and career forecasting.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/niragmehta/autoapply-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server