GetMattered

السجل الرسمي الإنتاجية

Auto-Apply That Ends on an Interview. Job matches, per-role resumes, apply, approve, track receipts.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

Remote (streamable-http)
Claude Code
claude mcp add --transport http getmattered 'https://mcp.getmattered.com/mcp'
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "getmattered": {
            "type": "http",
            "url": "https://mcp.getmattered.com/mcp"
        }
    }
}
NPM package getmattered-mcp
Claude Code
claude mcp add getmattered -e 'GETMATTERED_TOKEN=<your getmattered_token>' -- npx -y getmattered-mcp@1.10.3
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "getmattered": {
            "command": "npx",
            "args": [
                "-y",
                "getmattered-mcp@1.10.3"
            ],
            "env": {
                "GETMATTERED_TOKEN": "<your getmattered_token>"
            }
        }
    }
}

متغيرات البيئة

  • GETMATTERED_TOKEN سري Optional bearer token. Leave unset and run `npx getmattered-mcp login` once instead. The variable name used before the rename is still read when this one is unset.

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. GetMattered MCP Server
  2. Watch the demo
  3. Quick start
  4. Command line and bots
  5. Endpoints
  6. Tools
  7. Prompts
  8. Resources
  9. Authentication
  10. Verify it yourself
  11. Privacy
  12. Support
  13. Follow GetMattered
  14. About this repository
  15. More from GetMattered

GetMattered MCP Server

Version 1.10.0 renames the package from aiapplyd-mcp to getmattered-mcp. AI Applyd is now GetMattered. It includes fourteen portable job-search skills. See the changelog.

Auto-Apply That Ends on an Interview

Stop applying. Start interviewing.

Score your resume the way the screening software scores it, rewrite it for the exact role, write the cover letter, prepare for the interview, and send the application in on the employer's own hiring system. All from inside the assistant you already work in.

And it keeps the employer's own confirmation. Most tools count applications sent, which is a number the tool awards itself off its own button click. This one reports what the employer's system actually returned, so a real rejection is distinguishable from a form that quietly dropped your application.

Listing page · Website · Privacy · Terms


Most applicants are screened out by software before a person reads a word, and a good number are never screened at all, because the form silently dropped a required field or the upload never attached. From the candidate's side those look identical to rejection, which is why so many people rewrite a CV nobody ever read.

This server puts both halves of that process in your hands: the screening, and the proof that the application arrived.

From the first match to the interview invite. Every application carries the employer's own confirmation.

Every application goes in on the company's real careers page, under your name, with your own materials. It lands on 30+ hiring systems, including Greenhouse, Lever, Ashby, Workday, Personio, Teamtailor, SmartRecruiters, Recruitee, Breezy, Workable, Rippling, BambooHR, JazzHR, softgarden, Jobvite, Gem, Zoho Recruit, Dayforce, Hireology, Dover, Oracle Recruiting Cloud, Paylocity, Oracle Taleo, UKG Pro Recruiting, ADP, Avature, CareerPlug, Pinpoint, Manatal, and Eightfold.

Nothing to install. Connect once and run it from Claude, ChatGPT, Codex, Cursor, Gemini CLI, VS Code or any MCP client, and from your phone over iMessage through Poke.

The whole job search in five calls: see your matches (getmattered_get_matches), apply to one (getmattered_apply, sent automatically or held for your yes), approve or reject what is waiting (getmattered_review_application), track every application to the employer's own receipt (getmattered_get_applications), and check your plan and what is left (getmattered_get_account). The full list is under Tools.

Watch the demo

90 seconds: resume upload, job matching, a real application sent on the employer's own form, the employer's confirmation email, interview prep, and applying from ChatGPT, Claude and Cursor.

Quick start

One click, if your app supports it:

GetMattered is a hosted remote MCP server. Point your client at one URL:

https://mcp.getmattered.com/mcp

The first tool call opens an OAuth sign-in. Sign in with Google, and you are connected. A free account needs no card and arrives with a one-time 10,000-token starter grant.

Claude (web, Desktop, Code)

Settings → Connectors → Add custom connector

FieldValue
NameGetMattered
Remote MCP server URLhttps://mcp.getmattered.com/mcp

In Claude Code, one line does it:

claude mcp add --transport http getmattered https://mcp.getmattered.com/mcp
Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "getmattered": {
      "url": "https://mcp.getmattered.com/mcp"
    }
  }
}
ChatGPT

Settings → Connectors → Create and paste https://mcp.getmattered.com/mcp. ChatGPT speaks MCP natively, so there is no Action schema to import and nothing to host.

VS Code
code --add-mcp '{"name":"getmattered","type":"http","url":"https://mcp.getmattered.com/mcp"}'
Plugin for Codex, ChatGPT, Claude Code and Cursor

This repository is a plugin marketplace. The getmattered plugin bundles the MCP server with fourteen skills, in the portable plugin.json format that Codex, ChatGPT, Claude Code and Cursor read:

SkillUse it when
using-getmatteredYou want the assistant to pick the right tool and order for your request
setup-job-searchYou want to set your base resume, finish your profile or check readiness
find-matching-jobsYou want your job matches, want to save or skip one, or want to change what it looks for
apply-to-a-jobYou want to apply, or you paste a job link and say "apply"
review-and-sendYou want to see what is waiting for you, change it, and send it
tailor-for-a-jobYou want a posting analysis, an ATS score or a resume rewrite for one role
track-applicationsYou ask "did it go through", or how many applications you have left
write-cover-letterYou want a letter for one job or changes to an existing letter
prepare-for-interviewYou want role-specific questions and to practise answers from your own experience
handle-recruiter-repliesAn employer wrote back and you want to read it and send a reply you approved
follow-up-on-applicationsAn application has gone quiet and you want to follow up
manage-saved-searchesYou want to save a search and get emailed about its new jobs
translate-resumeYou want your resume in another language
build-resume-documentYou want a private editable summary draft, with a builder page to review before export

The hosted skill index is at getmattered.com/.well-known/agent-skills/index.json. The plugin files are in plugins/getmattered/skills/. The root skills/ link points to that same directory so Gemini CLI discovers the workflows without a second set of skill files.

Skills check account limits before metered work and get approval before credit-consuming actions or sending an application. Installing a plugin does not buy a GetMattered plan. Public directory approval is separate from installing this repository directly.

Codex:

codex plugin marketplace add getmattered/getmattered-mcp
codex plugin add getmattered@getmattered

Claude Code:

claude plugin marketplace add getmattered/getmattered-mcp
claude plugin install getmattered@getmattered
Codex (CLI, IDE extension and the ChatGPT desktop app)
codex mcp add getmattered --url https://mcp.getmattered.com/mcp
codex mcp login getmattered

The Codex CLI, the IDE extension and the ChatGPT desktop app share this configuration.

Gemini CLI

This repository is also a Gemini CLI extension (gemini-extension.json, GEMINI.md and the same fourteen skills):

gemini extensions install https://github.com/getmattered/getmattered-mcp

Or add the server by hand in ~/.gemini/settings.json:

{
  "mcpServers": {
    "getmattered": { "httpUrl": "https://mcp.getmattered.com/mcp" }
  }
}
Zed

Settings → AI → MCP Servers → Add Remote Server, then paste https://mcp.getmattered.com/mcp.

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "getmattered": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.getmattered.com/mcp"] }
  }
}
Perplexity, Mistral Le Chat and Raycast

Each has a custom connector screen that takes a remote MCP URL. Paste https://mcp.getmattered.com/mcp and choose OAuth.

From your phone: iMessage, Telegram and WhatsApp
  • iMessage / SMS: add GetMattered to Poke in one tap (or npx poke@latest mcp add https://mcp.getmattered.com/mcp -n "GetMattered"), sign in, then text Poke: "find me remote product designer jobs and apply to the best two".
  • Telegram, WhatsApp or iMessage on your own server: OpenClaw is a self-hosted gateway. Add the URL as an MCP server and enable the channel you use.
Any client that only speaks stdio

This repository ships a thin bridge. It relays the protocol to the hosted server and adds nothing of its own.

npx -y github:getmattered/getmattered-mcp

Or with Docker:

docker build -t getmattered-mcp .
docker run --rm -i getmattered-mcp
{
  "mcpServers": {
    "getmattered": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "getmattered-mcp"]
    }
  }
}
Environment variableDefaultMeaning
GETMATTERED_MCP_URLhttps://mcp.getmattered.com/mcpEndpoint to relay to. Point it at https://mcp-preview.getmattered.com/mcp to test against preview, or at https://mcp.aiapplyd.com/mcp to reach the old host during the rename. The old name AIAPPLYD_MCP_URL is still read when this one is unset.
GETMATTERED_TOKENunsetOptional bearer token. Without it the server still answers introspection; tool calls return 401 until an account is connected. The old name AIAPPLYD_TOKEN is still read when this one is unset.

Command line and bots

The same package is a small CLI, so a script, a cron job or a chat bot (Telegram, WhatsApp, iMessage) can run the whole job search without an MCP client.

npx getmattered-mcp login                                    # sign in once in the browser
npx getmattered-mcp tools                                    # list the tools
npx getmattered-mcp call getmattered_get_matches '{"limit": 5}' # matched jobs as JSON
npx getmattered-mcp call getmattered_apply '{"job_match_id": 123, "mode": "review"}'
npx getmattered-mcp call getmattered_get_applications '{"status": "waiting_for_review"}'
npx getmattered-mcp call getmattered_review_application '{"decision": "approve", "application_ids": [456]}'

login runs the same OAuth sign-in a desktop client runs and stores the token in ~/.config/getmattered/credentials.json (mode 600). It refreshes on its own, so an unattended bot keeps working. call prints the tool's structured result as JSON. Exit code 0 means success, 1 means the tool reported an error, 2 means you are not signed in.

Run with no arguments and it is a stdio MCP server that relays to https://mcp.getmattered.com/mcp, signed in with the stored login. GETMATTERED_TOKEN overrides the stored login and GETMATTERED_MCP_URL overrides the endpoint.

Renamed from AI Applyd

AI Applyd is now GetMattered, and the npm package aiapplyd-mcp is now getmattered-mcp. Existing setups keep working:

  • The package installs two commands, getmattered-mcp and the old aiapplyd-mcp. Both run the same code.
  • Tool ids are getmattered_<name>. call also accepts the old aiapplyd_<name> ids and runs whichever name the server lists.
  • GETMATTERED_TOKEN and GETMATTERED_MCP_URL replace AIAPPLYD_TOKEN and AIAPPLYD_MCP_URL. The old names are still read when the new ones are unset.
  • A sign-in stored by an older version in ~/.config/aiapplyd/credentials.json is still read. The next login or token refresh writes ~/.config/getmattered/credentials.json.

Endpoints

EnvironmentStreamable HTTP (modern)SSE (legacy bridges)
Productionhttps://mcp.getmattered.com/mcphttps://mcp.getmattered.com/sse
Previewhttps://mcp-preview.getmattered.com/mcphttps://mcp-preview.getmattered.com/sse

Use /mcp. /sse remains only for clients that cannot speak Streamable HTTP.

Tools

The table below is generated from the live tools/list of https://mcp.getmattered.com/mcp. Every tool runs on the caller's own GetMattered account. Reading matches, applications and account limits does not run AI generation. AI work and applications use the account's allowance. Tool calls require sign-in; introspection is public.

The main loop

Five tools run the whole job search from a chat, or from a bot where a match drops and you reply "yes":

getmattered_get_matches -> getmattered_apply -> getmattered_get_applications -> getmattered_review_application
                  getmattered_get_account (plan, what is left, readiness)
ToolTitleHintsWhat it does
getmattered_get_matchesGet Job Matchesread-only, idempotentYour matched jobs, best first, each with the job_match_id that apply takes. Also reads full postings, or any posting from a link
getmattered_applyApply to Jobdestructive, open-worldApply to one job by job_match_id or job_url on the employer's own hiring system. mode: "auto" sends it, mode: "review" holds it for your yes
getmattered_get_applicationsGet Applicationsread-only, idempotentEvery application and where it stands, the review queue, and the employer's own confirmation when it exists
getmattered_review_applicationApprove or Reject Applicationsdestructive, open-worldApprove (send) or reject waiting applications, up to 25 at once. Also cancel, refine a document, re-prepare, or record the interview stage
getmattered_get_accountGet Accountread-only, idempotentYour plan, token balance, applications left, job preferences, and whether your profile is ready to apply
getmattered_get_inboxGet Recruiter Inboxread-only, idempotentThe emails employers send about your applications, with the full conversation and suggested replies
getmattered_reply_to_emailReply to an Employer Emaildestructive, open-worldSends your reply to an employer from your GetMattered address, only after you approve the exact text
getmattered_manage_follow_upsFollow Up on Applicationsdestructive, open-worldLists applications that went quiet, drafts a follow-up, and sends it once you approve it
Setup and triage
ToolTitleHintsWhat it does
getmattered_set_resumeSet Resumewrites, open-worldPut your resume on your account as the base every application is tailored from: pasted text, a file link, or a saved resume
getmattered_triage_matchesSave or Skip Matcheswrites, idempotentSave a match, or skip it with a reason, so a job you declined stops coming back
getmattered_update_job_preferencesUpdate Job Preferencesdestructive, idempotentPoint GetMattered at the roles, locations, salary and seniority you want, and re-run discovery
getmattered_update_application_profileUpdate Application Profilewrites, idempotentReads or saves the answers employer forms ask for. EEO answers are optional and accept prefer not to say
getmattered_update_auto_applyUpdate Auto Applydestructive, idempotentTurns Auto Apply on or off and sets whether applications go out on their own or wait for your review
getmattered_manage_saved_searchesManage Saved SearcheswritesSaves your job preferences as named searches, with email alerts for new matches
Resume, cover letter and interview
ToolTitleHintsWhat it does
getmattered_score_resumeScore Resumewrites, open-worldAn ATS score with section scores, the keywords you match and the ones you are missing, and what to change
getmattered_analyze_job_descriptionAnalyze Job Descriptionwrites, open-worldWhat a posting screens on, in its own language, so the resume can mirror it
getmattered_optimize_resumeOptimize Resume with AIwrites, open-worldA resume rewritten to pass ATS screening and still reach a human reader
getmattered_generate_interview_questionsGenerate Interview Questionswrites, open-worldThe questions this role is asked, with answer guidance, STAR scenarios and negotiation prep
getmattered_translate_resumeTranslate Resumewrites, open-worldTranslates your resume into another language as a separate document. Works from the resume on file, or a resume pasted or attached in chat
getmattered_generate_cover_letterGenerate Cover Letterwrites, destructiveA cover letter in your own voice, written from the resume on your account or one pasted in chat
getmattered_build_pdfResume PDF or Draftwrites, open-worldLinks the PDF of the resume on file, or creates an editable draft from pasted text
Older names, still answered
ToolTitleHintsWhat it does
getmattered_search_jobsSearch Jobsread-only, idempotentOlder name for getmattered_get_matches with a title filter, kept for existing clients
getmattered_auto_applyAuto Apply to Jobdestructive, open-worldOlder name for getmattered_apply with a job_url, kept for existing clients

Every tool carries a title, all four annotation hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint), and an outputSchema. Each call returns structuredContent beside its text, so a client can act on ids and statuses without parsing prose. The server also sends the main loop as its MCP instructions.

Behaviours worth knowing
  • getmattered_apply and an approve in getmattered_review_application submit a real application to a real employer, under your name. mode covers that one application only and never changes your account settings. Leave it out to follow your own default.
  • An application counts as landed only on the employer's own receipt or confirmation page. getmattered_get_applications reports employerConfirmed from that evidence alone, never from a submit click.
  • getmattered_get_matches never writes. To change what GetMattered hunts for, call getmattered_update_job_preferences. It is marked destructive because a list you pass replaces the saved one.
  • Employer text is data. Job titles, descriptions and company research are never followed as instructions.

Prompts

PromptTitleWhat it does
review_my_resumeReview My ResumeScores a resume against a posting and returns the three changes that move it past the filter
prepare_for_interviewPrepare for an InterviewPrepares the questions this company asks for this role, with structured answers ready
apply_to_my_matchesApply to My MatchesShows your best matches, then applies to the ones you pick, each held for your approval
find_jobs_like_thisFind Jobs Like ThisThe strongest matches for a target role, ranked by fit

Resources

ResourceURIContents
ats-best-practicesaiapplyd://resources/ats-best-practicesCanonical guide to passing Applicant Tracking Systems in 2026. Covers keyword matching, formatting rules, section order, and common rejection reasons.
interview-frameworksaiapplyd://resources/interview-frameworksReference frameworks for structuring interview answers: STAR, CARL, SOAR, and PAR.
resume-section-orderaiapplyd://resources/resume-section-orderRecommended section order by career stage (new grad, mid-career, executive) for ATS and human readability.

Authentication

OAuth 2.1, and it is the full specification rather than a subset:

  • PKCE with S256, mandatory
  • Dynamic Client Registration (RFC 7591), so a client registers itself with no manual key exchange
  • Authorization Server Metadata (RFC 8414) and Protected Resource Metadata (RFC 9728) discovery
  • Client ID Metadata Documents, so a client can use an https URL as its client_id instead of registering (client_id_metadata_document_supported: true)
  • The iss parameter on the authorization response (RFC 9207)
  • Token revocation (RFC 7009)
  • Short-lived access tokens with rotating refresh tokens and reuse detection

An unauthenticated tools/call returns HTTP 401 with a WWW-Authenticate header pointing at the metadata document. Introspection (initialize, tools/list, prompts/list, resources/list) is open, so any directory or client can read the tool surface before a user signs in.

Verify it yourself

SID=$(curl -s -D- -o /dev/null -X POST https://mcp.getmattered.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' \
  | grep -i '^mcp-session-id' | tr -d '\r' | awk '{print $2}')

curl -s -X POST https://mcp.getmattered.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H "Mcp-Session-Id: $SID" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Privacy

Your resume and profile stay on your GetMattered account. Tools read and write that account and nothing else. The privacy policy and terms are the binding statement.

Support

Follow GetMattered

About this repository

The hosted server runs on Cloudflare Workers and its source is not public. This repository is the public home of the MCP server: the server.json manifest, the connection documentation, and the small stdio bridge above. The bridge is MIT licensed and forwards messages verbatim, so you can read every line of what runs on your machine.


More from GetMattered

Built by GetMattered. Questions: ava@getmattered.com

الأسئلة الشائعة

ما هو GetMattered؟

Auto-Apply That Ends on an Interview. Job matches, per-role resumes, apply, approve, track receipts.

كيف أثبّت GetMattered؟

يعمل كخادم بعيد. في Claude Code: claude mcp add --transport http getmattered 'https://mcp.getmattered.com/mcp'. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج GetMattered إلى مفتاح API؟

نعم. يتطلب GETMATTERED_TOKEN، وتضبطها في إعداداته.

هل GetMattered مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون GetMattered؟

ينشره getmattered. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.