getmattered-mcp 0.0.0-stage → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -0
- package/LICENSE +21 -0
- package/README.md +492 -2
- package/dist/auth.js +200 -0
- package/dist/index.js +188 -0
- package/dist/tool-names.js +22 -0
- package/package.json +62 -4
- package/plugins/getmattered/.claude-plugin/plugin.json +21 -0
- package/plugins/getmattered/.codex-plugin/plugin.json +155 -0
- package/plugins/getmattered/.cursor-plugin/plugin.json +20 -0
- package/plugins/getmattered/.mcp.json +8 -0
- package/plugins/getmattered/assets/icon.png +0 -0
- package/plugins/getmattered/assets/logo.png +0 -0
- package/plugins/getmattered/mcp.json +8 -0
- package/plugins/getmattered/plugin.json +154 -0
- package/plugins/getmattered/skills/apply-to-a-job/SKILL.md +34 -0
- package/plugins/getmattered/skills/build-resume-document/SKILL.md +17 -0
- package/plugins/getmattered/skills/find-matching-jobs/SKILL.md +23 -0
- package/plugins/getmattered/skills/follow-up-on-applications/SKILL.md +21 -0
- package/plugins/getmattered/skills/handle-recruiter-replies/SKILL.md +21 -0
- package/plugins/getmattered/skills/manage-saved-searches/SKILL.md +17 -0
- package/plugins/getmattered/skills/prepare-for-interview/SKILL.md +16 -0
- package/plugins/getmattered/skills/review-and-send/SKILL.md +24 -0
- package/plugins/getmattered/skills/setup-job-search/SKILL.md +18 -0
- package/plugins/getmattered/skills/tailor-for-a-job/SKILL.md +19 -0
- package/plugins/getmattered/skills/track-applications/SKILL.md +27 -0
- package/plugins/getmattered/skills/translate-resume/SKILL.md +17 -0
- package/plugins/getmattered/skills/using-getmattered/SKILL.md +53 -0
- package/plugins/getmattered/skills/write-cover-letter/SKILL.md +15 -0
- package/server.json +42 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.10.0
|
|
4
|
+
|
|
5
|
+
AI Applyd is now GetMattered. This release renames the package and changes no tool behavior.
|
|
6
|
+
|
|
7
|
+
- The npm package is `getmattered-mcp`. The old `aiapplyd-mcp` package stays on npm and points here.
|
|
8
|
+
- The package installs two commands, `getmattered-mcp` and the old `aiapplyd-mcp`. Both run the same file.
|
|
9
|
+
- The default endpoint is `https://mcp.getmattered.com/mcp`. To reach the old host during the
|
|
10
|
+
overlap, set `GETMATTERED_MCP_URL=https://mcp.aiapplyd.com/mcp`.
|
|
11
|
+
- `GETMATTERED_TOKEN` and `GETMATTERED_MCP_URL` replace `AIAPPLYD_TOKEN` and `AIAPPLYD_MCP_URL`.
|
|
12
|
+
The old names are still read when the new ones are unset.
|
|
13
|
+
- Tool ids are `getmattered_<name>`. `call` also accepts the old `aiapplyd_<name>` ids and runs
|
|
14
|
+
whichever name the server lists.
|
|
15
|
+
- The stored sign-in moves to `~/.config/getmattered/credentials.json`. A sign-in in the old
|
|
16
|
+
`~/.config/aiapplyd/credentials.json` is still read, and `logout` removes both.
|
|
17
|
+
- The plugin is `getmattered` in `plugins/getmattered`, and the tool map skill is `using-getmattered`.
|
|
18
|
+
- The MCP Registry name is `com.getmattered/getmattered`. Homepage, repository, support and
|
|
19
|
+
maintainer addresses use getmattered.com and github.com/getmattered/getmattered-mcp.
|
|
20
|
+
- Logos and images are unchanged.
|
|
21
|
+
|
|
22
|
+
## 1.9.1
|
|
23
|
+
|
|
24
|
+
Corrects application coverage in package and plugin descriptions to 30+ hiring systems. Updates the gallery image to match current application coverage. Includes fourteen portable job-search skills.
|
|
25
|
+
|
|
26
|
+
## 1.9.0
|
|
27
|
+
|
|
28
|
+
The assistant bundle has fourteen job-search skills. Four new skills cover the tool map, recruiter replies, follow-ups and saved searches.
|
|
29
|
+
|
|
30
|
+
New tools on the hosted server:
|
|
31
|
+
|
|
32
|
+
- `aiapplyd_get_inbox` reads the emails employers sent to the user's AI Applyd address, with drafted replies for a conversation. Sign-up codes and other account mail are marked and never count as an employer reply.
|
|
33
|
+
- `aiapplyd_reply_to_email` sends the user's reply to an employer. Skills show the exact text first and send only after the user says yes to it.
|
|
34
|
+
- `aiapplyd_update_auto_apply` turns Auto Apply on or off and sets review or auto mode, the daily limit and the lowest match. Turning it on or choosing auto mode needs the user's yes.
|
|
35
|
+
- `aiapplyd_update_application_profile` reads and saves the answers employer forms need, and lists the details recent applications had to guess.
|
|
36
|
+
- `aiapplyd_manage_follow_ups` lists due follow-ups, drafts one, sends it from a connected Gmail or Outlook after the user's yes, or records one the user sent.
|
|
37
|
+
- `aiapplyd_manage_saved_searches` saves the current job preferences as a named search and turns email alerts for new matches on or off.
|
|
38
|
+
|
|
39
|
+
Changed behavior:
|
|
40
|
+
|
|
41
|
+
- `aiapplyd_score_resume`, `aiapplyd_optimize_resume` and `aiapplyd_translate_resume` take `resume_text` for a resume pasted in the chat, or `resume_file` for a file attached in ChatGPT. `aiapplyd_generate_cover_letter` takes `resume_text`. Without them, the tools use the resume on file.
|
|
42
|
+
- Translation and cover letters no longer need a resume-builder document.
|
|
43
|
+
- `aiapplyd_set_resume` also takes `resume_file`.
|
|
44
|
+
- `aiapplyd_build_pdf` with no `resume_text` returns the PDF link of the resume on file and creates nothing.
|
|
45
|
+
|
|
46
|
+
Skills:
|
|
47
|
+
|
|
48
|
+
- `using-ai-applyd` maps each request to its tools and order, lists the actions that need the user's yes, and ends each result with one next step offered to the user, with no prices or billing links.
|
|
49
|
+
- `handle-recruiter-replies`, `follow-up-on-applications` and `manage-saved-searches` are new.
|
|
50
|
+
- The apply, setup, tailoring, cover letter, translation, resume document, matching, tracking and interview skills describe the new resume sources and point to the new workflows. `apply-to-a-job` covers Auto Apply settings.
|
|
51
|
+
|
|
52
|
+
The package, registry/npm manifest, client manifests, root lockfile metadata and CLI version output use 1.9.0. The prepublish check expects fourteen skills. Dependency versions are unchanged.
|
|
53
|
+
|
|
54
|
+
## 1.8.5
|
|
55
|
+
|
|
56
|
+
Publishes the ten-skill bundle from 1.8.4 to npm and the MCP Registry. npm still held an older 1.8.4 build staged on October 8, so this release uses the next version number. The code and skills match 1.8.4.
|
|
57
|
+
|
|
58
|
+
## 1.8.4
|
|
59
|
+
|
|
60
|
+
The assistant bundle has ten job-search skills. Five new workflows cover account setup, cover letters, interview practice, resume translation and editable resume-builder drafts.
|
|
61
|
+
|
|
62
|
+
- OpenAI and Codex listing metadata now includes all supported job-search workflows, a valid subtitle, a support URL and example prompts. Review annotations match all 17 live tools.
|
|
63
|
+
- The cover-letter skill selects the correct saved builder document for a new letter and uses revision instructions only for an existing application.
|
|
64
|
+
- The resume-tailoring skill runs the analysis, score or rewrite the user requested. It does not start a chain of other credit-consuming tasks.
|
|
65
|
+
- A prepublish check refuses missing skills, icons or manifests, mismatched versions and invalid OpenAI metadata.
|
|
66
|
+
- npm now includes the plugin manifests, icons and all ten skill files alongside the CLI bridge.
|
|
67
|
+
- Gemini CLI discovers the same canonical skill files as the Claude, Cursor and Codex plugin packages through the root `skills/` link.
|
|
68
|
+
- OpenAI's setup action opens the packaged job-search setup skill after installation.
|
|
69
|
+
- Skills check account limits and request approval before credit-consuming actions or application sends. An application counts as landed only with employer evidence.
|
|
70
|
+
- Resume translation uses the default saved builder document, or the first saved build. It saves a separate translation.
|
|
71
|
+
- The resume-builder tool creates an editable summary draft of up to 2,000 characters. A full resume needs structured sections or an imported file in the builder before PDF export.
|
|
72
|
+
|
|
73
|
+
The package, registry/npm manifest, client manifests, root lockfile metadata and CLI version output use 1.8.4. Dependency versions are unchanged. Store publication remains subject to each platform's review.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 GetMattered
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,493 @@
|
|
|
1
|
-
|
|
1
|
+
<div align="center">
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<img src="assets/logo.png" alt="GetMattered" width="96" height="96" />
|
|
4
|
+
|
|
5
|
+
# GetMattered MCP Server
|
|
6
|
+
|
|
7
|
+
Version 1.10.0 renames the package from `aiapplyd-mcp` to `getmattered-mcp`. AI Applyd is now
|
|
8
|
+
GetMattered. It includes fourteen portable job-search skills. See the [changelog](CHANGELOG.md).
|
|
9
|
+
|
|
10
|
+
**Auto-Apply That Ends on an Interview**
|
|
11
|
+
|
|
12
|
+
**Stop applying. Start interviewing.**
|
|
13
|
+
|
|
14
|
+
Score your resume the way the screening software scores it, rewrite it for the exact role,
|
|
15
|
+
write the cover letter, prepare for the interview, and send the application in on the
|
|
16
|
+
employer's own hiring system. All from inside the assistant you already work in.
|
|
17
|
+
|
|
18
|
+
<br />
|
|
19
|
+
|
|
20
|
+
<img src="assets/01-stop-applying-start-interviewing.png" alt="GetMattered - stop applying, start interviewing" width="820" />
|
|
21
|
+
|
|
22
|
+
**And it keeps the employer's own confirmation.** Most tools count applications sent, which is
|
|
23
|
+
a number the tool awards itself off its own button click. This one reports what the employer's
|
|
24
|
+
system actually returned, so a real rejection is distinguishable from a form that quietly
|
|
25
|
+
dropped your application.
|
|
26
|
+
|
|
27
|
+
[](https://glama.ai/mcp/servers/aiapplyd/aiapplyd-mcp)
|
|
28
|
+
[](https://smithery.ai/servers/aiapplyd/aiapplyd)
|
|
29
|
+
[](https://registry.modelcontextprotocol.io/v0/servers?search=getmattered)
|
|
30
|
+
[](https://lobehub.com/mcp/aiapplyd-aiapplyd-mcp)
|
|
31
|
+
[](https://mcpservers.org/servers/aiapplyd/aiapplyd-mcp)
|
|
32
|
+
[](https://cursor.directory/plugins/ai-applyd-1)
|
|
33
|
+
[](LICENSE)
|
|
34
|
+
|
|
35
|
+
**[Listing page](https://getmattered.com/mcps)** · **[Website](https://getmattered.com)** · **[Privacy](https://getmattered.com/legal/privacy)** · **[Terms](https://getmattered.com/legal/terms)**
|
|
36
|
+
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
Most applicants are screened out by software before a person reads a word, and a good number
|
|
42
|
+
are never screened at all, because the form silently dropped a required field or the upload
|
|
43
|
+
never attached. From the candidate's side those look identical to rejection, which is why so
|
|
44
|
+
many people rewrite a CV nobody ever read.
|
|
45
|
+
|
|
46
|
+
This server puts both halves of that process in your hands: the screening, and the proof that
|
|
47
|
+
the application arrived.
|
|
48
|
+
|
|
49
|
+
<div align="center">
|
|
50
|
+
|
|
51
|
+
<img src="assets/02-only-roles-that-actually-fit.png" alt="Only roles that actually fit, scored before you see them" width="49%" />
|
|
52
|
+
<img src="assets/03-the-company-confirmed-it.png" alt="The employer's own system confirming an application arrived" width="49%" />
|
|
53
|
+
|
|
54
|
+
<img src="assets/04-sent-means-they-got-it.png" alt="Sent means they got it: every application carries the employer's confirmation" width="49%" />
|
|
55
|
+
<img src="assets/05-we-apply-where-the-jobs-live.webp" alt="It applies on 30+ hiring systems, where the jobs actually live" width="49%" />
|
|
56
|
+
|
|
57
|
+
<img src="assets/06-you-always-know-where-you-stand.png" alt="You always know where every application stands" width="49%" />
|
|
58
|
+
<img src="assets/07-they-wrote-back-an-interview.png" alt="They wrote back: an interview, not a no" width="49%" />
|
|
59
|
+
|
|
60
|
+
<img src="assets/08-wake-up-to-interviews.png" alt="Wake up to interviews" width="820" />
|
|
61
|
+
|
|
62
|
+
<sub>From the first match to the interview invite. Every application carries the employer's own confirmation.</sub>
|
|
63
|
+
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
Every application goes in on the company's real careers page, under your name, with your own
|
|
67
|
+
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**.
|
|
68
|
+
|
|
69
|
+
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.
|
|
70
|
+
|
|
71
|
+
**The whole job search in five calls:** see your matches (`getmattered_get_matches`), apply to one
|
|
72
|
+
(`getmattered_apply`, sent automatically or held for your yes), approve or reject what is waiting
|
|
73
|
+
(`getmattered_review_application`), track every application to the employer's own receipt
|
|
74
|
+
(`getmattered_get_applications`), and check your plan and what is left (`getmattered_get_account`).
|
|
75
|
+
The full list is under [Tools](#tools).
|
|
76
|
+
|
|
77
|
+
## Watch the demo
|
|
78
|
+
|
|
79
|
+
[](https://www.youtube.com/watch?v=xt1pbpVzf4I)
|
|
80
|
+
|
|
81
|
+
90 seconds: resume upload, job matching, a real application sent on the employer's own form, the
|
|
82
|
+
employer's confirmation email, interview prep, and applying from ChatGPT, Claude and Cursor.
|
|
83
|
+
|
|
84
|
+
## Quick start
|
|
85
|
+
|
|
86
|
+
One click, if your app supports it:
|
|
87
|
+
|
|
88
|
+
[](https://cursor.com/install-mcp?name=getmattered&config=eyJ1cmwiOiJodHRwczovL21jcC5nZXRtYXR0ZXJlZC5jb20vbWNwIn0=)
|
|
89
|
+
[](https://insiders.vscode.dev/redirect/mcp/install?name=getmattered&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A//mcp.getmattered.com/mcp%22%7D)
|
|
90
|
+
[](https://poke.com/integrations/new?name=GetMattered&url=https%3A%2F%2Fmcp.getmattered.com%2Fmcp)
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
GetMattered is a **hosted remote MCP server**. Point your client at one URL:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
https://mcp.getmattered.com/mcp
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The first tool call opens an OAuth sign-in. Sign in with Google, and you are connected.
|
|
100
|
+
A free account needs no card and arrives with a one-time 10,000-token starter grant.
|
|
101
|
+
|
|
102
|
+
### Claude (web, Desktop, Code)
|
|
103
|
+
|
|
104
|
+
**Settings → Connectors → Add custom connector**
|
|
105
|
+
|
|
106
|
+
| Field | Value |
|
|
107
|
+
|---|---|
|
|
108
|
+
| Name | `GetMattered` |
|
|
109
|
+
| Remote MCP server URL | `https://mcp.getmattered.com/mcp` |
|
|
110
|
+
|
|
111
|
+
In Claude Code, one line does it:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
claude mcp add --transport http getmattered https://mcp.getmattered.com/mcp
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Cursor
|
|
118
|
+
|
|
119
|
+
`~/.cursor/mcp.json`:
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"getmattered": {
|
|
125
|
+
"url": "https://mcp.getmattered.com/mcp"
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### ChatGPT
|
|
132
|
+
|
|
133
|
+
**Settings → Connectors → Create** and paste `https://mcp.getmattered.com/mcp`. ChatGPT speaks MCP
|
|
134
|
+
natively, so there is no Action schema to import and nothing to host.
|
|
135
|
+
|
|
136
|
+
### VS Code
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
code --add-mcp '{"name":"getmattered","type":"http","url":"https://mcp.getmattered.com/mcp"}'
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Plugin for Codex, ChatGPT, Claude Code and Cursor
|
|
143
|
+
|
|
144
|
+
This repository is a plugin marketplace. The `getmattered` plugin bundles the MCP server with fourteen
|
|
145
|
+
skills, in the portable `plugin.json` format that Codex, ChatGPT, Claude Code and Cursor read:
|
|
146
|
+
|
|
147
|
+
| Skill | Use it when |
|
|
148
|
+
|---|---|
|
|
149
|
+
| [`using-getmattered`](plugins/getmattered/skills/using-getmattered/SKILL.md) | You want the assistant to pick the right tool and order for your request |
|
|
150
|
+
| [`setup-job-search`](plugins/getmattered/skills/setup-job-search/SKILL.md) | You want to set your base resume, finish your profile or check readiness |
|
|
151
|
+
| [`find-matching-jobs`](plugins/getmattered/skills/find-matching-jobs/SKILL.md) | You want your job matches, want to save or skip one, or want to change what it looks for |
|
|
152
|
+
| [`apply-to-a-job`](plugins/getmattered/skills/apply-to-a-job/SKILL.md) | You want to apply, or you paste a job link and say "apply" |
|
|
153
|
+
| [`review-and-send`](plugins/getmattered/skills/review-and-send/SKILL.md) | You want to see what is waiting for you, change it, and send it |
|
|
154
|
+
| [`tailor-for-a-job`](plugins/getmattered/skills/tailor-for-a-job/SKILL.md) | You want a posting analysis, an ATS score or a resume rewrite for one role |
|
|
155
|
+
| [`track-applications`](plugins/getmattered/skills/track-applications/SKILL.md) | You ask "did it go through", or how many applications you have left |
|
|
156
|
+
| [`write-cover-letter`](plugins/getmattered/skills/write-cover-letter/SKILL.md) | You want a letter for one job or changes to an existing letter |
|
|
157
|
+
| [`prepare-for-interview`](plugins/getmattered/skills/prepare-for-interview/SKILL.md) | You want role-specific questions and to practise answers from your own experience |
|
|
158
|
+
| [`handle-recruiter-replies`](plugins/getmattered/skills/handle-recruiter-replies/SKILL.md) | An employer wrote back and you want to read it and send a reply you approved |
|
|
159
|
+
| [`follow-up-on-applications`](plugins/getmattered/skills/follow-up-on-applications/SKILL.md) | An application has gone quiet and you want to follow up |
|
|
160
|
+
| [`manage-saved-searches`](plugins/getmattered/skills/manage-saved-searches/SKILL.md) | You want to save a search and get emailed about its new jobs |
|
|
161
|
+
| [`translate-resume`](plugins/getmattered/skills/translate-resume/SKILL.md) | You want your resume in another language |
|
|
162
|
+
| [`build-resume-document`](plugins/getmattered/skills/build-resume-document/SKILL.md) | You want a private editable summary draft, with a builder page to review before export |
|
|
163
|
+
|
|
164
|
+
The hosted skill index is at
|
|
165
|
+
[`getmattered.com/.well-known/agent-skills/index.json`](https://getmattered.com/.well-known/agent-skills/index.json).
|
|
166
|
+
The plugin files are in `plugins/getmattered/skills/`. The root `skills/` link points to that same
|
|
167
|
+
directory so Gemini CLI discovers the workflows without a second set of skill files.
|
|
168
|
+
|
|
169
|
+
Skills check account limits before metered work and get approval before credit-consuming actions
|
|
170
|
+
or sending an application. Installing a plugin does not buy a GetMattered plan. Public directory
|
|
171
|
+
approval is separate from installing this repository directly.
|
|
172
|
+
|
|
173
|
+
Codex:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
codex plugin marketplace add getmattered/getmattered-mcp
|
|
177
|
+
codex plugin add getmattered@getmattered
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Claude Code:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
claude plugin marketplace add getmattered/getmattered-mcp
|
|
184
|
+
claude plugin install getmattered@getmattered
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Codex (CLI, IDE extension and the ChatGPT desktop app)
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
codex mcp add getmattered --url https://mcp.getmattered.com/mcp
|
|
191
|
+
codex mcp login getmattered
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
The Codex CLI, the IDE extension and the ChatGPT desktop app share this configuration.
|
|
195
|
+
|
|
196
|
+
### Gemini CLI
|
|
197
|
+
|
|
198
|
+
This repository is also a Gemini CLI extension (`gemini-extension.json`, `GEMINI.md` and the same
|
|
199
|
+
fourteen skills):
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
gemini extensions install https://github.com/getmattered/getmattered-mcp
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Or add the server by hand in `~/.gemini/settings.json`:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"mcpServers": {
|
|
210
|
+
"getmattered": { "httpUrl": "https://mcp.getmattered.com/mcp" }
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Zed
|
|
216
|
+
|
|
217
|
+
**Settings → AI → MCP Servers → Add Remote Server**, then paste `https://mcp.getmattered.com/mcp`.
|
|
218
|
+
|
|
219
|
+
### Windsurf
|
|
220
|
+
|
|
221
|
+
`~/.codeium/windsurf/mcp_config.json`:
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"mcpServers": {
|
|
226
|
+
"getmattered": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.getmattered.com/mcp"] }
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Perplexity, Mistral Le Chat and Raycast
|
|
232
|
+
|
|
233
|
+
Each has a custom connector screen that takes a remote MCP URL. Paste
|
|
234
|
+
`https://mcp.getmattered.com/mcp` and choose OAuth.
|
|
235
|
+
|
|
236
|
+
### From your phone: iMessage, Telegram and WhatsApp
|
|
237
|
+
|
|
238
|
+
- **iMessage / SMS:** [add GetMattered to Poke in one tap](https://poke.com/integrations/new?name=GetMattered&url=https%3A%2F%2Fmcp.getmattered.com%2Fmcp)
|
|
239
|
+
(or `npx poke@latest mcp add https://mcp.getmattered.com/mcp -n "GetMattered"`), sign in, then text Poke:
|
|
240
|
+
"find me remote product designer jobs and apply to the best two".
|
|
241
|
+
- **Telegram, WhatsApp or iMessage on your own server:** [OpenClaw](https://github.com/SamurAIGPT/awesome-openclaw)
|
|
242
|
+
is a self-hosted gateway. Add the URL as an MCP server and enable the channel you use.
|
|
243
|
+
|
|
244
|
+
### Any client that only speaks stdio
|
|
245
|
+
|
|
246
|
+
This repository ships a thin bridge. It relays the protocol to the hosted server and adds
|
|
247
|
+
nothing of its own.
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
npx -y github:getmattered/getmattered-mcp
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
Or with Docker:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
docker build -t getmattered-mcp .
|
|
257
|
+
docker run --rm -i getmattered-mcp
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```json
|
|
261
|
+
{
|
|
262
|
+
"mcpServers": {
|
|
263
|
+
"getmattered": {
|
|
264
|
+
"command": "docker",
|
|
265
|
+
"args": ["run", "--rm", "-i", "getmattered-mcp"]
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
| Environment variable | Default | Meaning |
|
|
272
|
+
|---|---|---|
|
|
273
|
+
| `GETMATTERED_MCP_URL` | `https://mcp.getmattered.com/mcp` | Endpoint 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. |
|
|
274
|
+
| `GETMATTERED_TOKEN` | unset | Optional 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. |
|
|
275
|
+
|
|
276
|
+
## Command line and bots
|
|
277
|
+
|
|
278
|
+
The same package is a small CLI, so a script, a cron job or a chat bot (Telegram, WhatsApp,
|
|
279
|
+
iMessage) can run the whole job search without an MCP client.
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
npx getmattered-mcp login # sign in once in the browser
|
|
283
|
+
npx getmattered-mcp tools # list the tools
|
|
284
|
+
npx getmattered-mcp call getmattered_get_matches '{"limit": 5}' # matched jobs as JSON
|
|
285
|
+
npx getmattered-mcp call getmattered_apply '{"job_match_id": 123, "mode": "review"}'
|
|
286
|
+
npx getmattered-mcp call getmattered_get_applications '{"status": "waiting_for_review"}'
|
|
287
|
+
npx getmattered-mcp call getmattered_review_application '{"decision": "approve", "application_ids": [456]}'
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
`login` runs the same OAuth sign-in a desktop client runs and stores the token in
|
|
291
|
+
`~/.config/getmattered/credentials.json` (mode 600). It refreshes on its own, so an unattended bot
|
|
292
|
+
keeps working. `call` prints the tool's structured result as JSON. Exit code 0 means success,
|
|
293
|
+
1 means the tool reported an error, 2 means you are not signed in.
|
|
294
|
+
|
|
295
|
+
Run with no arguments and it is a stdio MCP server that relays to `https://mcp.getmattered.com/mcp`,
|
|
296
|
+
signed in with the stored login. `GETMATTERED_TOKEN` overrides the stored login and
|
|
297
|
+
`GETMATTERED_MCP_URL` overrides the endpoint.
|
|
298
|
+
|
|
299
|
+
### Renamed from AI Applyd
|
|
300
|
+
|
|
301
|
+
AI Applyd is now GetMattered, and the npm package `aiapplyd-mcp` is now `getmattered-mcp`.
|
|
302
|
+
Existing setups keep working:
|
|
303
|
+
|
|
304
|
+
- The package installs two commands, `getmattered-mcp` and the old `aiapplyd-mcp`. Both run the same code.
|
|
305
|
+
- Tool ids are `getmattered_<name>`. `call` also accepts the old `aiapplyd_<name>` ids and runs
|
|
306
|
+
whichever name the server lists.
|
|
307
|
+
- `GETMATTERED_TOKEN` and `GETMATTERED_MCP_URL` replace `AIAPPLYD_TOKEN` and `AIAPPLYD_MCP_URL`.
|
|
308
|
+
The old names are still read when the new ones are unset.
|
|
309
|
+
- A sign-in stored by an older version in `~/.config/aiapplyd/credentials.json` is still read.
|
|
310
|
+
The next `login` or token refresh writes `~/.config/getmattered/credentials.json`.
|
|
311
|
+
|
|
312
|
+
## Endpoints
|
|
313
|
+
|
|
314
|
+
| Environment | Streamable HTTP (modern) | SSE (legacy bridges) |
|
|
315
|
+
|---|---|---|
|
|
316
|
+
| Production | `https://mcp.getmattered.com/mcp` | `https://mcp.getmattered.com/sse` |
|
|
317
|
+
| Preview | `https://mcp-preview.getmattered.com/mcp` | `https://mcp-preview.getmattered.com/sse` |
|
|
318
|
+
|
|
319
|
+
Use `/mcp`. `/sse` remains only for clients that cannot speak Streamable HTTP.
|
|
320
|
+
|
|
321
|
+
## Tools
|
|
322
|
+
|
|
323
|
+
The table below is generated from the live `tools/list` of `https://mcp.getmattered.com/mcp`.
|
|
324
|
+
Every tool runs on the caller's own GetMattered account. Reading matches, applications
|
|
325
|
+
and account limits does not run AI generation. AI work and applications use the
|
|
326
|
+
account's allowance. Tool calls require sign-in; introspection is public.
|
|
327
|
+
|
|
328
|
+
### The main loop
|
|
329
|
+
|
|
330
|
+
Five tools run the whole job search from a chat, or from a bot where a match drops and you
|
|
331
|
+
reply "yes":
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
getmattered_get_matches -> getmattered_apply -> getmattered_get_applications -> getmattered_review_application
|
|
335
|
+
getmattered_get_account (plan, what is left, readiness)
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
| Tool | Title | Hints | What it does |
|
|
339
|
+
|---|---|---|---|
|
|
340
|
+
| `getmattered_get_matches` | Get Job Matches | read-only, idempotent | Your matched jobs, best first, each with the `job_match_id` that apply takes. Also reads full postings, or any posting from a link |
|
|
341
|
+
| `getmattered_apply` | Apply to Job | **destructive**, open-world | Apply 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 |
|
|
342
|
+
| `getmattered_get_applications` | Get Applications | read-only, idempotent | Every application and where it stands, the review queue, and the employer's own confirmation when it exists |
|
|
343
|
+
| `getmattered_review_application` | Approve or Reject Applications | **destructive**, open-world | Approve (send) or reject waiting applications, up to 25 at once. Also cancel, refine a document, re-prepare, or record the interview stage |
|
|
344
|
+
| `getmattered_get_account` | Get Account | read-only, idempotent | Your plan, token balance, applications left, job preferences, and whether your profile is ready to apply |
|
|
345
|
+
| `getmattered_get_inbox` | Get Recruiter Inbox | read-only, idempotent | The emails employers send about your applications, with the full conversation and suggested replies |
|
|
346
|
+
| `getmattered_reply_to_email` | Reply to an Employer Email | **destructive**, open-world | Sends your reply to an employer from your GetMattered address, only after you approve the exact text |
|
|
347
|
+
| `getmattered_manage_follow_ups` | Follow Up on Applications | **destructive**, open-world | Lists applications that went quiet, drafts a follow-up, and sends it once you approve it |
|
|
348
|
+
|
|
349
|
+
### Setup and triage
|
|
350
|
+
|
|
351
|
+
| Tool | Title | Hints | What it does |
|
|
352
|
+
|---|---|---|---|
|
|
353
|
+
| `getmattered_set_resume` | Set Resume | writes, open-world | Put your resume on your account as the base every application is tailored from: pasted text, a file link, or a saved resume |
|
|
354
|
+
| `getmattered_triage_matches` | Save or Skip Matches | writes, idempotent | Save a match, or skip it with a reason, so a job you declined stops coming back |
|
|
355
|
+
| `getmattered_update_job_preferences` | Update Job Preferences | **destructive**, idempotent | Point GetMattered at the roles, locations, salary and seniority you want, and re-run discovery |
|
|
356
|
+
| `getmattered_update_application_profile` | Update Application Profile | writes, idempotent | Reads or saves the answers employer forms ask for. EEO answers are optional and accept prefer not to say |
|
|
357
|
+
| `getmattered_update_auto_apply` | Update Auto Apply | **destructive**, idempotent | Turns Auto Apply on or off and sets whether applications go out on their own or wait for your review |
|
|
358
|
+
| `getmattered_manage_saved_searches` | Manage Saved Searches | writes | Saves your job preferences as named searches, with email alerts for new matches |
|
|
359
|
+
|
|
360
|
+
### Resume, cover letter and interview
|
|
361
|
+
|
|
362
|
+
| Tool | Title | Hints | What it does |
|
|
363
|
+
|---|---|---|---|
|
|
364
|
+
| `getmattered_score_resume` | Score Resume | writes, open-world | An ATS score with section scores, the keywords you match and the ones you are missing, and what to change |
|
|
365
|
+
| `getmattered_analyze_job_description` | Analyze Job Description | writes, open-world | What a posting screens on, in its own language, so the resume can mirror it |
|
|
366
|
+
| `getmattered_optimize_resume` | Optimize Resume with AI | writes, open-world | A resume rewritten to pass ATS screening and still reach a human reader |
|
|
367
|
+
| `getmattered_generate_interview_questions` | Generate Interview Questions | writes, open-world | The questions this role is asked, with answer guidance, STAR scenarios and negotiation prep |
|
|
368
|
+
| `getmattered_translate_resume` | Translate Resume | writes, open-world | Translates your resume into another language as a separate document. Works from the resume on file, or a resume pasted or attached in chat |
|
|
369
|
+
| `getmattered_generate_cover_letter` | Generate Cover Letter | writes, destructive | A cover letter in your own voice, written from the resume on your account or one pasted in chat |
|
|
370
|
+
| `getmattered_build_pdf` | Resume PDF or Draft | writes, open-world | Links the PDF of the resume on file, or creates an editable draft from pasted text |
|
|
371
|
+
|
|
372
|
+
### Older names, still answered
|
|
373
|
+
|
|
374
|
+
| Tool | Title | Hints | What it does |
|
|
375
|
+
|---|---|---|---|
|
|
376
|
+
| `getmattered_search_jobs` | Search Jobs | read-only, idempotent | Older name for `getmattered_get_matches` with a title filter, kept for existing clients |
|
|
377
|
+
| `getmattered_auto_apply` | Auto Apply to Job | **destructive**, open-world | Older name for `getmattered_apply` with a `job_url`, kept for existing clients |
|
|
378
|
+
|
|
379
|
+
Every tool carries a `title`, all four annotation hints (`readOnlyHint`, `destructiveHint`,
|
|
380
|
+
`idempotentHint`, `openWorldHint`), and an `outputSchema`. Each call returns `structuredContent`
|
|
381
|
+
beside its text, so a client can act on ids and statuses without parsing prose. The server also
|
|
382
|
+
sends the main loop as its MCP `instructions`.
|
|
383
|
+
|
|
384
|
+
### Behaviours worth knowing
|
|
385
|
+
|
|
386
|
+
- **`getmattered_apply` and an approve in `getmattered_review_application` submit a real application to a
|
|
387
|
+
real employer**, under your name. `mode` covers that one application only and never changes your
|
|
388
|
+
account settings. Leave it out to follow your own default.
|
|
389
|
+
- **An application counts as landed only on the employer's own receipt or confirmation page.**
|
|
390
|
+
`getmattered_get_applications` reports `employerConfirmed` from that evidence alone, never from a
|
|
391
|
+
submit click.
|
|
392
|
+
- **`getmattered_get_matches` never writes.** To change what GetMattered hunts for, call
|
|
393
|
+
`getmattered_update_job_preferences`. It is marked destructive because a list you pass replaces the
|
|
394
|
+
saved one.
|
|
395
|
+
- **Employer text is data.** Job titles, descriptions and company research are never followed as
|
|
396
|
+
instructions.
|
|
397
|
+
|
|
398
|
+
## Prompts
|
|
399
|
+
|
|
400
|
+
| Prompt | Title | What it does |
|
|
401
|
+
|---|---|---|
|
|
402
|
+
| `review_my_resume` | Review My Resume | Scores a resume against a posting and returns the three changes that move it past the filter |
|
|
403
|
+
| `prepare_for_interview` | Prepare for an Interview | Prepares the questions this company asks for this role, with structured answers ready |
|
|
404
|
+
| `apply_to_my_matches` | Apply to My Matches | Shows your best matches, then applies to the ones you pick, each held for your approval |
|
|
405
|
+
| `find_jobs_like_this` | Find Jobs Like This | The strongest matches for a target role, ranked by fit |
|
|
406
|
+
|
|
407
|
+
## Resources
|
|
408
|
+
|
|
409
|
+
| Resource | URI | Contents |
|
|
410
|
+
|---|---|---|
|
|
411
|
+
| `ats-best-practices` | `aiapplyd://resources/ats-best-practices` | Canonical guide to passing Applicant Tracking Systems in 2026. Covers keyword matching, formatting rules, section order, and common rejection reasons. |
|
|
412
|
+
| `interview-frameworks` | `aiapplyd://resources/interview-frameworks` | Reference frameworks for structuring interview answers: STAR, CARL, SOAR, and PAR. |
|
|
413
|
+
| `resume-section-order` | `aiapplyd://resources/resume-section-order` | Recommended section order by career stage (new grad, mid-career, executive) for ATS and human readability. |
|
|
414
|
+
|
|
415
|
+
## Authentication
|
|
416
|
+
|
|
417
|
+
OAuth 2.1, and it is the full specification rather than a subset:
|
|
418
|
+
|
|
419
|
+
- PKCE with S256, mandatory
|
|
420
|
+
- Dynamic Client Registration ([RFC 7591](https://www.rfc-editor.org/rfc/rfc7591)), so a client
|
|
421
|
+
registers itself with no manual key exchange
|
|
422
|
+
- Authorization Server Metadata ([RFC 8414](https://www.rfc-editor.org/rfc/rfc8414)) and
|
|
423
|
+
Protected Resource Metadata ([RFC 9728](https://www.rfc-editor.org/rfc/rfc9728)) discovery
|
|
424
|
+
- Client ID Metadata Documents, so a client can use an https URL as its `client_id` instead of
|
|
425
|
+
registering (`client_id_metadata_document_supported: true`)
|
|
426
|
+
- The `iss` parameter on the authorization response ([RFC 9207](https://www.rfc-editor.org/rfc/rfc9207))
|
|
427
|
+
- Token revocation ([RFC 7009](https://www.rfc-editor.org/rfc/rfc7009))
|
|
428
|
+
- Short-lived access tokens with rotating refresh tokens and reuse detection
|
|
429
|
+
|
|
430
|
+
An unauthenticated `tools/call` returns HTTP 401 with a `WWW-Authenticate` header pointing at
|
|
431
|
+
the metadata document. Introspection (`initialize`, `tools/list`, `prompts/list`,
|
|
432
|
+
`resources/list`) is open, so any directory or client can read the tool surface before a user
|
|
433
|
+
signs in.
|
|
434
|
+
|
|
435
|
+
## Verify it yourself
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
SID=$(curl -s -D- -o /dev/null -X POST https://mcp.getmattered.com/mcp \
|
|
439
|
+
-H 'Content-Type: application/json' \
|
|
440
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
441
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}' \
|
|
442
|
+
| grep -i '^mcp-session-id' | tr -d '\r' | awk '{print $2}')
|
|
443
|
+
|
|
444
|
+
curl -s -X POST https://mcp.getmattered.com/mcp \
|
|
445
|
+
-H 'Content-Type: application/json' \
|
|
446
|
+
-H 'Accept: application/json, text/event-stream' \
|
|
447
|
+
-H "Mcp-Session-Id: $SID" \
|
|
448
|
+
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
## Privacy
|
|
452
|
+
|
|
453
|
+
Your resume and profile stay on your GetMattered account. Tools read and write that account and
|
|
454
|
+
nothing else. The [privacy policy](https://getmattered.com/legal/privacy) and
|
|
455
|
+
[terms](https://getmattered.com/legal/terms) are the binding statement.
|
|
456
|
+
|
|
457
|
+
## Support
|
|
458
|
+
|
|
459
|
+
- Issues: [github.com/getmattered/getmattered-mcp/issues](https://github.com/getmattered/getmattered-mcp/issues)
|
|
460
|
+
- Email: support@getmattered.com
|
|
461
|
+
|
|
462
|
+
## Follow GetMattered
|
|
463
|
+
|
|
464
|
+
- Website: [getmattered.com](https://getmattered.com)
|
|
465
|
+
- Pricing: [getmattered.com/pricing](https://getmattered.com/pricing)
|
|
466
|
+
- Blog: [getmattered.com/blog](https://getmattered.com/blog)
|
|
467
|
+
- X: [@aiapplydHQ](https://x.com/aiapplydHQ)
|
|
468
|
+
- LinkedIn: [GetMattered](https://www.linkedin.com/company/aiapplyd/)
|
|
469
|
+
- YouTube: [@aiapplyd](https://www.youtube.com/@aiapplyd)
|
|
470
|
+
- TikTok: [@aiapplydhq](https://www.tiktok.com/@aiapplydhq)
|
|
471
|
+
- Instagram: [@aiapplyd](https://www.instagram.com/aiapplyd)
|
|
472
|
+
- Discord: [join the community](https://discord.gg/ZXBsKvuvCD)
|
|
473
|
+
|
|
474
|
+
## About this repository
|
|
475
|
+
|
|
476
|
+
The hosted server runs on Cloudflare Workers and its source is not public. This repository is
|
|
477
|
+
the public home of the MCP server: the `server.json` manifest, the connection documentation,
|
|
478
|
+
and the small stdio bridge above. The bridge is MIT licensed and forwards messages verbatim,
|
|
479
|
+
so you can read every line of what runs on your machine.
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## More from GetMattered
|
|
484
|
+
|
|
485
|
+
- [GetMattered](https://getmattered.com) - auto-apply that ends on an interview
|
|
486
|
+
- [How the MCP server works](https://getmattered.com/mcps) - setup for Claude, ChatGPT and Cursor
|
|
487
|
+
- [Pricing](https://getmattered.com/pricing) - free to start, no card
|
|
488
|
+
- [Blog](https://getmattered.com/blog) - how hiring systems actually screen you
|
|
489
|
+
- [FAQ](https://getmattered.com/faq) - resume parsing, ATS behaviour, what "application received" means
|
|
490
|
+
- [Compare](https://getmattered.com/vs) - GetMattered against the other job-application tools
|
|
491
|
+
- [Four things that cost us money while automating job applications](https://dev.to/aiapplyd/four-things-that-cost-us-money-while-automating-job-applications-1l51) - engineering write-up
|
|
492
|
+
|
|
493
|
+
Built by [GetMattered](https://getmattered.com). Questions: [ava@getmattered.com](mailto:ava@getmattered.com)
|