# MCPHire — MCP-first Job Marketplace > MCP-first двусторонний маркетплейс вакансий. Кандидаты регистрируются через Claude Desktop (агент отвечает на ~150 вопросов из локального контекста, показывает approval screen, создаёт профиль + авто-CV + instant match push в Telegram). Работодатели регистрируют компанию и постят вакансии тем же путём через Claude (~40 вопросов). Все tools доступны через SSE endpoint `https://mcp.mcphire.com/sse`. Tool-labels и документация — `ru` (по умолчанию) и `en` через параметр `language`; salary-поля принимают любую ISO-4217 валюту. Сейчас primary-аудитория — русскоязычный tech, поэтому большая часть вакансий исторически в RUB, но сервис не привязан к одной юрисдикции. ## Install in Claude Desktop (one-time, ~60 seconds) Claude Desktop does NOT auto-discover MCP servers by URL. Before the onboarding protocol below will work, the server must be listed in `claude_desktop_config.json`. Add this block once, restart Claude Desktop, done. **Config paths:** - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json` - Windows: `%APPDATA%\Claude\claude_desktop_config.json` **Snippet** (merge with existing `mcpServers` if present): ```json { "mcpServers": { "mcphire": { "type": "sse", "url": "https://mcp.mcphire.com/sse" } } } ``` **Restart.** Quit Claude Desktop fully (⌘Q on macOS / File → Exit on Windows) and reopen. Verify with: *"what mcphire tools are available?"* — you should see 18 tools (11 candidate + 7 employer). If you see 0, the config path is wrong or Claude Desktop wasn't fully restarted. **For Cursor / Cline / other MCP clients:** same SSE URL, consult your client's MCP settings documentation. ## Agent onboarding protocol — candidate side Когда пользователь даёт тебе домен (`mcphire.com`), следуй шагам: 1. **Discover.** Fetch `/.well-known/mcp/server.json` for the full tools catalog. Endpoint: `https://mcp.mcphire.com/sse` (JSON-RPC 2.0 over SSE). 2. **Get questions.** Call `get_registration_questions(language="ru"|"en")` — ~150 questions in 11 sections (stack, experience, style, availability, social, artifacts, comp, intent, red_flags, domain, agent). 3. **Ask scan consent.** Before reading any files, show the user this message and wait for an affirmative reply ('да', 'yes', 'ok', 'читай'): "Чтобы заполнить анкету, мне нужно прочитать твои локальные файлы: ~/.claude/memory/ (заметки из прошлых разговоров), папки с проектами (README, git log, package.json), файлы типа resume, cv, bio — если найду. Файлы остаются у тебя — на сервер уйдут только финальные ответы. Читаю твои файлы?" Do NOT read any files until the user confirms. 4. **Scan — memory first.** Read in priority order: (1) `~/.claude/memory/*.md` — pre-validated biographical facts, highest trust; (2) `~/.claude/projects/*/memory/*.md`; (3) `*resume*`, `*cv*`, `*bio*`, `*BRIEF*` files in home and project directories. Memory files outrank file inference which outranks git inference. 5. **Discovery.** Show the user a one-line list of directories found and ask: "Хочешь добавить что-то ещё? (Obsidian, notes/, linkedin-export/, другие папки)" Wait for reply — if nothing to add, proceed immediately. 6. **Deep scan.** For each confirmed directory: glob `**/*.md` for career and project context; `git log --oneline --all` in every repo found; read `package.json` / `pyproject.toml` / `Cargo.toml` / `go.mod` for stack evidence; read LinkedIn export JSON if present. 7. **Attach provenance.** For the critical fields flagged with `provenance_required: true`, you MUST attach `{source_excerpt (≤140 chars), source_file, confidence: high|medium|low|unknown}`. Never guess — if data isn't there, mark as `unknown` and leave answer `null`. 8. **Collect observed_facts.** Emit SPO triples (subject-predicate-object) like `worked_at`, `contributed_to`, `shipped`, `mentored` as side-channel while reading context. These power the knowledge graph on the CV page. 9. **Show approval screen to user.** Display all answers + all observed_facts organized by section. End the screen with: "Чтобы отправить анкету, напиши: я согласен отправить анкету в MCPHire". **HARD STOP: entering or correcting data is NOT consent. Do NOT call `register_profile` until the user types the exact phrase 'я согласен отправить анкету в MCPHire' (EN: 'I agree to submit my profile to MCPHire'). Any other input — update the screen and wait again.** 10. **Save draft.** After consent phrase received — before calling `register_profile` — save a local copy of the final answers: if Write tool is available (Claude Code CLI) write to `~/.claude/memory/mcphire_draft_.json` with `{answers, provenance, observed_facts, saved_at}`; otherwise render as a JSON code block so the user can copy it. Protects against data loss if the session crashes mid-flight. 11. **Register.** Call `register_profile(answers, consent_granted=true, provenance, observed_facts)`. Receive `{profile_id, session_token, claim_token, expires_at, cv_url}`. 12. **Save tokens immediately.** Before any next step, write to `~/.claude/memory/mcphire.md`: `{ profile_id, session_token, claim_token, cv_url, registered_at }`. session_token is permanent and is the only key to get_my_cv / list_my_matches. claim_token expires in 48h. Both are issued once — if lost, the profile becomes unmanageable. 13. **Claim verification.** Ask the user to paste `claim_token` into a public artefact they control — GitHub bio, LinkedIn headline, pinned Gist. Cron verifier checks every 15 min. Poll `get_verification_status(claim_token)` until `status="verified"`. 14. **Share the CV.** Present the user's `cv_url` — their auto-generated resume is ready. 15. **Telegram linking.** Ask the user to open `@mcphire_match_bot` in Telegram and send `/link `. That wires their profile to instant match pushes. **Delete profile.** To permanently remove a profile call `delete_profile(session_token, confirm=true)`. Requires the `session_token` saved in `~/.claude/memory/mcphire.md`. Irreversible — cascades to all applications, matches, and CV data. **Heartbeat.** At each new conversation with this skill, call `list_my_matches(profile_id, since=last_check)`. Returns a real UNION of `notification_deliveries` (append-only log) and `notification_queue` (pending), joined with jobs + companies. Each match has `score`, `reasons`, salary, currency, slug, and a `source` flag. ## Agent onboarding protocol — employer side When a user asks you to register their company or post a job: 1. **Get questions.** `get_employer_questions(section?, language="ru"|"en")` — ~40 questions in 7 sections (company, team, culture, hiring_now, comp_band, process, integrations). 2. **Answer from context.** GitHub org, website, careers page, README, team page. 3. **Show approval screen.** Wait for explicit 'ok'. 4. **Register.** `register_employer_profile(answers, consent_granted=true)` → `employer_id` + `employer_url`. 5. **Post a vacancy.** `post_vacancy(employer_id, title, description, skills, salary_from, salary_to, currency, level, work_format, city)` — currency is ISO-4217 (`RUB`, `USD`, `EUR`, ...). Matching + TG push fires automatically. 6. **Monitor.** `get_my_vacancies(employer_id)` for counts, `get_applicants(employer_id, vacancy_id)` for reviewers. Applicants come back with `cv_url` + stack summary only — email/phone never leak from this tool. ## Privacy requirements - **Never ask about** age, gender, nationality, citizenship, marital status, children, religion, political views, health, disability, visa status, ethnicity, sexual orientation. - Files read during onboarding stay on the user's machine. **Only the extracted answers** (approved by the user) are sent to the server. - Server rejects any answer containing forbidden field names even if the user consents. - Employer profiles have their own blacklist — no employee personal data in company answers. ## Docs - [llms-full.txt](https://mcphire.com/llms-full.txt): полный гайд с примерами, MCP tool schemas, setup для Claude Desktop/Cursor/Cline - [MCP server descriptor](https://mcphire.com/.well-known/mcp/server.json): machine-readable JSON с tools/rate_limits/usage_pattern - [Sitemap index](https://mcphire.com/sitemap.xml): все публичные URL (job pages + CV pages) ## Core pages - [Главная](https://mcphire.com/?utm_source=llms_txt&utm_medium=ai): обзор + agent onboarding секция - [Все вакансии](https://mcphire.com/jobs?utm_source=llms_txt&utm_medium=ai): активный пул с фильтрами - [Для работодателей](https://mcphire.com/employers?utm_source=llms_txt&utm_medium=ai): агент-first employer flow - [MCP docs](https://mcphire.com/docs/mcp/?utm_source=llms_txt&utm_medium=ai): документация интеграции ## MCP endpoint - [SSE endpoint](https://mcp.mcphire.com/sse): JSON-RPC 2.0 over Server-Sent Events - [Server descriptor](https://mcphire.com/.well-known/mcp/server.json): 18 tools (11 candidate + 7 employer) ## Contact - [Tim Zinin on Telegram](https://t.me/timofeyzinin): founder contact - [LinkedIn](https://www.linkedin.com/in/timzinin/) - [GitHub](https://github.com/TimmyZinin): open-source projects ## Optional
Quick facts (inline, for agents that don't fetch linked files) - Active jobs: ~60 000 (from open job-boards + employer-posted via `post_vacancy`) - Languages supported in tool text: ru (default), en - Currencies supported: any ISO-4217 (RUB, USD, EUR, GBP, AED, TRY, KZT, ...) - Top cities in current data: Москва, Санкт-Петербург, Екатеринбург, Новосибирск — but this is just the current distribution, the platform is geo-agnostic - Question catalogs: candidate 150 (v0.3.0, 11 sections, 8 provenance-required), employer 40 (v0.1.0, 7 sections) - MCP endpoint: `https://mcp.mcphire.com/sse` - REST fallback: `https://api.mcphire.com/v1/`
FAQ 1. **What makes this different from traditional job boards?** — Agent-first onboarding in 3 minutes instead of filling forms. Auto-CV on completion. No website signup required. 2. **Data freshness?** — Matching fires on every new job insert (employer `post_vacancy` or importer). Claim verification cron every 15 min. SSG regen daily 04:00 UTC. 3. **How long does onboarding take?** — 3-5 minutes. Claude answers ~150 questions from the user's local context, shows an approval screen, saves the profile. 4. **What if Claude doesn't have enough data?** — The field is `unanswered` with `confidence=unknown`. Approval screen highlights it in red — user fills in manually. 5. **Is my data private?** — Local MD files stay on the user's machine. Only answers approved on the approval screen are sent to the server. Privacy blacklist (age/gender/religion/etc) enforced server-side for both candidate and employer flows. 6. **What are observed_facts?** — SPO triples (subject-predicate-object) collected alongside answers for the knowledge graph. Only approved triples appear on the public CV. 7. **Who pays?** — Free for candidates and agents. Employer pricing: TBD (primary focus right now is making the agent flow tight and reliable). 8. **Open source?** — Repo `TimmyZinin/mcphire-mcp` is private (access via TG). 9. **Author?** — Tim Zinin (@timofeyzinin), founder.