Dreamwork
NPM · @DREAMWORKHQ/MCP · 2 COMPONENTS
Job search, application materials, and application tracking for AI assistants.
Available components
Last scanned (15 hours ago)
Scores higher than 58% of npm servers
Category CRM and Sales
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security81
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects @modelcontextprotocol/sdk 1.31.0, a direct dependency. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 31 of 93 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to dreamworkhq/mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 9282 tokens (~130/item across 71 items; 71 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage92
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 70% of tool parameters carry a description.Partial
- Structured output schemas are declared (77% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 72 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 22 Oct 26 +21
- Known CVEs: unverified → fail ▼ security
- Malware scan: unverified → pass ▲ security
- Dependency health: unverified → 0.85 ▲ functional
- 21 Oct 26 −5
- Known CVEs: fail → unverified ▼ security
- Dependency health: 0.85 → unverified ▼ functional
- Package version: 1.9.0 → 1.9.1 functional
- 20 Oct 26 −19
- CVE-2026-111767 affects this package: high ▼ security
- CVE-2026-111769 affects this package: high ▼ security
- CVE-2026-111771 affects this package: high ▼ security
- CVE-2026-111768 affects this package: high ▼ security
- Malware scan: pass → unverified ▼ security
- Known CVEs: pass → fail ▼ security
- Package version: 1.8.1 → 1.9.0 functional
- 19 Oct 26 0
- Tool safety: pass → unverified ▼ security
- Stability: 0.10 → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 1.8.0 → 1.8.1 functional
- 18 Oct 26 +2
- Stability: unverified → 0.10 ▲ functional
- Package version: 1.7.0 → 1.8.0 functional
- 15 Oct 26 +42
- CVE-2026-104850 no longer affects this package ▲ security
- Injection markers: unverified → pass ▲ security
- Known CVEs: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 100 ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Dependency health: unverified → 0.85 ▲ functional
- First check of Tool coverage: 70 functional
- First check of Tool coverage: 77 functional
- First check of Schema quality: fail functional
- First check of Schema quality: good functional
- First check of Destructive annotations: 100 functional
- First check of Schema quality: fail functional
- 14 Oct 26 −6
- Known CVEs: fail → unverified ▼ security
- Provenance: pass → unverified ▼ security
- CVE-2026-104850 no longer affects this package ▲ security
- Known CVEs: fail → pass ▲ security
- Dependency health: 0.85 → unverified ▼ functional
- Package version: 1.5.2 → 1.7.0 functional
- Package version: 1.5.2 → 1.6.0 functional
- 12 Oct 26 0
- Security disclosure: unverified → fail ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 23 Oct 2026 · Analysed npm/@dreamworkhq/mcp@1.9.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | dreamworkhq/mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/dreamworkhq/mcp/.github/workflows/publish-registry.yml@refs/tags/mcp-v1.9.1 |
| Rekor log index | 3346568502 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:d4b35fa32261573714689a5e4f1a70f02e2cc95340399fc2ad969bea1fe9897adab6a4d05f80c4004fe1a809be8eada265d9db2f98e78aa7c29601214 |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 4 findings
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-22jm-h49p-29qw | CVE-2026-111767 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L | yes |
| GHSA-46jr-4wx8-v453 | CVE-2026-111768 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H | yes |
| GHSA-6prh-2h8m-c8cw | CVE-2026-111769 | medium | CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:N | yes |
| GHSA-rvq5-wwqv-78pq | CVE-2026-111771 | medium | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 93 packages
| Packages resolved | 93 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_contact Add contact ~69
Adds a recruiter or referrer contact to the account using the supplied contact details.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | yes | Company |
| string | – | ||
| linkedinUrl | string | – | LinkedIn URL |
| name | string | yes | Contact name |
| title | string | – | Job title |
No output schema declared.
No examples provided.
add_jobs Add job manually ~106
Adds 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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationMethod | string | – | – |
| company | string | yes | Company name |
| contactEmail | string | – | – |
| description | string | – | – |
| title | string | yes | Job title |
| url | string | – | – |
No output schema declared.
No examples provided.
apply Apply to a job ~174
Submits 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 to identical arguments; the reviewed revision is enforced.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| confirmationToken | string | – | Echo the token from a previous `held` result to carry out the act it described, and only after the person has seen that result's summary and agreed to it. Send identical arguments: the token is bound… |
| expectedRevision | integer | yes | The materials revision the person reviewed. A mismatch fences the send. |
No output schema declared.
No examples provided.
browse_listings Browse job listings ~658
Returns indexed listings filtered by title or company keywords, function, seniority, work setting, location, pay, benefits, industry, AI role, internship and posting or discovery age. Anonymous browsing is supported; a paid plan raises the page-size limit. A page holds 25 listings by default and limit accepts up to 100, which the API clamps to 25 without a key or on the free plan; the next page is the previous nextCursor. An unsorted cursor walk is stable and uncapped; sorted walks stop at 1,000. nextCursor requires identical filters and sort; null ends the walk. addedAfter supports overlapping discovery windows because listings can become servable after first discovery. Each listing's url is its Dreamwork page; sourceUrl is the employer's direct posting. Pay filters use whole annual US dollars and match posted bands reaching the bound, rather than guaranteed pay.
| Name | Type | Req | Description |
|---|---|---|---|
| addedAfter | string | – | Only listings Dreamwork first saw after this ISO date-time. |
| aiRole | boolean | – | AI-focused roles only. |
| bonus | boolean | – | Only postings offering a bonus. |
| company | string | – | Company name or domain. |
| cursor | string | – | `nextCursor` from the previous page. Send the same filters and sort, or it is refused. |
| equity | boolean | – | Only postings offering equity. |
| function | array | – | Job functions to keep, as a union. |
| healthcare | boolean | – | Only postings offering healthcare. |
| industry | string | – | Employer industry. One of: Software & Technology, Financial Services, Insurance, Healthcare & Hospitals, Pharma & Biotech, Consulting & Professional Services, Retail & Consumer Goods, Manufacturing &… |
| internship | boolean | – | Internships, co-ops, and apprenticeships only. |
| limit | integer | – | Page size, 25 when omitted. Without a key or on the free plan the API caps it at 25. |
| location | string | – | City, region, or country. Remote roles open to that country match too. A place Dreamwork cannot resolve is refused. |
| maxSalary | integer | – | Pay ceiling in whole annual US dollars. |
| minSalary | integer | – | Pay floor in whole annual US dollars, e.g. 200000. A listing passes when its posted band reaches it; listings with no posted pay drop out. |
| postedWithinDays | integer | – | Employer posting date within this many days. |
| remote | boolean | – | Shorthand for workSettings ["remote"]. |
| search | string | – | Words in the job title or company name. |
| seniority | array | – | Seniority levels to keep, as a union. |
| sort | string | – | Order. Omit it to walk every match in a stable, unranked order; any sort stops the walk at 1,000. |
| workSettings | array | – | Work settings to keep, as a union. A posting that states none counts as onsite. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedFilters | object | yes | – |
| listings | array | yes | – |
| nextCursor | – | yes | Pass it back with the same filters for the next page; null means done. |
| notes | array | yes | – |
| pageSize | – | yes | Rows this page was allocated by the API after plan clamping; advance a sorted walk by this, never by the rows received. |
| total | – | yes | Matching listings counted up to 1,000 for a sorted walk; null for an unsorted walk, which is not counted. |
| totalCapped | – | yes | – |
No examples provided.
cancel_apply Cancel an application that is still sending ~43
Stops a queued or in-progress application when submission can still be prevented. Already submitted applications cannot be recalled; the receipt reports that boundary.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
confirm_hypothesis Confirm a guess ~64
Promotes 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.
| Name | Type | Req | Description |
|---|---|---|---|
| hypothesisId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
dismiss_match Dismiss a match ~147
Hides 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 lists dismissed listings. The supplied reason is not stored. It does not hide other roles from the same company and does not move or remove an existing pipeline card.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Listing id from the feed or `list_matches`. |
| reason | string | – | The person's own words for why this role is wrong. Accepted but not stored, and it does not change later matches. |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
edit_answer Edit one application answer ~70
Revises 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.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| instruction | string | yes | – |
| questionId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| diff | object | yes | – |
| receipt | object | yes | – |
No examples provided.
edit_cover_letter Edit the cover letter ~85
Revises 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 required.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| instruction | string | yes | What to change, in the person's words. |
| scope | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| diff | object | yes | – |
| receipt | object | yes | – |
No examples provided.
edit_resume Edit the tailored resume ~87
Revises 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 modified; an active default variant is refused. Existing materials are required.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| instruction | string | yes | – |
| scope | – | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| diff | object | yes | – |
| receipt | object | yes | – |
No examples provided.
forget_hypothesis Forget a guess ~42
Deletes the specified unconfirmed career hypothesis from the account's stored hypotheses. Existing confirmed career facts and stated preferences are unaffected.
| Name | Type | Req | Description |
|---|---|---|---|
| hypothesisId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
format_resume Change how part of the resume looks ~222
Changes 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 includes undo.
| Name | Type | Req | Description |
|---|---|---|---|
| align | string | – | – |
| applicationId | string | yes | – |
| bold | boolean | – | `false` removes the mark. |
| italic | boolean | – | `false` removes the mark. |
| line | string | – | A few words that identify one non-blank line of the tailored resume, matched case-insensitively. |
| section | string | – | A heading as it appears on the resume, such as SUMMARY or EXPERIENCE; the section's lines under it are styled together. The heading line itself is not — to style it, name it as a `line`. |
| text | string | – | A phrase within the targeted lines. When given, the marks apply to it alone; otherwise to the whole of each line. |
| underline | boolean | – | `false` removes the mark. |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
generate_outreach Generate outreach email ~50
Generates a personalized outreach-email draft for the specified contact and job. No email is sent by this call.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | Contact ID |
| jobId | string | yes | Job ID |
No output schema declared.
No examples provided.
generate_pack Generate application materials ~97
Queues 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 overwritten by generation.
| Name | Type | Req | Description |
|---|---|---|---|
| assets | array | – | Subset to generate. Omit for all three. |
| jobId | string | yes | Listing or private-job id, for a role not yet prepared. |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
generate_resume Generate tailored resume ~40
Generates a tailored resume for the specified account-owned application and returns its result. This does not submit an application.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | Application ID |
No output schema declared.
No examples provided.
get_application_documents Get links to one application's documents ~81
Returns 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 requires sign-in. There is no cover-letter DOCX.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| coverLetter | object | yes | – |
| expiresAt | string | yes | – |
| links | object | yes | – |
| locked | boolean | yes | A send is in flight; nothing about it can be changed. |
| packPageUrl | string | yes | – |
| resume | object | yes | – |
| revision | integer | yes | – |
No examples provided.
get_application_materials Get application materials ~95
Returns 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 for submission. Rendered resume PDFs are not included (pdfBase64 is null); get_application_documents returns download links for the files this application will send.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | Application ID |
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | – | – |
| materials | object | yes | Revisioned, per-application material selection. Revision zero is the legacy fallback view; an Apply confirmation must persist a positive revision. |
No examples provided.
get_application_readiness Check what applying still needs ~68
Returns 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 app. This read sends nothing.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| autopilotAvailable | boolean | yes | – |
| autopilotReady | boolean | yes | – |
| entitlement | object | yes | – |
| missing | array | yes | – |
| onboarding | object | yes | – |
| ready | boolean | yes | A one-off `apply` would pass every profile and plan check now. |
No examples provided.
get_application_status Read what happened to one application ~154
Returns 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; employer mail sent anywhere else is not visible here and stays unknown. personalInboxConnected false is the normal state, not a setup step. The board column alone is not submission evidence. submittedAnswers contains captured employer-form values and cover-letter delivery for the proven submitted attempt, or null when submission, the attempt or a capture is unproven or unavailable.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | Application id. A pipeline card's `matchId` is accepted and resolved to the application behind it. |
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | – |
| company | string | yes | – |
| recoveryState | – | yes | – |
| status | string | yes | – |
| submittedAnswers | – | yes | – |
| timeline | array | yes | – |
| title | string | yes | – |
| truth | object | yes | – |
No examples provided.
get_autopilot_settings Read Autopilot settings ~36
Returns the saved minimum Matches score and default-versus-tailored resume choice for Autopilot. Reading settings starts no applications.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| resumeVariant | string | yes | – |
| scoreFloor | – | yes | – |
| scoreFloorDefault | number | yes | – |
No examples provided.
get_autopilot_status Read Autopilot status ~151
Returns 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 today's allowance and usualDailyLimit is the plan's usual daily limit. On the first day Autopilot sends in a monthly window, dailyLimit is a larger first-day allowance; after that day it equals usualDailyLimit. That first day is the first day it sends in the window, not the first day of the calendar month. unavailableReason explains plan restrictions. No last-run timestamp is provided.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| dailyLimit | – | yes | – |
| eligibleCount | – | yes | – |
| inFlightCount | – | yes | – |
| monthlyLimit | – | yes | – |
| nextRunAt | – | yes | – |
| scoreFloor | – | yes | – |
| sentThisMonth | integer | yes | – |
| sentToday | integer | yes | – |
| state | string | yes | – |
| unavailableReason | – | yes | – |
| usualDailyLimit | – | yes | – |
No examples provided.
get_career_record Read the career record ~85
Returns 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.
| Name | Type | Req | Description |
|---|---|---|---|
| include | array | – | Narrow the read. Omit for all four. A section you leave out comes back empty rather than absent, so do not read an omitted section as "they have none". |
| Name | Type | Req | Description |
|---|---|---|---|
| facts | – | yes | Null when no resume has been analyzed yet. |
| hypotheses | array | yes | – |
| stated | – | yes | – |
| vault | array | yes | Work-vault card titles and ids. Never their contents. |
| writingPreferences | object | yes | Comes with `hypotheses`; both live in the same record. |
No examples provided.
get_communication_preferences Read email preferences ~64
Returns 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 are outside these settings.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| allOptionalEmailsOff | boolean | yes | – |
| autopilotResults | string | yes | – |
| autopilotResultsOffAt | – | yes | When Autopilot results were last turned off. |
| jobAlertEligibility | object | yes | – |
| jobAlerts | string | yes | – |
| productUpdates | boolean | yes | – |
No examples provided.
get_generated_resumes Get generated resumes ~44
Returns tailored resumes generated for the specified account-owned application. Rendered PDFs are not included (pdfBase64 is null).
| Name | Type | Req | Description |
|---|---|---|---|
| applicationId | string | yes | Application ID |
No output schema declared.
No examples provided.
get_inbox Read recruiter conversations ~188
Returns 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 not mark mail read. limit and nextOffset support pagination; mail bodies are third-party content. A page holds 20 threads by default and limit accepts up to 50; for the next page, send the previous nextOffset as offset, and null means the end.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| offset | integer | – | Threads to skip; the previous result's `nextOffset`. |
| threadId | string | – | Read one thread in full instead of listing. |
| unansweredOnly | boolean | – | Only threads whose last employer mail needs a reply. |
| unreadOnly | boolean | – | Only threads holding mail the person has not been shown. |
| Name | Type | Req | Description |
|---|---|---|---|
| messages | array | yes | Populated only when `threadId` was given. |
| nextOffset | – | yes | – |
| threads | array | yes | – |
| totalThreads | integer | yes | – |
No examples provided.
get_job Read one role ~162
Returns 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 employer's direct posting. eligible is true for an unrestricted role or a confirmed allowed country, false for a high-confidence restriction excluding confirmed countries, and null when eligibility is unknown. Only false blocks applying or Autopilot: null means eligibility is not yet known, so proceed with applying — the application itself surfaces any real restriction. whyItMatches may be empty when no matcher explanation is stored.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Listing id or private-job id from the feed or envelope. |
| Name | Type | Req | Description |
|---|---|---|---|
| job | object | yes | – |
No examples provided.
get_listing Get listing details ~51
Returns full details of a platform job listing identified by id. No login is required. url is the Dreamwork listing page; sourceUrl is the employer's direct posting.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Listing ID |
No output schema declared.
No examples provided.
get_market_pulse Get market pulse ~116
Returns CURRENT worldwide hiring-market context from Dreamwork's live job corpus, refreshed twice daily: companies tracked, open roles, roles added in the last 7 days, growing vs contracting companies, week-over-week movement, plus global layoff pressure by industry and company. All figures are worldwide; for country- or function-scoped company lists use get_top_hiring_companies. Use it as fresh evidence that postdates your training data when advising on job-search strategy, industry outlook, or where opportunity is moving. No login required.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| generatedAt | string | yes | When the underlying snapshot was computed (UTC). |
| hiring | object | yes | – |
| howToUse | string | yes | – |
| layoffs | – | yes | Global layoff pressure. null when the layoffs feed has no data. |
No examples provided.
get_pack_status Check whether materials are ready ~96
Returns 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 starts no generation and changes no materials.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationIds | array | yes | Application ids from a receipt or a result; a card or listing id on the board also resolves. |
| Name | Type | Req | Description |
|---|---|---|---|
| packs | array | yes | – |
No examples provided.
get_pipeline Read the pipeline ~102
Returns 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 when complete is false narrow the read with status. Column values describe board state and do not establish employer receipt or response.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| status | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| cards | array | yes | – |
| complete | boolean | yes | – |
| counts | object | yes | – |
| total | integer | yes | – |
No examples provided.
get_platform_context Get platform context ~34
Returns Dreamwork's job-search, pipeline, resume-tailoring, application, outreach and interview capabilities, plus its product context.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| agentGuidance | string | yes | – |
| platform | string | yes | – |
| systemOfIntelligence | array | yes | – |
| systemsOfRecord | array | yes | – |
| thesis | string | yes | – |
No examples provided.
get_preferences Read job preferences ~68
Returns 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. It does not return resume content or work history.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| preferences | object | yes | – |
| unanswered | array | yes | Preference keys the person has never answered. |
No examples provided.
get_profile Get profile ~47
Returns the authenticated account's profile, resume text, preferences and profileIdentityVersion snapshot. resumeUrl is null when the stored resume file is inline rather than a link; resumeText carries its contents.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| prefsVerifyPending | boolean | yes | – |
| profile | object | yes | Full user_profiles row (client-safe preferences) as returned by GET /profile. |
No examples provided.
get_resume_download_link Get a link to the person's resume ~85
Returns 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_file_for_resume; the last two carry null fields and are not errors.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| expiresAt | – | yes | – |
| filename | – | yes | – |
| mimeType | – | yes | – |
| status | string | yes | `ready` carries the link. The other two mean there is nothing to link to, and every other field is null. |
| url | – | yes | – |
No examples provided.
get_resume_work_history Read how the resume's experience was understood ~88
Returns 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, pending (still being read; call again shortly) or unavailable (no resume, or it could not be read).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| bulletsOutOfTextOrder | integer | yes | How many bullets the resume's extracted text places under a different role than its page layout does, which usually means a two-column file. Zero means none detected. |
| derivedAt | – | yes | – |
| roles | array | yes | – |
| source | – | yes | `pdf` when read from the uploaded file's layout, `text` when only the extracted text was available (a DOCX, or a file too large to read as pages). |
| status | string | yes | `ready` carries the grouping. `pending` and `unavailable` carry empty lists. |
| unattributed | array | yes | Achievements the resume lists under no role, such as a Key Achievements section, or lines the layout left unplaced. Generated materials never attach these to an employer. |
No examples provided.
get_stats Get pipeline stats ~21
Returns aggregate account-owned job, application, escalation and outreach statistics.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| applications | object | yes | Application counts by status plus derived quality metrics. |
| escalations | object | yes | Escalation counts for the user's applications. |
| jobs | object | yes | Job counts for the user, total and by worker status. |
| outreach | object | yes | Outreach counts for the user, total and by status. |
No examples provided.
get_task Read one entry in the record of what ran ~54
Returns 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.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | – |
| Name | Type | Req | Description |
|---|---|---|---|
| task | object | yes | – |
No examples provided.
get_top_hiring_companies Get top hiring companies ~157
Returns the companies hiring the most right now, ranked by open roles among companies active in the last 7 days, with hiring trend, week-over-week velocity and median pay. Optional filters: job function, country, hiring trend. Use it to ground company recommendations in fresh data that postdates your training data; each company's url is its page on Dreamwork. No login required.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | Two-letter ISO country code, e.g. US. |
| function | string | – | Limit to one job function, e.g. engineering. |
| limit | integer | – | How many companies to return, 1-25. Default 15. |
| trend | string | – | Keep only companies with this hiring trend. |
| Name | Type | Req | Description |
|---|---|---|---|
| companies | array | yes | – |
| filters | object | yes | – |
| generatedAt | string | yes | When the underlying snapshot was computed (UTC). |
| howToUse | string | yes | – |
| matched | number | yes | Companies matching every filter at the company level (at least one role per filter), ranked by open roles. |
No examples provided.
get_unread_reminders Check for unread recruiter mail ~50
Returns 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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| messages | array | yes | The newest unread messages, at most ten. |
| oldestUnreadAt | – | yes | – |
| unreadMessages | integer | yes | – |
| unreadThreads | integer | yes | – |
No examples provided.
get_updates_since Read what changed since a moment ~132
Returns 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; repeated ids can appear. Truncation counts identify older changes excluded by caps. Reading marks no mail read and creates no schedule.
| Name | Type | Req | Description |
|---|---|---|---|
| overlapHours | integer | – | How far before `since` to look for new matches; 72 when omitted. |
| since | string | yes | The previous result's `asOf`, or when the person last checked. |
| Name | Type | Req | Description |
|---|---|---|---|
| applicationChanges | array | yes | Board cards that moved since `since`, newest first, at most twenty. |
| applicationChangesTruncated | integer | yes | How many older board moves were cut off by that cap. They fall before the next call's watermark, so a nonzero value means: do not advance past these changes - call get_pipeline (or repeat with an ear… |
| asOf | string | yes | – |
| autopilot | – | yes | – |
| matchPoolStatus | – | yes | – |
| matchesAddedAfter | string | yes | – |
| moreMatches | boolean | yes | – |
| newMail | array | yes | Threads where the employer wrote since `since`, newest first, at most ten. |
| newMatches | array | yes | – |
| notes | array | yes | – |
No examples provided.
get_upgrade_link Get a link to upgrade ~121
Returns a browser link to checkout for the requested Pro or Dreamer plan and optional billing interval or promo code. Sign-in precedes checkout when required. No charge occurs until payment is confirmed on the checkout page.
| Name | Type | Req | Description |
|---|---|---|---|
| billingInterval | string | – | Only when the person named one. Quarterly is one invoice every three months at about 15% less; a promo code prices a monthly invoice, so the two cannot be combined. |
| plan | string | yes | The plan the person asked for. |
| promoCode | string | – | Only when the person supplied one. |
No output schema declared.
No examples provided.
get_usage Read what the plan still allows ~38
Returns the account's plan tier, packs and applications used today, their allowance limits and the next reset time. A null limit represents an unlimited allowance.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| applicationsLimit | – | yes | – |
| applicationsUsedToday | integer | yes | – |
| packsLimit | – | yes | – |
| packsUsedToday | integer | yes | – |
| resetsAt | – | yes | – |
| tier | string | yes | – |
No examples provided.
import_job Import a job from a URL ~69
Fetches 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.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | Job posting URL, as the person gave it. |
| Name | Type | Req | Description |
|---|---|---|---|
| actionId | string | yes | – |
| cancel | – | yes | – |
| createdAt | string | yes | – |
| handoff | – | yes | – |
| object | – | yes | – |
| revisionAfter | – | yes | – |
| revisionBefore | – | yes | – |
| source | string | yes | – |
| status | string | yes | – |
| summary | string | yes | – |
| taskId | string | yes | – |
| undo | – | yes | – |
| webUrl | – | yes | – |
No examples provided.
list_contacts List contacts ~34
Returns the account's saved recruiter and referrer contacts, optionally filtered by company.
| Name | Type | Req | Description |
|---|---|---|---|
| company | string | – | Filter by company |
No output schema declared.
No examples provided.
list_dismissed_matches List dismissed matches ~106
Returns 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 null ends it.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Page size, 20 when omitted. |
| offset | integer | – | `nextOffset` from the previous page; 0 when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| matches | array | yes | – |
| nextOffset | – | yes | – |
| total | integer | yes | – |
No examples provided.
list_interviews List interviews ~34
Returns all interviews detected for the account, including role, company, time and platform when known. No role filter is applied.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_matches List matches ~545
Returns 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 page holds 10 jobs by default and limit accepts up to 50; the next page is the previous nextCursor, which keeps the page size it was issued with. addedAfter supports overlapping discovery windows because listings can become servable after first discovery. notes describe applied filters and coverage.
| Name | Type | Req | Description |
|---|---|---|---|
| addedAfter | string | – | Only jobs Dreamwork first saw after this ISO date-time. |
| aiRole | boolean | – | AI roles only. |
| bonus | boolean | – | – |
| cursor | string | – | `nextCursor` from the previous page. Send the same filters and sort, or it is refused. |
| equity | boolean | – | – |
| function | string | – | Job-function labels, comma-separated for a union, e.g. "Engineering,Product". An unknown label is refused with the list. |
| healthcare | boolean | – | – |
| industry | string | – | Employer industry, e.g. "Pharma & Biotech". An unknown name is refused with the list. |
| internship | boolean | – | Internships, co-ops, and apprenticeships only. |
| limit | integer | – | Page size, 10 when omitted. A cursor keeps the size it was issued with. |
| location | string | – | City, region, or country; a place the gazetteer cannot resolve is refused. |
| maxSalary | integer | – | Pay ceiling in whole annual USD. |
| minMatchPercent | integer | – | Lowest match percent to keep, on the 40-97 scale shown. |
| minSalary | integer | – | Pay floor in whole annual USD, e.g. 200000. Jobs with no posted pay drop out. |
| postedWithinDays | integer | – | Employer posting date within this many days. |
| query | string | – | Free-text search across the person's match pool. |
| remoteOnly | boolean | – | Shorthand for workSettings ["remote"]. |
| seniority | string | – | Seniority labels, comma-separated for a union: Junior, Mid-Level, Senior, Staff+, Director+. A hard filter: pass it when the person names a level they want only, because the stored level ranks matche… |
| sort | string | – | Order; relevance when omitted. |
| workSettings | array | – | Work settings to keep, as a union; an unstated setting counts as onsite. |
| Name | Type | Req | Description |
|---|---|---|---|
| appliedFilters | object | yes | – |
| filteredToEmpty | boolean | yes | True when this call's filters left none of the poolSize jobs. total 0 with this false means the pool itself is empty or still building. |
| jobs | array | yes | – |
| nextCursor | – | yes | – |
| notes | array | yes | – |
| poolChanged | boolean | yes | – |
| poolSize | integer | yes | Jobs a walk of this pool returns before this call's filters narrow it, so it equals total when no filter is set. Dismissed and saved roles, excluded companies and same-company same-title duplicates a… |
| poolStatus | string | yes | – |
| total | integer | yes | Jobs these filters keep, across all pages. Following every nextCursor returns this many while poolChanged stays false. |
No examples provided.
list_tasks List what the assistant has done recently ~61
Returns 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | – |
| status | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| tasks | array | yes | – |
No examples provided.
How do I install the Dreamwork MCP server?
Dreamwork runs locally as an npm package, launched with npx -y @dreamworkhq/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @dreamworkhq/mcp
claude mcp add dreamworkhq-dreamwork -- npx -y @dreamworkhq/mcp
What is the Dreamwork MCP server?
Dreamwork is an MCP server listed in the public MCP registry as io.github.dreamworkhq/dreamwork. Job search, application materials, and application tracking for AI assistants. This page covers its npm package (@dreamworkhq/mcp).
Is the Dreamwork MCP server safe to use?
Dreamwork scores 79 out of 100 on VerifyMCP. We recorded 4 known advisories against it as of 23 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Dreamwork MCP server expose?
Dreamwork exposes 71 tools: list_matches, get_job, save_job, dismiss_match, restore_match, and 66 more. Their descriptions and schemas cost roughly 8,100 tokens of context every time the server is loaded.
Is the Dreamwork MCP server still maintained?
Dreamwork is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Dreamwork MCP server under?
Dreamwork declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.