Pair your local client
The findmynew.work MCP server lives at https://mcp.findmynew.work/mcp. Anything that needs your real browser session — preparing a profile, searching for vacancies, submitting applications — runs locally through this client. The server only ingests data and stages work.
1. Issue an API key
Sign in to findmynew.work, then go to Account → API keys and click Create. Label it for the machine you'll run the client on. The cleartext key is shown once — copy it into a password manager before you close the panel.
Lost a key? Revoke it from the same page and issue a new one. Each key is bound to your account; sharing it shares your vacancies and apply queue.
2. Plug into your editor
findmynew.work uses MCP's Streamable HTTP transport. Any client that supports remote HTTP MCP servers + Bearer auth headers will work.
Claude Desktop (macOS / Windows / Linux)
Find or create the config file:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
- Linux: ~/.config/Claude/claude_desktop_config.json
Add (or merge) a fmwork entry under mcpServers:
json{ "mcpServers": { "fmwork": { "url": "https://mcp.findmynew.work/mcp", "headers": { "Authorization": "Bearer fmwork_YOUR_API_KEY" } } } }
Fully quit and reopen Claude Desktop (⌘Q on macOS — not just the window). Open a new chat — there should be a tools icon listing fmwork.
Cursor
In Settings → Tools and Integrations → MCP click + Add new MCP server, name it fmwork, paste:
json{ "url": "https://mcp.findmynew.work/mcp", "headers": { "Authorization": "Bearer fmwork_YOUR_API_KEY" } }
Claude Code (terminal CLI)
bashclaude mcp add --transport http fmwork https://mcp.findmynew.work/mcp \ --header "Authorization: Bearer fmwork_YOUR_API_KEY"
Verify with claude mcp list. Remove later with claude mcp remove fmwork.
VS Code (Copilot Chat or Continue)
json{ "servers": { "fmwork": { "type": "http", "url": "https://mcp.findmynew.work/mcp", "headers": { "Authorization": "Bearer fmwork_YOUR_API_KEY" } } } }
Custom client (MCP TypeScript SDK)
tsimport { Client } from '@modelcontextprotocol/sdk/client/index.js'; import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'; const transport = new StreamableHTTPClientTransport( new URL('https://mcp.findmynew.work/mcp'), { requestInit: { headers: { Authorization: 'Bearer ' + process.env.FMWORK_API_KEY }, } }, ); const client = new Client({ name: 'my-agent', version: '0.1.0' }); await client.connect(transport); const { tools } = await client.listTools(); console.log(tools.map((t) => t.name)); // prepare_profile, …
3. The apply cycle
- Prepare a profile (once per source). Call prepare_profile — findmynew.work returns a Playwright command that opens a headed Chromium against a local profile directory. You log in by hand; cookies live on your machine only.
- Search. Call search_vacancies with a source. findmynew.work returns a recipe (URL + selectors + pacing). Drive it through your client's browser tool and upload the harvested rows via submit_search_results.
- Review. Open /vacancies in the dashboard. Mark the ones you want to apply to.
- Apply. Call pull_apply_queue. You get URL + cover letter + tuned resume. Open your authenticated browser, submit, then call report_apply_result.
Troubleshooting
Tools at a glance
Full schemas → /docs/tools.
Endpoint: https://mcp.findmynew.work/mcp · Transport: Streamable HTTP · Auth: Bearer API key.