# Use Careers with your AI

> Connect Claude, ChatGPT or Grok to Careers with its own MCP servers: it searches, tailors and drafts, and only you approve what is sent.

Source: https://careers.geenius.io/docs/use-with-your-ai/

Careers has no built-in AI in early access. Your own AI, Claude, ChatGPT or Grok, connects to Careers directly: it reads your profile and postings, drafts a tailored CV and letter, and puts e-mail drafts in your outbox. It never sends: only you approve.

> [!HONEST]
> Careers has two MCP servers of its own and they sign in with an API key, sent as a bearer token. A client that can only sign in through a browser (OAuth) cannot use them yet. During early access Careers is invite-only, and a key works only with a Careers plan.

## Connect in three steps

1. In Careers, open the settings and make an API key under **API keys**. It is shown once, so copy it then. The key belongs to you and acts in your Careers account.
2. In your AI, add a remote MCP server at the address of the server you want, on your Careers address. Both answer at `POST` and speak MCP over HTTP:

```text title="The two Careers servers"
https://<your Careers address>/apps/jobFinder/mcp   postings, tailoring, profile, CV links, e-mail drafts
https://<your Careers address>/apps/cv/mcp          the CV outline and its blocks, block by block
```

3. Send the key as a bearer token: the header `Authorization: Bearer YOUR_API_KEY`. In Claude, ChatGPT or Grok, use the connector or MCP server settings of the client for custom headers, or a client configuration file.

```json title="MCP client configuration"
{ "mcpServers": { "careers": { "url": "https://<your Careers address>/apps/jobFinder/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }
```

> [!WARNING]
> Never paste a key into a chat. Use a key only in the configuration of a client, name each key after what uses it, and revoke it in the app when you stop using that client.

## How a call looks

In the job server every action is its own tool, named `careers.<area>.<action>`, for example `careers.jobs.search`, `careers.mail.draft_create` or `careers.tailor.draft`. A few older names stay as they are: `careers.findJobs`, `careers.digest`, `careers.browseTargets` and `careers.importJobs`.

```json title="Search the boards (careers.jobs.search)"
{ "query": "TypeScript React", "freelance_only": true, "top": 5 }
```

Every call acts in your Careers account, after a plan check.

The CV server has the tools `list_cvs`, `create_cv`, `get_outline`, `read_block`, `insert_block`, `edit_block`, `delete_block` and `move_block`. Start with `get_outline`: it returns the block ids and short labels, never the whole document, and you then read or change one block at a time.

## Your first ask

```text title="A first ask"
Use my Careers account. Read my profile, then find the five best new freelance postings for TypeScript and React. For the best one, get the tailoring draft, reword it using only my facts, save it, and put an application e-mail in my outbox for approval.
```

Your AI searches, tailors, saves and drafts. You open the outbox, read the exact message and approve it, or not.

## The tools

::mcp-tools

Every tool of the list is named `careers.<tool>.<action>` in the job server.

## Rules that protect you

- **No send.** There is no send or approve action. Only a signed-in person can approve, in the app.
- **Truth check.** A saved CV is repaired line by line against your profile. A letter or e-mail with an unsupported sentence (a number, a skill, an employer, a credential, an achievement that is not in your profile or the posting) is refused, and the refusal names the sentence.
- **Your profile.** A key reads and writes the master profile of its owner. Import replaces it, so read it first.
- **Languages.** A German posting gets a German CV and letter. A Dutch posting gets English documents with one controlled line saying you write in English. A letter is never machine-translated.
