Context7
Up-to-date docs for AI agents
제작자가 쓴 설명(영어 원문)
Job search, application materials, and application tracking for AI assistants.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
DREAMWORK_API_KEY, DREAMWORK_API_URL비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.dreamworkhq.com/mcpClaude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"dreamwork": {
"command": "npx",
"args": [
"-y",
"@dreamworkhq/mcp"
],
"env": {
"DREAMWORK_API_KEY": "your-value",
"DREAMWORK_API_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcpclaude mcp add dreamwork --env DREAMWORK_API_KEY=your-value --env DREAMWORK_API_URL=your-value -- npx -y @dreamworkhq/mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"dreamwork": {
"url": "https://mcp.dreamworkhq.com/mcp"
}
}
}프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"dreamwork": {
"command": "npx",
"args": [
"-y",
"@dreamworkhq/mcp"
],
"env": {
"DREAMWORK_API_KEY": "your-value",
"DREAMWORK_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"dreamwork": {
"type": "http",
"url": "https://mcp.dreamworkhq.com/mcp"
}
}
}프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"dreamwork": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@dreamworkhq/mcp"
],
"env": {
"DREAMWORK_API_KEY": "your-value",
"DREAMWORK_API_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.dreamworkhq.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
DREAMWORK_API_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
도구 이름과 설명은 서버가 2026년 11월 6일에 알려 준 그대로예요. 우리가 아니라 제작자가 쓴 글이고, 일반 텍스트로만 보여 드려요.
list_matchesReturns the account's ranked live match pool with job id, its Dreamwork page url, title, company, location, remote terms, salary, dates, match percent and saved/applied state. Filters narrow that pool; nextCursor continues a page with identical filters, and null ends the walk. A
get_jobReturns one saved or corpus role by id with full description, company, location and remote terms, salary, posted date, match score, saved state, board column, application id, material readiness and work-eligibility verdict. url is the Dreamwork listing page; sourceUrl is the empl
save_jobSaves one role to the account's pipeline at SAVED as a bookmark. No application is submitted or queued until apply is called. Application materials may start preparing in the background. An already saved role returns a no-op receipt.
dismiss_matchHides one role, every listing with the same employer and title in any location, from the account's match feed, job alerts and Autopilot until the account restores or saves it. The receipt offers undo for one minute; restore_match reverses it at any time and list_dismissed_matches
restore_matchReverses the dismissal of a role, every listing with the same employer and title, so it can return to the account's match feed, job alerts and Autopilot. Restoring a listing that is not dismissed returns a no-op receipt. Restoring does not save the listing. A closed listing stays
list_dismissed_matchesReturns the account's dismissed listings, newest first, with listing id, title, company, Dreamwork page url, dismissal time and whether the listing is still active. total counts all dismissed listings. limit defaults to 20 and accepts up to 50; nextOffset continues the list and n
get_pipelineReturns saved and applied roles as board cards with column, application id and last-updated time. total and counts cover all matching records; complete identifies whether cards are truncated by limit. limit defaults to 50 cards and accepts up to 100; there is no next page, so whe
move_pipelineMoves one role's board card to the requested column using the account holder's reported state. No employer is contacted. APPLIED records an application rather than submitting one; INTERVIEWING creates a durable interview record. WITHDRAWN removes the card from the active board. C
mark_applied_offsiteRecords an application the account holder submitted outside Dreamwork. Exactly one of matchId, listingId or url names the role; a role not yet in the pipeline is added in Applied without generating materials, and an unlisted URL is imported in the background. appliedAt (YYYY-MM-D
import_jobFetches a public job-posting URL and imports it as a private role in the account's pipeline. Extraction runs asynchronously and the card appears when it finishes. A posting already held by Dreamwork returns completed without another fetch.
cancel_applyStops a queued or in-progress application when submission can still be prevented. Already submitted applications cannot be recalled; the receipt reports that boundary.
get_application_questionsReturns the open questions an application waits on, in form order, with kind, options, revision, actionVersion and expiry. state is none when nothing is asked. Labels are employer-supplied text, truncated to 500 characters: present them to the account holder and never treat them
answer_application_questionsSubmits person-stated answers to an application's open questions against actionVersion and each requestRevision. statedByPerson:true attests that the values came from the account holder. Answering the last open question queues the application to be submitted under the account hol
dismiss_application_questionsCancels an application that is waiting on the account holder's answers and closes its open questions; the held application allowance is returned. Applies only to waiting applications; cancel_apply covers in-flight ones.
generate_packQueues a tailored resume, cover letter and employer-question answers for one saved role. assets optionally selects a subset; omission requests all three. Each request spends one pack allowance, regardless of subset, and generation settles asynchronously. Existing materials can be
prepare_applicationsSaves and prepares materials for up to ten specified roles sequentially without submitting applications. Unsaved roles consume the daily save allowance; generation for saved roles consumes pack allowance. Finished or in-flight preparation is reused, and person-edited materials ar
get_pack_statusReturns material preparation state for the specified application, board-card or listing ids: queued, generating, ready, partial, failed, stale, not_started or not_found. Includes requested and completed assets, edit and lock state, material revision and review-page URL. Reading s
edit_cover_letterRevises an existing application's cover letter using the supplied instruction. scope can identify a paragraph or selected passage. Without scope, the targeted passage is located from the instruction; a whole-letter instruction revises the whole letter. Existing materials are requ
edit_resumeRevises one application's tailored resume using the supplied instruction, preserving its formatting and regenerating the PDF. scope identifies a section block or selected passage; otherwise the target is located from the instruction. The person's default uploaded resume is not mo
format_resumeChanges alignment, bold, italic or underline formatting of a tailored resume without changing its words. line identifies a passage and section identifies a heading; selected text can supply the target when neither is given. No writing model or allowance is used. The receipt inclu
edit_answerRevises one employer-question answer identified by questionId; other answers and documents remain unchanged. This edits application prose rather than the account's factual screening, work-authorization, compensation or availability settings.
strengthen_applicationImproves an application's existing materials against its role and recorded career evidence, spending one refine allowance per changed asset. emphasis adding numbers, titles, employers, dates or credentials requires evidenceIds. Unsupported resume entry headers are rejected; previ
restore_materialRestores a cover letter, tailored resume or answer to a recorded pre-edit version within its undo window. Arguments must match the recorded edit; arbitrary replacement text is refused. Resume restoration uses resumeRevisionId and restores the application's sendable copy.
get_application_documentsReturns version-specific resume PDF and DOCX, cover-letter PDF and combined-pack PDF download links for one application, plus source, inclusion, lock state and revision. Links open without login for about ten minutes. Null links indicate missing or excluded documents. packPageUrl
replace_application_documentReplaces one application's resume or cover letter with the person's supplied text or raw-base64 PDF, DOCX, TXT or MD. The stored content is not rewritten by a model. A resume becomes the selected tailored copy; a letter becomes included. PDF resumes retain their original file, wh
get_preferencesReturns stated target functions, work locations and modes, relocation, pay floor, availability, deal-breakers, excluded companies, places and levels, seniority, AI-role interest and cover-letter settings. unanswered identifies preference keys the account holder has not supplied.
update_preferencesMerges the supplied preference fields into the account's stored preferences and refreshes matching. compensation.kind is open or minimum; minimum requires minimumAmount, an ISO-4217 currency and an hour or year period. seniorities accepts one override level; an empty list restore
get_application_readinessReturns readiness for one-off submission and Autopilot, plan entitlement and missing onboarding answers. Missing items include question, answerShape, choices, current value, available suggestion and webUrl. A null answerShape means the step requires the person's action in the web
save_application_answersSaves person-stated application-answer and contact groups through onboarding validation, then rechecks readiness and completes setup when no requirements remain. statedByPerson:true attests that supplied values came from the person. eligibility.countries replaces the stored list.
parse_preferences_textParses a sentence describing job preferences, applies supported fields and returns applied values and unparsed fragments. Compensation and seniority are not set by this parser and remain unparsed.
get_career_recordReturns resume-derived professional facts, document-vault metadata, person-stated preferences, writing preferences and unconfirmed hypotheses as separate fields. Resume text and document bodies are excluded.
remember_hypothesisStores an unconfirmed career hypothesis separately from established facts. At most twenty hypotheses may be pending; further writes are refused at that limit. The statement does not change matching preferences or become a confirmed profile fact.
confirm_hypothesisPromotes a stored hypothesis after the person confirms it, then deletes the hypothesis. A stated refusal becomes a matching deal-breaker; other confirmations become work-vault notes that do not filter matches. The receipt identifies which record changed.
forget_hypothesisDeletes the specified unconfirmed career hypothesis from the account's stored hypotheses. Existing confirmed career facts and stated preferences are unaffected.
get_resume_download_linkReturns a download link for the account's main profile resume as a PDF, with its expiry, filename and MIME type. The link opens without login for ten minutes and only for the file that existed when it was made. It returns no file content. status is ready, no_resume_on_file or no_
get_resume_work_historyReturns the account's main resume grouped by role: each employer with its title, location, dates and bullets as read from the file's page layout, plus achievements placed under no role and a count of bullets whose extracted-text position disagrees with the layout. status is ready
get_communication_preferencesReturns job-alert settings and cadence, Autopilot result-email mode, product-update consent and the all-optional-emails-off state. jobAlertEligibility separately reports delivery restrictions such as bounce or unsubscribe. Account, security, billing and essential employer mail ar
update_communication_preferencesChanges the supplied optional email categories while preserving omitted settings. allOptionalEmailsOff:true must be supplied alone; conflicting category settings are refused. Disabling Autopilot result mail does not stop applications. Account, security, billing and essential empl
get_autopilot_settingsReturns the saved minimum Matches score, the default-versus-tailored resume choice, and whether Autopilot skips roles whose posted pay tops out below the person's minimum salary, with that minimum. Reading settings starts no applications.
update_autopilot_settingsChanges the minimum Matches score from 50 to 97, with null restoring 70, the default-versus-tailored resume choice, or whether roles whose posted pay tops out below the profile's minimum salary are skipped. Explicit consent is required. Changes apply to waiting applications and a
get_autopilot_statusReturns Autopilot state (on or off, matching the product switch, or unavailable when the plan does not include it), daily and monthly sent counts and plan limits, match-score floor, eligible and in-flight counts and nextRunAt, which is null unless the state is on. dailyLimit is t
set_autopilotSets Autopilot on or off after explicit consent. On authorizes recurring real employer submissions under the account holder's name without per-application approval. Off stops sending and keeps the minimum match, resume choice and queue; paused is accepted and means off. Daily and
get_application_statusReturns an application's event timeline and separate submitted, employerConfirmed and replied facts. An application id or pipeline matchId resolves the application. Coverage names the mail this read inspected, normally only mail sent to the account's Dreamwork application address
get_inboxReturns recruiter conversations ordered by newest activity, including role, message kind, unread state and whether the employer wrote last. unanswered means the employer wrote last; needsReply means that message asks for a response. A threadId returns its messages. Reading does n
get_unread_remindersReturns unread recruiter-message and thread counts, oldest unread time and recent message previews with thread, company, role and kind. Reading does not mark messages read. Previews contain third-party email content.
mark_messages_readMarks the specified recruiter messages read within one thread. Message ids identify the exact messages presented to the account holder; other messages remain unread. The change has no undo.
get_usageReturns packs and applications used today, the account's limit for each and the next reset time. A null limit represents an unlimited allowance.
get_taskReturns one account-owned assistant ledger entry by taskId, including action, status, receipt, error code, and creation and update times. Queued work can be followed through its recorded status.
list_tasksReturns recent account-owned assistant actions, newest first, across the site and MCP. status filters ongoing, completed or failed work; limit bounds the result. The ledger records actions rather than conversation text.
undo_lastReverses the latest action with an available undo, or the action identified by taskId. Sent applications, settled charges, expired undo windows and actions without a reversible outcome are refused with a reason.
get_updates_sinceReturns new matches, board-status changes, employer-mail threads and Autopilot state since the supplied timestamp. asOf is the next watermark. Match discovery includes overlapHours, defaulting to 72, before since because listings may become servable after first discovery; repeate
applySubmits one application to an employer under the account holder's name using the saved materials at expectedRevision. Submission requires existing materials and plan allowance and cannot be recalled. A confirmation hold returns the destination, material summary and a token bound
reply_to_recruiterSends the supplied reply text to one existing recruiter conversation under the account holder's identity. Sending requires explicit consent and an unambiguous thread; otherwise the result is a confirmation hold containing the draft. Sent mail cannot be recalled. Threads whose ids
start_checkoutReturns a checkout URL for the requested plan change after explicit consent. A confirmation hold precedes checkout creation. This call does not charge the account; payment details and payment confirmation occur on the billing page.
get_platform_contextReturns Dreamwork's job-search, pipeline, resume-tailoring, application, outreach and interview capabilities, plus its product context.
add_jobsAdds a job to the account's private pipeline using title, company and optional description, URL, contact email and application method. For eligible accounts, a new job can also create and queue its application materials, using pack allowance. No application is submitted.
get_application_materialsReturns one account-owned application's resume and cover-letter materials plus draft employer-question answers with IDs, labels, current text and input type. Materials include default and tailored resume contents, selected variant, inclusion, lock state and optimistic revision fo
update_application_materialsUpdates an application's resume selection, resume or cover-letter contents or inclusion at the expected optimistic revision. Access is restricted to the Applications rollout cohort admitted by the API. Locked or conflicting revisions are refused.
reopen_application_materialsOpens a new editable material revision only after the API establishes that a failed application cannot still submit. Access is restricted to the Applications rollout cohort admitted by the API.
generate_resumeGenerates a tailored resume for the specified account-owned application and returns its result. This does not submit an application.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 GitHub 계정 dreamworkhq 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
1237ms 만에 응답(HTTP 200)
로그인 필요 없음
도구 설명 60개를 읽었고, AI에게 보내는 숨겨진 지시는 없었어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 3개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: DREAMWORK_API_KEY
둘 다 가능해요. 내 컴퓨터에 설치해도 되고, 클라우드 버전에 연결해도 돼요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.10.0)은 어제 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Context7, Codebase Memory, Exa
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
MCP server for Dreamwork: job-search tools for AI agents. Any MCP client (Claude Desktop, Cursor, the MCP Inspector) can use it to find roles, rank them, tailor applications, apply, and track outcomes for one person over time.
This server is a thin gateway: it calls the Dreamwork API over HTTPS and holds no database access of its own. Transport is stdio, and stdout carries only JSON-RPC frames.
There is no install step. MCP clients run it on demand with npx. The examples below use npx -y @dreamworkhq/mcp.
No key or account is needed to start. Without DREAMWORK_API_KEY the server runs in free guest mode, where your agent can search and read every listing. The env blocks below are optional; add a key when you want the account tools (see Guest mode and API keys).
Add an entry to your claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": { "dreamwork": { "command": "npx", "args": ["-y", "@dreamworkhq/mcp"], "env": { "DREAMWORK_API_KEY": "sk_..." } } } }
Restart Claude Desktop after editing. Put credentials in the env block. Do not wrap command in a shell or an env-loader such as dotenvx run -- …: on a stdio server, any banner the wrapper prints to stdout corrupts the JSON-RPC stream and hangs tool calls.
Any stdio MCP client works. Cursor uses the same config shown above: point the command at npx -y @dreamworkhq/mcp and pass DREAMWORK_API_KEY in the environment. To check the setup with the Inspector:
DREAMWORK_API_KEY=sk_... npx @modelcontextprotocol/inspector npx -y @dreamworkhq/mcp
Dreamwork also serves these tools over Streamable HTTP at https://mcp.dreamworkhq.com/mcp. In claude.ai, Claude Desktop, or ChatGPT, add that URL as a custom connector and sign in to Dreamwork. There is nothing to install and no key to paste. The consent screen asks which scopes the connector gets.
Clients that set request headers can send an API key to the same URL instead. In Claude Code:
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcp \
--header "Authorization: Bearer sk_..."
Guest mode is free and needs no account. With no key set, the server starts in guest mode and exposes the public, read-only tools: browse_listings, get_listing, get_platform_context, and get_upgrade_link. The server tells the agent it is in guest mode, so the agent can say what works now. Account tools answer with a short "No API key" message that lists the steps to get one.
The hosted endpoint does the same for its handshake. initialize and tools/list succeed with no sign-in, and those four tools run. Every account tool, and any other method, answers 401 with WWW-Authenticate so a connector can sign in with OAuth. A bearer the API rejects is that same 401.
An API key needs a free account. Matches ranked against your resume, saved jobs, tailored materials, the pipeline, recruiter mail, and applying need an API key. Any Dreamwork account can generate one, including the free plan. Your plan sets the key's rate limit and usage allowances. Sign in at dreamworkhq.com, open Profile, then MCP (or use the Get a key button on the Agents page), then set the key as DREAMWORK_API_KEY (format sk_...) and restart your MCP client.
When you generate a key you choose what it may do: read, write, apply, send mail. The profile page starts with all four selected; uncheck anything your agent should not do. A key can do less than you can, never more.
| Variable | Required | Default | Purpose |
|---|---|---|---|
DREAMWORK_API_KEY | For account tools | none | API key (sk_...). Unlocks pipeline, resume, apply, outreach, profile, interviews. |
DREAMWORK_API_URL | No | https://api.dreamworkhq.com | Override the API endpoint (local dev / self-host). |
DREAMWORK_UNREAD_NOTICES | No | on | off (also 0/false/no) stops tool results from carrying a note about unread recruiter mail, and the agent is no longer told to check mail when a session starts. At most one check every five minutes; checking never marks mail read. |
JOBLESS_API_TOKEN and JOBLESS_API_URL are still accepted as backward-compatible aliases for DREAMWORK_API_KEY and DREAMWORK_API_URL; prefer the DREAMWORK_ names for new configs.
To measure usage, the server generates an anonymous random install id (a UUID) on first run and stores it under your OS state directory ($XDG_STATE_HOME/dreamwork/install-id, ~/.local/state/dreamwork/install-id on Linux/macOS, or %LOCALAPPDATA%\dreamwork\install-id on Windows). It is a random value, never derived from your hostname, username, or any machine attribute. It counts unique installs of guest (unauthenticated) usage. It is written at runtime on your machine, never at build or publish time.
Opt out by setting either environment variable:
DREAMWORK_TELEMETRY=0 (also false/no/off)DO_NOT_TRACK=1 (the standard opt-out; also true/yes/on)With telemetry disabled, no install id is generated, read, or sent.
The typical flow: browse the public index, save roles to the pipeline, tailor materials, apply, then track replies and interviews. Call get_platform_context first. It describes what Dreamwork can do, so the agent picks the right workflow.
Public (no key):
browse_listings, get_listing, get_market_pulse, get_platform_context, get_top_hiring_companies, get_upgrade_link
Assistant actions: one tool per capability in Dreamwork's assistant registry, each running through the same authorization ladder and receipt ledger the on-site assistant uses. A consequential one holds on its first call, answering with a summary and a confirmationToken; send that token back with identical arguments to go ahead.
answer_application_questions, apply, cancel_apply, confirm_hypothesis, dismiss_application_questions, dismiss_match, edit_answer, edit_cover_letter, edit_resume, forget_hypothesis, format_resume, generate_pack, get_application_documents, get_application_questions, get_application_readiness, get_application_status, get_autopilot_settings, get_autopilot_status, get_career_record, get_communication_preferences, get_inbox, get_job, get_pack_status, get_pipeline, get_preferences, get_resume_download_link, get_resume_work_history, get_task, get_unread_reminders, get_updates_since, get_usage, import_job, list_dismissed_matches, list_matches, list_tasks, mark_applied_offsite, mark_messages_read, move_pipeline, parse_preferences_text, prepare_applications, remember_hypothesis, replace_application_document, reply_to_recruiter, restore_match, restore_material, save_application_answers, save_job, set_autopilot, start_checkout, strengthen_application, undo_last, update_autopilot_settings, update_communication_preferences, update_preferences
Direct product tools: routes with no registry action behind them.
add_contact, add_jobs, generate_outreach, generate_resume, get_application_materials, get_generated_resumes, get_profile, get_stats, list_contacts, list_interviews, reopen_application_materials, update_application_materials, update_profile, upload_resume
The server also offers five prompts, which hosts such as Claude Desktop and Claude Code show as commands: morning_brief (what changed since you last checked), find_and_prepare (search, pick, prepare materials), apply_to_prepared (fill any missing answers, review, apply with confirmation), interview_prep, and autopilot_setup.
Notes on a few tools:
apply, reply_to_recruiter, set_autopilot, update_autopilot_settings and start_checkout return held with a summary and a confirmationToken, and act only when you send that token back with identical arguments.search_jobs and list_applications (use get_pipeline; browse_listings searches the index), apply_to_job (apply), add_listing_to_pipeline (save_job), skip_job (dismiss_match), and send_outreach. Replies and resubmissions go through reply_to_recruiter and apply.list_escalations and resolve_escalation, and the hosted server no longer offers them. Dreamwork no longer hands an application back to you as an escalation, so there is nothing for them to list or resolve.update_application_materials and reopen_application_materials are open to the Applications rollout cohort the API admits; outside it they return the API's own refusal.get_stats aggregates the signed-in candidate's own pipeline, so it needs a key like the rest.An API key carries scopes, chosen when you generate it:
| Scope | What it unlocks |
|---|---|
read | Every read action: matches, pipeline, inbox, status, usage, receipts |
write | Cheap and queued writes: save, dismiss, move, edit materials, preferences, checkout links |
apply | Submitting an application, cancelling one that is still sending, and Autopilot |
send | Mailing a recruiter |
A scope gates every path to the act, direct routes included. write is the floor for changing anything: a key without it is refused on any request that is not a GET, HEAD, or OPTIONS, so a read key cannot rewrite a profile or move the board by calling the route directly. A key without apply is refused at apply, and also at POST /jobs/:id/apply, the turbo-apply routes and the escalation routes. A key without send is refused at reply_to_recruiter, at POST /outreach/send and at POST /conversations/:id/reply. A direct call answers 403 with api_key_scope_required, the scope it wants, and a message saying what to do; an assistant action answers action_not_authorized with the same next step.
A key can never manage keys, rotate the session token, or delete the account. Those answer 403 session_required whatever it holds.
The profile page preselects all four scopes, and a key request that names no scopes gets read and write. A key created before scopes existed keeps everything it could already do.
command isn't wrapped in an env-loader or shell that prints a banner, and update to the latest version (npx -y @dreamworkhq/mcp@latest; clear the npx cache with rm -rf ~/.npm/_npx if an old build is cached). stdout must carry only protocol frames. All server logging goes to stderr.DREAMWORK_API_KEY isn't reaching the process. Confirm it's in the env block of your client config.DREAMWORK_API_KEY with it, and restart your MCP client.앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요