PasteApply
Honest resume/cover tailor for agents.
Что умеет
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Honest resume/cover tailor for agents. Free generate; Stripe unlock for downloads. Streamable HTTP.
Как подключить
Как подключить PasteApply к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://pasteapply.com/mcp
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить PasteApply к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://pasteapply.com/mcp
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить PasteApply к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://pasteapply.com/mcp
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (6)
Технические названия из tools/list. Нужны только разработчикам.
| status | Read PasteApply readiness (openaiConfigured, stripeConfigured, prices, plan/unlocks when Bearer pa_). Paid bots: Authorization Bearer pa_… from confirm_payment or POST /api/agent-key. Ladder $3=1/$5=5/$10=50/$20=200. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. |
| store_resume | Store resume text in the vault and get a resumeId (rs_1.<uuid>) to reuse on generate. Prefer resumeId on later generate over re-pasting the full resume. Pass resume text here. For PDF/DOCX/DOC/TXT/MD files, use HTTP POST /api/resumes multipart field "file" (max ~8MB) — this MCP tool is text-only. Stored text is used as-is (honesty lock; never invent employers). TTL ~30 days. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. |
| generate | Tailor a resume and cover letter to one job posting. Pass jobPosting text and/or jobUrl (public http(s); we fetch+strip HTML; prefer pasted jobPosting if both). Pass resume text and/or resumeId from store_resume / POST /api/resumes (prefer resumeId over re-pasting; pasted resume still wins if both). Resume or resumeId required unless useSample. Unpaid generate returns a teaser only (coverage, fit.recommend skip|weak|apply with mustHavesMissing/impliedOnly, proof, short what-changed, redacted sample). Full letter and resume require unlock_link or a paid Bearer pa_… key with unlocks remaining. Optional BYOK: modelProvider openai|anthropic as a tool arg; send the provider key only in connection header X-PasteApply-BYOK-Key (env-var placeholder — never a literal key in tool args or chat). Hosted is default. Paid bots: Authorization Bearer pa_… from confirm_payment or POST /api/agent-key. Ladder $3=1/$5=5/$10=50/$20=200. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. If the posting wants something not on the source resume, omit it. |
| unlock_link | Create a Stripe Checkout URL so a HUMAN can pay $5/mo Export (5 unlocks, default), $3/mo (1 unlock), $10/mo Pro (50 unlocks + extras), or $20/mo (200 unlocks + Pro extras). After the human pays, poll get_generation until paid:true for paid files fields (files.ready, files.pdf, files.docx, files.coverPdf, files.expiresAt, files.coverLetter, files.resume). confirm_payment only if the poll stays unpaid (also returns apiKey pa_…). Never scrape card UI. Never complete Stripe Checkout as the user. Hand the Checkout URL to a human. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. |
| confirm_payment | Fallback unlock when get_generation still shows paid:false after the human paid (slow webhook). Pass the cs_ session id from the success URL. Happy path: poll get_generation until paid:true — no cs_ required. When paid, returns full coverLetter, structured resume, files.pdf/docx/coverPdf absolute URLs (?dl= token lasts UTC billing month), and apiKey (Authorization Bearer pa_… for later status/generate). Or POST /api/agent-key {sessionId}. Never scrape card UI. Never complete Stripe Checkout as the user. Hand the Checkout URL to a human. |
| get_generation | Happy path after pay: poll until paid:true (webhook persists the unlock). Poll a generation including paid/unlocked after the human pays. Pass id or generationId (same uuid from generate). When paid:true: full coverLetter, resume, and files.ready/files.pdf/files.docx/files.coverPdf/files.expiresAt/files.coverLetter/files.resume (pdf/docx/coverPdf ?dl= URLs last the UTC billing month; refresh via get_generation anytime in-month). On file GET 403, re-call get_generation for a fresh token. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. |