Find and apply to jobs from your AI assistant
A JobShift account is required. Sign-in is OAuth, with no key.
You ask a question in the agent. JobShift answers with your profile, your credits, the job index, and your tracker. If you ask, the agent has one offer queued after telling you the cost. A standard application costs 1 credit. A complex application costs 3 credits. The exact cost is shown before you confirm. JobShift reserves the credits when it queues the application and charges them when processing starts, the same as in the app.
Pick your tool
One remote server, one address, one OAuth sign-in. These clients speak HTTP and register themselves. There is no JobShift API key to paste.
The server's eleven tools. A queued application is not a sent one: the tracker says when it actually goes out.
- Apply after you confirm. The agent tells you the cost, then waits for your agreement before it calls apply_to_job. One offer at a time. confirm must be true.
- The same credit count as the app. 1 credit for a standard offer, 3 credits for a complex offer. get_credits reads the same balance as the app, not a second wallet.
- Visible in the app. Queueing uses the same request as a right swipe. The application then shows up in the JobShift tracker.
- Credits or onboarding. Without a CV, a phone number, or preferences, the agent opens onboarding. Without a subscription or credits, it opens the page where you buy them. It never buys on its own.
- Application tracking. list_applications and get_application_status read queued, sent, blocked, or failed. The agent says sent only when the status is submitted.
- Save into the feed. save_job pins an offer to the top of the feed from its https link. That is not an application and not a separate favorites folder.
- Claude : Custom connector, with OAuth, and no key. Claude (web and app). Once it is on your Claude account, this connector also works in the Claude Desktop app and on mobile. There is no separate procedure. https://mcp.tryjobshift.com/mcp Create the JobShift account, add your CV and phone number, then finish onboarding. On Pro or Max: Customize, then Connectors, then + Add, then Add custom connector. On Free, one custom connector is the maximum. On Team or Enterprise, an Owner adds it in Organization settings, Connectors, Add, Custom, Web. Each member then connects. Name it JobShift. Paste https://mcp.tryjobshift.com/mcp. Continue. Keep the detected authentication. Under Authentication, choose Sign in now. Under OAuth client, choose Register automatically. Do not choose a published identity, and do not paste an Authorization header. Choose Add. Sign in on the JobShift page, read the consent, then allow access. In a conversation, open +, then Connectors, and turn JobShift on. Claude Code. claude mcp add --transport http --scope user jobshift https://mcp.tryjobshift.com/mcp In a terminal, add JobShift for all of your projects. The transport is http. Copy the command above. Open a Claude Code session and run /mcp. Select jobshift, then finish sign-in in the browser. You can also run claude mcp login jobshift. Do not set an Authorization header: Claude Code would use it instead of OAuth.
- ChatGPT : Custom MCP plugin, over streaming HTTP, with OAuth. On ChatGPT web, open Plugins. Select +, then Add custom MCP server. Name: JobShift. Under Connection, paste https://mcp.tryjobshift.com/mcp. The supported transport is streaming HTTP. Choose OAuth. Do not enter static credentials: ChatGPT registers itself. Confirm the warning with I understand and want to continue, then Create as a plugin. Install the plugin, then call it with @ in the conversation.
- Perplexity : Remote connector over Streamable HTTP and OAuth. Open Plugins, then Add custom, then Add MCP connector, then Remote. Name: JobShift. MCP server URL: https://mcp.tryjobshift.com/mcp. Under Advanced, set Authentication to OAuth and Transport to Streamable HTTP. Leave Client ID empty: the server accepts automatic registration. Save, then sign in on JobShift.
- Gemini CLI : Streamable HTTP in settings.json, then /mcp auth. Open ~/.gemini/settings.json, or .gemini/settings.json in the project. Current docs send url to the SSE transport, which this server rejects. httpUrl is the HTTP transport. Start Gemini CLI, then run /mcp auth jobshift. The browser opens. Sign in on JobShift and allow access. The machine needs a browser.
- Cursor : Remote URL in mcp.json. OAuth, with no token to paste. From Customize, or in ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one project. No headers and no CLIENT_ID: Cursor registers itself. Cursor opens OAuth. Sign in on JobShift and allow access. Then enable the server in Customize. Cursor asks before it uses a tool.
- n8n : MCP Client node over Streamable HTTP and OAuth. In a workflow, add the MCP Client node. A node that only offers an SSE Endpoint field cannot reach this server: it rejects the SSE stream. Server Transport: Streamable HTTP. MCP Endpoint URL: https://mcp.tryjobshift.com/mcp. Authentication: OAuth2. In the MCP OAuth2 credential, leave Use Dynamic Client Registration on. Leave Resource URL empty. Choose Connect, then allow access on JobShift.
All your JobShift offers inside your agent
Pick a request. The reply on screen is an example, with fictional offers. This page sends nothing.
- Find five communication apprenticeships in Paris, posted this week. Do not apply. Example. These offers are fictional. search_jobs returned three apprenticeships in Paris. Communications lead, Atelier Nord, 1 credit. Communications assistant, Maison Lumen, 1 credit. Content lead, Studio Brume, 3 credits. Nothing was queued. Communications lead, Atelier Nord, Paris, apprenticeship, 1 credit Communications assistant, Maison Lumen, Paris, apprenticeship, 1 credit Content lead, Studio Brume, Paris, apprenticeship, 3 credits
- Show the cost of Atelier Nord and wait for my agreement before you queue it. Example. Fictional offer. Atelier Nord costs 1 credit. 12 credits remain in this example. I will wait for your agreement before calling apply_to_job. Communications lead, Atelier Nord, Waiting for your agreement, 1 credit
- I confirm. Queue the Atelier Nord offer. Example. Fictional offer. Application queued by JobShift. It has not been sent yet. You will find it in the app tracker. Communications lead, Atelier Nord, Queued, not sent yet, 1 credit
- Save the Quai Neuf offer into my feed, without applying. Example. Fictional offer. Quai Neuf is at the top of the feed. No application was created. Editorial project lead, Quai Neuf, Pinned to the feed, no application, Saved
- Where does my Atelier Nord application stand? Example. Fictional application. Status: queued. It has not been sent. Communications lead, Atelier Nord, Status: queued, Not sent
The 11 tools
The agent reads your account, then writes only when you ask. No tool fills an ATS form, and none follows up with an employer.
- get_my_profile : Your profile. Target role, cities, level, contract, whether your CV is already in JobShift, search preferences, and subscription. Call it first.
- get_credits : Your credits. Plan, subscription, remaining credits, and total. A standard application costs 1 credit. A complex application costs 3 credits, the same as in the app. The link opens the subscription and credits page. An unknown amount stays empty. It does not become a zero balance.
- search_jobs : Search jobs. Keyword, place, company, role, level, remote, hybrid or on site, contract, annual minimum salary, and freshness. 25 jobs at most, newest first, over 14 days at most. A job with no annual salary stays in the list and is flagged. Never 0 €. With no criteria, saved preferences are used.
- get_job : Read one offer. Full description, requirements, salary when it is known, contract, and the direct apply link (ATS or the company site). Never a candidat.francetravail.fr link. If there is no direct link, the field stays empty.
- search_companies : Search companies. A company name, or a role word such as healthcare. Jobs do not store a sector: the word is matched against the name, the title, and the occupation label. Each row includes the number of open jobs.
- get_company : See one company. A profile built only from open jobs: cities, contracts, work modes, and up to 25 recent jobs. There is no separate company record.
- get_market_insights : Read the market. Jobs by month, median displayed annual salary by occupation when at least 20 jobs have an amount, companies hiring the most, and shares of remote, level, and contract. Window of 14 days at most, cached for at least 1 hour, with the computation time.
- apply_to_job : Queue one application. One offer, after the announced cost and after you confirm. JobShift queues the application with your CV, the same way a right swipe does. The honest message is that JobShift queued it, until the status is submitted. The agent does not apply on the ATS. If an answer is missing, it asks you. It does not invent it.
- get_application_status : One application status. One application: queued, in progress, sent, blocked on a question, or failed. Sent only when that is the status. The link opens the app tracker.
- save_job : Add to the feed. Saves an offer from its https link, or from an offer already in JobShift whose https link is known. It moves to the top of the feed until you act on it. This tool does not charge an application credit.
- list_applications : Your applications. Each application and its status, with a count by status for the page that was returned. 20 by default, 50 at most. Continue with the next page for a wider review.
Six guided prompts
In Claude, these prompts start a framed conversation. They send nothing on their own. For a CV or a cover letter, attach your CV: the assistant writes, and the connector supplies the job and the profile.
- coach-cv : CV coach. The agent reads your profile, then asks one question at a time. It then writes, in the conversation, a one-page CV and a 3-line pitch. It does not replace the saved CV.
- trouver-offres : Find jobs. The agent searches, opens the promising offers, notes the credit cost, and returns a short ranked list. It queues an offer only if you ask.
- recap : Recap. The agent summarizes your applications: sent, queued, blocked, failed. Blocked ones come first. It then suggests three actions. It sends nothing and follows up with nobody.
- analyser-offre : Review one job. The agent opens the job and returns the description, the requirements, the salary when it is known, the contract, and the direct link. It does not apply.
- adapter-cv : Adapt the CV. The agent reads the job and your profile, or the CV attached in the conversation. It drafts a CV in the conversation. It adds only keywords your CV can support.
- lettre-motivation : Cover letter. A short letter in the conversation, from the CV and the job. Nothing is invented, nothing is sent, and the saved CV does not change.
Before you connect
https://mcp.tryjobshift.com/mcp
- Create the account. Sign up on JobShift. Without an account, the agent sends you to sign up.
- Add your CV and phone number. The feed and queueing need both. Otherwise the agent opens onboarding.
- Save your preferences. With no criteria in the question and no preferences, search stops and sends you to finish onboarding.
- Allow access with OAuth. You sign in on the JobShift page. The agent does not receive your password. Remove the connector to stop access.
What the agent cannot do alone
The connector acts with your account, within a limit, and you can remove it.
- Confirmation. An application is queued only after the credit cost and after your agreement. One offer at a time. The agent does not apply on the ATS and does not handle follow-ups.
- OAuth. You authorize the agent from JobShift. Access uses an OAuth token, not a stored password. There is no API key to generate.
- No password shared. The agent never receives your JobShift password. Sign-in happens on the JobShift page.
- Revocable. Remove the connector in the client, or refuse access on the consent page. In Claude Code, claude mcp logout jobshift also drops the session when the client supports it.
- Sessions capped at 1 hour. A JobShift session opened for this connector lasts at most 1 hour, then it expires. An OAuth refresh can extend it.
FAQ
What is this connector?
It is a remote MCP server. The agent uses it to read your JobShift account and, if you ask and you confirm, to have one application queued. You stay in the agent. JobShift applies the same rules as the app.
Can the agent apply for me?
It can ask JobShift to queue one application, after telling you the cost and after you confirm. A standard application costs 1 credit. A complex application costs 3 credits, the same as in the app. The application is not sent until the tracker says so. The agent does not apply on the ATS and does not handle follow-ups. If you are missing a CV, a phone number, or preferences, it sends you to onboarding. Without a subscription or credits, it sends you to billing.
Which data can the agent see?
Your search profile, your credits, offers from the index, the detail of one offer, and your applications. It does not receive your password. get_my_profile does not return the full CV text.
Does the agent get my password?
No. You sign in on JobShift with your account, then you approve access on the consent page.
How do I remove access?
Remove the connector in the client. You can also refuse access on the consent page. The session expires on its own after 1 hour at the latest.
Do I need a JobShift account?
Yes. Create the account, add your CV, then add the connector. Without an account, the agent sends you to sign up. Without a CV, a phone number, or preferences, to onboarding. Without a subscription or credits, to billing. The connector can also stop after 30 distinct queued offers in one UTC day: retrying the same offer does not use another slot, and you can continue in the app.