The Model Context Protocol, MCP, is a standard way for an AI client such as Claude to use another service’s tools. Zorlya runs an MCP server, so the job feed, your match scores and your application board can be read and updated from the chat window you already work in. You ask in plain words. The client picks the tools.
This post covers what the server offers, how signing in works, and what it will and will not do on your behalf.
Updated 18 October 2026: the server moved to https://mcp.zorlya.com, and sign-in now goes through a Connect page where you choose the account and the permission level. The older address, zorlya.com/mcp, no longer works.
Connecting
The server lives at one address: https://mcp.zorlya.com.
In Claude Desktop, open Settings, then Connectors, then Add custom connector, and paste that address. In Claude Code, run:
claude mcp add --transport http zorlya https://mcp.zorlya.com
Zorlya accepts the AI apps on its list: Claude, ChatGPT, Claude Code and Cursor. Each is given the address and finds the rest. For a job seeker account, connecting an AI app is part of the Pro plan: on Free or Plus the Connect page says so and no connection is made (pricing).
The first time the client calls the server, it opens a browser window. The Connect page shows the client’s name, asks which of your Zorlya accounts it should use, and asks how much it may do: read only, which is the default, or read and change. You sign in to that account, and if you chose to let it change things, Zorlya asks you to sign in again with your password or a passkey. That is the whole setup. There is no API key to copy and nothing to paste back into the client.
What happens when you approve
Signing in follows OAuth 2.1, the same standard used when you let one app use another account of yours.
- The client reads the server’s published metadata and registers itself.
- Your browser is sent to the Connect page. The client proves it is the same client that started the request using PKCE, a one-time check that stops anyone who intercepts the redirect from using it.
- Approving issues a code that works once and expires after 60 seconds. The client swaps it for an access token that lasts 1 hour and a refresh token that lasts 30 days.
- Every refresh issues a new refresh token and retires the old one, so a stolen refresh token stops working the next time the real client uses its own.
Tokens are stored on our side only as hashes, and each one works only on mcp.zorlya.com. The connection belongs to your account, not to a user id the client sends: no tool takes an account as an argument, so a client can only ever see the account that approved it.
Read and write access
There are two levels for a job seeker. Read only lets a client read your jobs, matches, profile, saved jobs, applications and notifications. Read and change lets it change a small set of things on top of that. Behind the levels are scopes named by area and action, such as applications:write; zorlya:read and zorlya:write still work as shortcuts for every area.
Read only is the default. A client that only has read access is never shown the write tools at all, so it cannot try them.
The tools
A job seeker account has 20 tools: 15 that read and 5 that write. Hiring, support and staff accounts have their own sets, 55 tools in all, and a client sees only the tools of the account you chose.
The read tools cover the feed and your own data. search_jobs searches by title, company or description, with filters for location, remote only and a minimum score. top_matches returns your highest scoring jobs, best first. get_job returns one job in full with its score broken down by part, and similar_jobs finds the postings closest in meaning to one you name. For your own side there are get_profile, search_resume, list_applications, application_timeline, pipeline_analytics, list_saved_jobs, list_notifications, list_documents and list_tracks. Two describe the feed itself: list_sources and ingest_stats.
The write tools are deliberately small. save_job and unsave_job manage bookmarks. track_application starts tracking a job or moves it to another stage on your board. add_application_note adds a note to an application’s history. mark_notifications_read clears your notifications.
Nothing on that list sends an email, applies to a job or deletes anything. (Hiring accounts have a tool that moves a candidate to another stage and emails them, so for those accounts keep the connection read only unless you mean otherwise.) Applying stays your decision, made in Zorlya or on the employer’s site.
The server also offers five resources a client can attach as context: zorlya://profile, zorlya://resume, zorlya://tracks, zorlya://sources, and zorlya://job/{job_id} for any one posting.
Four prompts to start from
Clients that support prompts will show four ready-made ones:
- review_matches reads your strongest matches above a score you choose and gives a verdict on each: apply, maybe or skip. It is told to be direct about weak ones, because a list where everything is a strong match is no use to you.
- assess_fit takes one job and sets out how well it fits and where the gaps are.
- pipeline_review reads your application board and says what needs attention.
- find_roles searches for roles matching a description, with optional location and remote filters, and shortlists the best.
Limits
Each account can make 120 reads, 30 changes and 5 deletes a minute. These numbers are not there to meter use. A model caught in a retry loop can call the same tool hundreds of times, and the limit makes that visible instead of letting it run. A call over the limit returns an error that says how long to wait.
Signing in and registering a client are limited separately, to 10 a minute from one address.
Zorlya also logs the requests an AI app makes for you, with their contents, so you can see what an app did. The privacy policy says what is kept and for how long.
What it looks like in use
A typical exchange: you ask Claude to find remote backend roles that fit you this week. It calls search_jobs with your words and a remote filter, then top_matches to rank what it found by your scores, and comes back with a short list and the reason for each. You say the second one looks right. It calls get_job to read the full posting and breakdown, and, if you ask, track_application to put it on your board as applied.
At no point did the client need your password, and at no point could it do more than the scope you approved.
Disconnecting
Every client you have approved is listed in Zorlya under Settings, Integrations, and the email you get when you connect has a link to your connections on mcp.zorlya.com. Disconnecting one revokes its tokens at once. The next call it makes fails, and it has to ask you again.
The developers page has the full tool reference, with every argument each tool takes.