arkerah
Your ranked corporate job matches in five European countries, read from your AI assistant.
Hosted MCP Server
npx add-mcp 'https://app.arkerah.com/api/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Connect your AI assistant to arkerah
The arkerah MCP server lets an AI assistant that speaks the Model Context Protocol, such as Claude, work with your own arkerah account. It can read your ranked jobs, one job in full, why some jobs are not shown to you and what arkerah knows about you. It can suggest three changes, and nothing changes until you confirm it in arkerah.
What is the arkerah MCP server?
It is one address, https://app.arkerah.com/api/mcp, that speaks the Model Context Protocol over Streamable HTTP. A client that can either sign in with OAuth or send a bearer token can connect to it: claude.ai, Claude Desktop and Claude Code are the ones it was built for.
Each tool calls the same function the arkerah app calls. Your assistant sees the list the map shows you, ranked the same way and with your own filters applied, and nothing about anybody else.
The server keeps nothing between two calls, and it reads only a bearer token. A browser cookie sent to it is ignored, so a web page cannot ride your signed-in session into it. What your assistant reads leaves arkerah and goes to that assistant's provider, under its own terms.
What can your assistant read?
Five tools read, and none of them changes anything.
| Tool | What it takes | What it returns |
|---|---|---|
search_jobs | Optionally a place (a city, a province, or a country code such as NL) and a limit, up to 50 | Your ranked jobs: title, company, place, rank, posted date and the LinkedIn link |
job_details | The id search_jobs returned | One job in full: the advert's text, its requirements, the languages it asks for, salary if stated, level and link |
why_not | A plain question, such as sales jobs in Amsterdam | Jobs you are not shown, and which of your own filters stands in the way of each |
what_you_know_about_me | Nothing | Every live fact arkerah holds about you, by topic, and whether you stated it, it was read from a document, or it was inferred |
count_jobs | A level (country, region or city), optionally inside one place | How many of your jobs there are per place: the numbers on the map |
Looking does not mark a job as seen, does not rebuild how you are matched, and calls no language model. The only things a call writes about you are when the token was last used and how many calls it has made this hour.
What can it suggest, and how do you confirm?
hide_company: stop showing jobs at the company of a job it names.show_company_again: show a company you hid.correct_fact: correct something arkerah holds about you, or add something new.
None of them changes anything by itself. Each one puts a card in your arkerah support chat that opens with Your AI assistant asked for this and names exactly what would change. Open the support chat, the search glass at the top right, and press Save on a fact or Yes, do it on an action. Not this turns it down. A card can be answered once.
Why not trust the assistant's own approval prompt? Because it can be set to always allow, it shows the model's arguments rather than the change in words, and it is the assistant asking to call arkerah, not arkerah asking you about your own record. The prompt still helps as a first filter. It is just not your yes.
correct_fact makes one model call to read what it was given, the same call the support chat makes, and it shares the chat's limit of 60 an hour, so an assistant cannot spend more than you typing could.
What can it never do?
- Delete your account, change your password or your email, or generate a CV. There is no tool for any of them, and a call by one of those names is refused.
- Apply for a job. arkerah never applies for you.
- Read anyone else's account. Every token belongs to one account, and every tool runs as that account.
- Change anything through a read tool.
- Make more than 300 calls an hour on one token or one connected app. Past that it is told to try again later, with a time to wait.
How do you connect Claude in claude.ai or Claude Desktop?
- Open Settings, then Connectors, then Add custom connector.
- Paste the address
https://app.arkerah.com/api/mcp. Leave the client ID and the client secret empty. - Claude finds arkerah's sign-in by itself and opens arkerah's consent screen. If you are signed out, sign in with your email or with Google first, and you come back to the same screen.
- Read what the screen says the app may do, then press Allow, or No thanks.
That is all. The app now appears in arkerah under Settings, Connect an AI assistant, Connected apps, where you can disconnect it at any time.
How do you connect Claude Code or another local client?
Make a personal token in arkerah: open Settings, then Connect an AI assistant, give the token a name and press Make a token. It is shown once, so copy it then. Settings prints the exact command with your token in it. For Claude Code it is:
claude mcp add --transport http arkerah https://app.arkerah.com/api/mcp \
--header "Authorization: Bearer ark_pat_YOUR_TOKEN"
Any other client that can set a header works the same way: send the token as Authorization: Bearer. In a .mcp.json file it looks like this:
{
"mcpServers": {
"arkerah": {
"type": "http",
"url": "https://app.arkerah.com/api/mcp",
"headers": { "Authorization": "Bearer ark_pat_YOUR_TOKEN" }
}
}
}
Claude Code can sign in with OAuth instead: run the same command without the header, then type /mcp to sign in. You can hold up to five personal tokens at once.
How do OAuth and consent work?
arkerah is its own sign-in server, following the MCP authorization specification. When a client calls without a valid token, arkerah answers 401 and points to a document that says where to sign in. The client registers itself, then sends you to arkerah's consent screen with a one-time PKCE challenge, so a code it receives is useless to anybody else.
The consent screen shows the app's name, your account, where the answer goes, and what each permission allows. Allow sends the app a code that works once and lasts five minutes. The app swaps it for an access token that lasts an hour and a refresh token that lasts 30 days.
| Permission | What the consent screen says |
|---|---|
| read | Read your ranked jobs, one job in full, why jobs are not shown to you, and what arkerah knows about you. |
| propose | Suggest a change, like hiding a company or correcting something about you. Nothing changes until you confirm it in arkerah's support chat. |
Tokens are stored only as a one-way hash. A refresh token works once, and if one is ever presented twice, arkerah ends the whole connection, because it means two parties hold it. Each token works only at arkerah's own MCP address. An app that asks for read alone is not offered the three suggestion tools.
| Compared | OAuth, a custom connector | A personal token |
|---|---|---|
| Made for | claude.ai and Claude Desktop | Claude Code, or any client that can send a header |
| How you get it | Sign in and press Allow | Settings, Make a token, shown once |
| How long it lasts | An hour, renewed by a 30-day refresh token while in use | Until you revoke it |
| What it may do | Read and propose, or read only if the app asks | Read and propose |
| Limit | 300 calls an hour per connected app | 300 calls an hour per token, five tokens at most |
| How to end it | Disconnect | Revoke |
How do you disconnect an assistant?
In arkerah, open Settings, then Connect an AI assistant. Each app you connected with OAuth is listed under Connected apps, with the day it connected, when it was last used, and whether it can suggest changes. Disconnect ends every token that app holds, on its next call.
Each personal token is listed with its name, its last four characters and when it was last used. Revoke ends it, and the very next call with it is refused.
Deleting your account deletes every token and every connection with it. Your export lists the apps and tokens you had, never the tokens themselves.
What does it not do yet?
search_jobsreturns up to 50 jobs at a time, with no paging. Narrow by place to see more.- An app cannot revoke its own token over the API. You disconnect it in Settings.
- A card in the support chat says Your AI assistant asked for this, not which assistant.
Questions
Which assistants can connect?
Any MCP client that speaks Streamable HTTP and can either sign in with OAuth or send a bearer token. claude.ai, Claude Desktop and Claude Code are the clients it was built for.
Does my assistant see other people's data?
No. Every token belongs to one account, and every tool runs as that account.
Can my assistant change my profile without asking me?
No. A suggestion is a card in your support chat, and only your Save or Yes, do it makes the change.
Does connecting an assistant cost anything?
No. arkerah is free while it is in early access, and that includes connecting an assistant.
Does an assistant reading my jobs mark them as seen?
No. The read tools change nothing on your list, including what counts as new.
What happens to a connection if I delete my account?
It goes with the account, at once, along with every personal token.