Dreamwork
by dreamworkhq · remote · local (npm) · no sign-in to list tools · v1.9.1 · published by GitHub user dreamworkhq
Job search, application materials, and application tracking for AI assistants.
71 tools: 8 can delete or cancel things, 1 do something that can't be undone, 29 change things and 33 only read.
Scanned Oct 21, 2026
- Deletes or cancels8Claude Code: deny: see these tools
- Can't be undone1Claude Code: ask: see these tools
- Changes things29Claude Code: ask: see these tools
- Only reads33Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcpFindings
Matches of fixed checks, with the text they matched.
The description mentions "credentials".
What this check looks forMatched text
description: "...ng numbers, titles, employers, dates or credentials requires evidenceIds. Unsupported resum..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
71 tools
Deletes or cancels 8Claude Code: deny
applySubmits one application to an employer under the account holder's name using the saved materials at expectedRevision.Reads text others writeNo findings
Why it is in this group
- The name "apply" says "apply": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- title: Apply to a job
cancel_applyStops a queued or in-progress application when submission can still be prevented.No findings
Why it is in this group
- The name "cancel_apply" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Stops a queued or in-progress application when submission can still be prevented. Already submitted applications cannot be recalled; the receipt reports that boundary.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- title: Cancel an application that is still sending
forget_hypothesisDeletes the specified unconfirmed career hypothesis from the account's stored hypotheses.No findings
Why it is in this group
- The description's first verb is "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Deletes the specified unconfirmed career hypothesis from the account's stored hypotheses. Existing confirmed career facts and stated preferences are unaffected.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- title: Forget a guess
replace_application_documentReplaces one application's resume or cover letter with the person's supplied text or raw-base64 PDF, DOCX, TXT or MD.No findings
Why it is in this group
- The name "replace_application_document" says "replace": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Replaces 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, while other formats are rendered from extracted text. expectedRevision is required; locked or sent applications are refused. The account's main resume is unaffected.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: true
- title: Use the person's own document for one application
reply_to_recruiterSends the supplied reply text to one existing recruiter conversation under the account holder's identity.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "reply_to_recruiter" says "reply": a word for sending, and what is sent cannot be taken back.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe name "reply_to_recruiter" says "reply": it sends or publishes something to other people.
Description, as the server wrote it Sends 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 begin with inbound: cannot receive replies through this endpoint.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- title: Reply to a recruiter
set_autopilotSets Autopilot on or off after explicit consent.Reads text others writeNo findings
Why it is in this group
- The name "set_autopilot" says "set": a word for a change.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Sets 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 monthly limits remain determined by the plan.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: true
- title: Turn Autopilot on or off
update_profileUpdates profile text fields such as name, email, phone and tone.No findings
Why it is in this group
- The name "update_profile" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Updates profile text fields such as name, email, phone and tone. Identity-bound changes require profileIdentityVersion matching the current profile snapshot. This endpoint does not upload a resume file.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
- title: Update profile
upload_resumeUploads original resume-file bytes encoded as base64 with PDF, DOCX, TXT, MD, PNG, JPG, JPEG or WEBP format and the current profileIdentityVersion.No findings
Why it is in this group
- The name "upload_resume" says "upload": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Uploads original resume-file bytes encoded as base64 with PDF, DOCX, TXT, MD, PNG, JPG, JPEG or WEBP format and the current profileIdentityVersion. The server parses text, performs image OCR and generates PDF output. This replaces the account's main resume; stale identity versions are refused.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
- title: Upload resume
Can't be undone 1Claude Code: ask
update_preferencesMerges the supplied preference fields into the account's stored preferences and refreshes matching.No findings
Why it is in this group
- The name "update_preferences" says "update": a word for a change.
- The description's first verb is "merge": a word for a change that another call does not undo.
Description, as the server wrote it Merges 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 restores resume-derived seniority. excludedCompanies, excludedPlaces and excludedSeniorities replace the lists of companies, places and levels hidden from matches, alerts and Autopilot; an excludedPlaces name that cannot be placed refuses the write. Autopilot never applies below the pay floor or outside the accepted work modes. Work modes and relocation are stored together, with omitted values preserved.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Update job preferences
Changes things 29Claude Code: ask
add_contactAdds a recruiter or referrer contact to the account using the supplied contact details.No findings
Why it is in this group
- The name "add_contact" says "add": a word for a change.
Description, as the server wrote it Adds a recruiter or referrer contact to the account using the supplied contact details.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
- title: Add contact
add_jobsAdds a job to the account's private pipeline using title, company and optional description, URL, contact email and application method.Can send data outNo findings
Why it is in this group
- The name "add_jobs" says "add": a word for a change.
What it can reach
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- openWorldHint: false
- title: Add job manually
confirm_hypothesisPromotes a stored hypothesis after the person confirms it, then deletes the hypothesis.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Confirm a guess
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.No findings
Why it is in this group
- The name "dismiss_match" says "dismiss": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Dismiss a match
edit_answerRevises one employer-question answer identified by questionId; other answers and documents remain unchanged.No findings
Why it is in this group
- The name "edit_answer" says "edit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Edit one application answer
edit_cover_letterRevises an existing application's cover letter using the supplied instruction.No findings
Why it is in this group
- The name "edit_cover_letter" says "edit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Edit the cover letter
edit_resumeRevises one application's tailored resume using the supplied instruction, preserving its formatting and regenerating the PDF.No findings
Why it is in this group
- The name "edit_resume" says "edit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Edit the tailored resume
format_resumeChanges alignment, bold, italic or underline formatting of a tailored resume without changing its words.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Change how part of the resume looks
generate_outreachGenerates a personalized outreach-email draft for the specified contact and job.No findings
Why it is in this group
- The name "generate_outreach" says "generate": a word for a change.
Description, as the server wrote it Generates a personalized outreach-email draft for the specified contact and job. No email is sent by this call.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Generate outreach email
generate_packQueues a tailored resume, cover letter and employer-question answers for one saved role.No findings
Why it is in this group
- The name "generate_pack" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Generate application materials
generate_resumeGenerates a tailored resume for the specified account-owned application and returns its result.No findings
Why it is in this group
- The name "generate_resume" says "generate": a word for a change.
Description, as the server wrote it Generates a tailored resume for the specified account-owned application and returns its result. This does not submit an application.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Generate tailored resume
import_jobFetches a public job-posting URL and imports it as a private role in the account's pipeline.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "import_job" says "import": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- title: Import a job from a URL
mark_applied_offsiteRecords an application the account holder submitted outside Dreamwork.Reads text others writeCan send data outNo findings
Why it is in this group
- The name "mark_applied_offsite" says "mark": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a URL (input.url): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Records 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-DD or ISO 8601, not in the future) is the reported application date and defaults to now; repeating the call with a new appliedAt corrects it. attestation:true is required and represents the person's confirmation that submission occurred. Recorded roles are excluded from matches and Autopilot. Applications Dreamwork is still sending are refused. There is no undo. This call does not send an application.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- title: Record an application made elsewhere
mark_messages_readMarks the specified recruiter messages read within one thread.Can send data outNo findings
Why it is in this group
- The name "mark_messages_read" says "mark": a word for a change.
What it can reach
- outboundThe name "mark_messages_read" says "mark" and "message": it writes something other people read.
Description, as the server wrote it Marks 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Mark recruiter messages read
move_pipelineMoves one role's board card to the requested column using the account holder's reported state.No findings
Why it is in this group
- The name "move_pipeline" says "move": a word for a change.
Description, as the server wrote it Moves 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. Closing a role can remove its listing from the feed. A receipt offers undo only when reversible.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Move a pipeline card
parse_preferences_textParses a sentence describing job preferences, applies supported fields and returns applied values and unparsed fragments.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Parses 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Set several preferences from one sentence
prepare_applicationsSaves and prepares materials for up to ten specified roles sequentially without submitting applications.No findings
Why it is in this group
- The description's first verb is "save": a word for a change.
Description, as the server wrote it Saves 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 are preserved. Each role returns its own outcome.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Prepare applications for several roles
remember_hypothesisStores an unconfirmed career hypothesis separately from established facts.No findings
Why it is in this group
- The description's first verb is "store": a word for a change.
Description, as the server wrote it Stores 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Remember a guess about the person
reopen_application_materialsOpens a new editable material revision only after the API establishes that a failed application cannot still submit.No findings
Why it is in this group
- The name "reopen_application_materials" says "reopen": a word for a change.
Description, as the server wrote it Opens 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- title: Edit materials for a safe retry
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.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Reverses 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 out of the feed.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Restore a dismissed match
restore_materialRestores a cover letter, tailored resume or answer to a recorded pre-edit version within its undo window.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restores 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Put a document back the way it was
save_application_answersSaves person-stated application-answer and contact groups through onboarding validation, then rechecks readiness and completes setup when no requirements remain.Can send data outNo findings
Why it is in this group
- The name "save_application_answers" says "save": a word for a change.
What it can reach
- outboundThe input takes a destination (input.contact.phone): what the tool writes goes there.
Description, as the server wrote it Saves 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. An empty answer set can finish otherwise-complete onboarding. Returns ready and stillMissing; no application is sent.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Save the person's application answers
save_jobSaves one role to the account's pipeline at SAVED as a bookmark.No findings
Why it is in this group
- The name "save_job" says "save": a word for a change.
Description, as the server wrote it Saves 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Save a job
start_checkoutReturns a checkout URL for the requested plan change after explicit consent.Reads text others writeNo findings
Why it is in this group
- The name "start_checkout" says "start": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Returns 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: true
- destructiveHint: false
- title: Start checkout
strengthen_applicationImproves an application's existing materials against its role and recorded career evidence, spending one refine allowance per changed asset.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...ng numbers, titles, employers, dates or credentials requires evidenceIds. Unsupported resum..."
Description, as the server wrote it Improves 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; previously completed asset edits are retained if a later asset fails.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Strengthen a whole application
undo_lastReverses the latest action with an available undo, or the action identified by taskId.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Reverses 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.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Undo the last thing that can be undone
update_application_materialsUpdates an application's resume selection, resume or cover-letter contents or inclusion at the expected optimistic revision.No findings
Why it is in this group
- The name "update_application_materials" says "update": a word for a change.
Description, as the server wrote it Updates 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.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- title: Update application materials
update_autopilot_settingsChanges the minimum Matches score from 50 to 97, with null restoring 70, or the default-versus-tailored resume choice.No findings
Why it is in this group
- The name "update_autopilot_settings" says "update": a word for a change.
Description, as the server wrote it Changes the minimum Matches score from 50 to 97, with null restoring 70, or the default-versus-tailored resume choice. Explicit consent is required. Changes apply to waiting applications and are rechecked before submission. This does not enable or resume Autopilot, recall sent applications or retry stopped applications.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Change Autopilot settings
update_communication_preferencesChanges the supplied optional email categories while preserving omitted settings.No findings
Why it is in this group
- The name "update_communication_preferences" says "update": a word for a change.
Description, as the server wrote it Changes 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 employer mail are unaffected.
Annotations the server declares
- readOnlyHint: false
- openWorldHint: false
- destructiveHint: false
- title: Change email preferences
Only reads 33Claude Code: allow
browse_listingsReturns indexed listings filtered by title or company keywords, function, seniority, work setting, location, pay, benefits, industry, AI role, internship and posting or discovery a…Reads text others writeNo findings
Why it is in this group
- The name "browse_listings" says "browse": a word for reading.
What it can reach
- untrusted-inputThe name "browse_listings" says "browse": it reads web pages, which anyone can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Browse job listings
- destructiveHint: false
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.Reads private dataNo findings
Why it is in this group
- The name "get_application_documents" says "get": a word for reading.
What it can reach
- private-dataThe name "get_application_documents" says "get" and "document": it reads documents.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get links to one application's documents
- destructiveHint: false
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.No findings
Why it is in this group
- The name "get_application_materials" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get application materials
- destructiveHint: false
get_application_readinessReturns readiness for one-off submission and Autopilot, plan entitlement and missing onboarding answers.No findings
Why it is in this group
- The name "get_application_readiness" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Check what applying still needs
- destructiveHint: false
get_application_statusReturns an application's event timeline and separate submitted, employerConfirmed and replied facts.No findings
Why it is in this group
- The name "get_application_status" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read what happened to one application
- destructiveHint: false
get_autopilot_settingsReturns the saved minimum Matches score and default-versus-tailored resume choice for Autopilot.No findings
Why it is in this group
- The name "get_autopilot_settings" says "get": a word for reading.
Description, as the server wrote it Returns the saved minimum Matches score and default-versus-tailored resume choice for Autopilot. Reading settings starts no applications.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read Autopilot settings
- destructiveHint: false
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…No findings
Why it is in this group
- The name "get_autopilot_status" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read Autopilot status
- destructiveHint: false
get_career_recordReturns resume-derived professional facts, document-vault metadata, person-stated preferences, writing preferences and unconfirmed hypotheses as separate fields.Reads private dataNo findings
Why it is in this group
- The name "get_career_record" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "document": it reads documents.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read the career record
- destructiveHint: false
get_communication_preferencesReturns job-alert settings and cadence, Autopilot result-email mode, product-update consent and the all-optional-emails-off state.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_communication_preferences" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "email": it reads mail.
- untrusted-inputThe description's first sentence says "return" and "email": it reads inbound email, which other people can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read email preferences
- destructiveHint: false
get_generated_resumesReturns tailored resumes generated for the specified account-owned application.No findings
Why it is in this group
- The name "get_generated_resumes" says "get": a word for reading.
Description, as the server wrote it Returns tailored resumes generated for the specified account-owned application. Rendered PDFs are not included (pdfBase64 is null).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get generated resumes
- destructiveHint: false
get_inboxReturns recruiter conversations ordered by newest activity, including role, message kind, unread state and whether the employer wrote last.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_inbox" says "get": a word for reading.
What it can reach
- private-dataThe name "get_inbox" says "get" and "inbox": it reads mail.
- private-dataThe description's first sentence says "return" and "conversation": it reads messages.
- untrusted-inputThe name "get_inbox" says "get" and "inbox": it reads inbound email, which other people can write.
- untrusted-inputThe description's first sentence says "return" and "conversation": it reads messages, which other people can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read recruiter conversations
- destructiveHint: false
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, mater…No findings
Why it is in this group
- The name "get_job" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read one role
- destructiveHint: false
get_listingReturns full details of a platform job listing identified by id.No findings
Why it is in this group
- The name "get_listing" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get listing details
- destructiveHint: false
get_market_pulseReturns 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 c…No findings
Why it is in this group
- The name "get_market_pulse" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
- title: Get market pulse
- destructiveHint: false
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.No findings
Why it is in this group
- The name "get_pack_status" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Check whether materials are ready
- destructiveHint: false
get_pipelineReturns saved and applied roles as board cards with column, application id and last-updated time.No findings
Why it is in this group
- The name "get_pipeline" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read the pipeline
- destructiveHint: false
get_platform_contextReturns Dreamwork's job-search, pipeline, resume-tailoring, application, outreach and interview capabilities, plus its product context.No findings
Why it is in this group
- The name "get_platform_context" says "get": a word for reading.
Description, as the server wrote it Returns Dreamwork's job-search, pipeline, resume-tailoring, application, outreach and interview capabilities, plus its product context.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
- title: Get platform context
- destructiveHint: false
get_preferencesReturns stated target functions, work locations and modes, relocation, pay floor, availability, deal-breakers, excluded companies, places and levels, seniority, AI-role interest an…No findings
Why it is in this group
- The name "get_preferences" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read job preferences
- destructiveHint: false
get_profileReturns the authenticated account's profile, resume text, preferences and profileIdentityVersion snapshot.No findings
Why it is in this group
- The name "get_profile" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get profile
- destructiveHint: false
get_resume_download_linkReturns a download link for the account's main profile resume as a PDF, with its expiry, filename and MIME type.No findings
Why it is in this group
- The name "get_resume_download_link" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get a link to the person's resume
- destructiveHint: false
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 …Reads private dataNo findings
Why it is in this group
- The name "get_resume_work_history" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "file": it reads files.
Description, as the server wrote it 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).
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read how the resume's experience was understood
- destructiveHint: false
get_statsReturns aggregate account-owned job, application, escalation and outreach statistics.No findings
Why it is in this group
- The name "get_stats" says "get": a word for reading.
Description, as the server wrote it Returns aggregate account-owned job, application, escalation and outreach statistics.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Get pipeline stats
- destructiveHint: false
get_taskReturns one account-owned assistant ledger entry by taskId, including action, status, receipt, error code, and creation and update times.No findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read one entry in the record of what ran
- destructiveHint: false
get_top_hiring_companiesReturns 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.No findings
Why it is in this group
- The name "get_top_hiring_companies" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
- title: Get top hiring companies
- destructiveHint: false
get_unread_remindersReturns unread recruiter-message and thread counts, oldest unread time and recent message previews with thread, company, role and kind.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_unread_reminders" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "message": it reads messages.
- untrusted-inputThe description's first sentence says "return" and "message": it reads messages, which other people can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Check for unread recruiter mail
- destructiveHint: false
get_updates_sinceReturns new matches, board-status changes, employer-mail threads and Autopilot state since the supplied timestamp.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_updates_since" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "return" and "mail": it reads mail.
- untrusted-inputThe description's first sentence says "return" and "mail": it reads inbound email, which other people can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read what changed since a moment
- destructiveHint: false
get_upgrade_linkReturns a browser link to checkout for the requested Pro or Dreamer plan and optional billing interval or promo code.Reads text others writeNo findings
Why it is in this group
- The name "get_upgrade_link" says "get": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "return" and "browser": it reads web pages, which anyone can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- idempotentHint: true
- openWorldHint: false
- title: Get a link to upgrade
- destructiveHint: false
get_usageReturns the account's plan tier, packs and applications used today, their allowance limits and the next reset time.No findings
Why it is in this group
- The name "get_usage" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: Read what the plan still allows
- destructiveHint: false
list_contactsReturns the account's saved recruiter and referrer contacts, optionally filtered by company.Reads private dataNo findings
Why it is in this group
- The name "list_contacts" says "list": a word for reading.
What it can reach
- private-dataThe name "list_contacts" says "list" and "contact": it reads contacts.
- private-dataThe description's first sentence says "return" and "contact": it reads contacts.
Description, as the server wrote it Returns the account's saved recruiter and referrer contacts, optionally filtered by company.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: List contacts
- destructiveHint: false
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.Reads text others writeNo findings
Why it is in this group
- The name "list_dismissed_matches" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "return" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: List dismissed matches
- destructiveHint: false
list_interviewsReturns all interviews detected for the account, including role, company, time and platform when known.No findings
Why it is in this group
- The name "list_interviews" says "list": a word for reading.
Description, as the server wrote it Returns all interviews detected for the account, including role, company, time and platform when known. No role filter is applied.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: List interviews
- destructiveHint: false
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.Reads text others writeNo findings
Why it is in this group
- The name "list_matches" says "list": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "return" and "url": it reads web pages, which anyone can write.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: List matches
- destructiveHint: false
list_tasksReturns recent account-owned assistant actions, newest first, across the site and MCP.No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
- title: List what the assistant has done recently
- destructiveHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
672 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 6 outbound tools breaks every one.
- Reads private data8
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write14
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out6
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__dreamwork__add_jobs",
"mcp__dreamwork__import_job",
"mcp__dreamwork__mark_applied_offsite",
"mcp__dreamwork__mark_messages_read",
"mcp__dreamwork__reply_to_recruiter",
"mcp__dreamwork__save_application_answers"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Remote posture
What anyone on the internet sees at the remote endpoint: an anonymous initialize and tools/list, and the public OAuth metadata.
Looked at Oct 22, 2026, 14:58 UTC, unchanged since Oct 22, 2026. No credentials were sent and no tool was called. What is looked at.
- Reachable
- yes
- HTTP status of an anonymous initialize
- 200
- tools/list served without credentials
- yes
- Tools that change things, listed without credentials
- 38
- Protocol version
- 2025-06-18
- WWW-Authenticate on 401
- not observed
- resource_metadata in WWW-Authenticate
- none
- RFC 9728 protected resource metadata
- https://mcp.dreamworkhq.com/.well-known/oauth-protected-resource/mcp
- Authorization servers
- https://api.dreamworkhq.com
- Legacy HTTP+SSE transport
- no
- Dynamic client registration
- yes
- Client ID metadata documents
- no
- HighThe whole server
The endpoint served tools/list without credentials, and the list has 38 tools that change things (8 destructive, 1 irreversible, 29 write). Whether a call also works without credentials was not tested: tools are never called.
What this check looks forMatched text
https://mcp.dreamworkhq.com/mcp: tools/list returned 71 tools to an anonymous client, including cancel_apply (destructive), replace_application_document (destructive), forget_hypothesis (destructive), set_autopilot (destructive), apply (destructive) and 33 more
Install
Pinned to version 1.9.1. Values in angle brackets are yours to fill in.
claude mcp add --transport http dreamwork https://mcp.dreamworkhq.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__dreamwork__list_matches",
"mcp__dreamwork__get_job",
"mcp__dreamwork__list_dismissed_matches",
"mcp__dreamwork__get_pipeline",
"mcp__dreamwork__get_pack_status",
"mcp__dreamwork__get_application_documents",
"mcp__dreamwork__get_preferences",
"mcp__dreamwork__get_application_readiness",
"mcp__dreamwork__get_career_record",
"mcp__dreamwork__get_resume_download_link",
"mcp__dreamwork__get_resume_work_history",
"mcp__dreamwork__get_communication_preferences",
"mcp__dreamwork__get_autopilot_settings",
"mcp__dreamwork__get_autopilot_status",
"mcp__dreamwork__get_application_status",
"mcp__dreamwork__get_inbox",
"mcp__dreamwork__get_unread_reminders",
"mcp__dreamwork__get_usage",
"mcp__dreamwork__get_task",
"mcp__dreamwork__list_tasks",
"mcp__dreamwork__get_updates_since",
"mcp__dreamwork__get_platform_context",
"mcp__dreamwork__get_application_materials",
"mcp__dreamwork__get_generated_resumes",
"mcp__dreamwork__list_contacts",
"mcp__dreamwork__get_profile",
"mcp__dreamwork__get_stats",
"mcp__dreamwork__list_interviews",
"mcp__dreamwork__browse_listings",
"mcp__dreamwork__get_market_pulse",
"mcp__dreamwork__get_top_hiring_companies",
"mcp__dreamwork__get_upgrade_link",
"mcp__dreamwork__get_listing"
],
"ask": [
"mcp__dreamwork__save_job",
"mcp__dreamwork__dismiss_match",
"mcp__dreamwork__restore_match",
"mcp__dreamwork__move_pipeline",
"mcp__dreamwork__mark_applied_offsite",
"mcp__dreamwork__import_job",
"mcp__dreamwork__generate_pack",
"mcp__dreamwork__prepare_applications",
"mcp__dreamwork__edit_cover_letter",
"mcp__dreamwork__edit_resume",
"mcp__dreamwork__format_resume",
"mcp__dreamwork__edit_answer",
"mcp__dreamwork__strengthen_application",
"mcp__dreamwork__restore_material",
"mcp__dreamwork__update_preferences",
"mcp__dreamwork__save_application_answers",
"mcp__dreamwork__parse_preferences_text",
"mcp__dreamwork__remember_hypothesis",
"mcp__dreamwork__confirm_hypothesis",
"mcp__dreamwork__update_communication_preferences",
"mcp__dreamwork__update_autopilot_settings",
"mcp__dreamwork__mark_messages_read",
"mcp__dreamwork__undo_last",
"mcp__dreamwork__start_checkout",
"mcp__dreamwork__add_jobs",
"mcp__dreamwork__update_application_materials",
"mcp__dreamwork__reopen_application_materials",
"mcp__dreamwork__generate_resume",
"mcp__dreamwork__add_contact",
"mcp__dreamwork__generate_outreach"
],
"deny": [
"mcp__dreamwork__cancel_apply",
"mcp__dreamwork__replace_application_document",
"mcp__dreamwork__forget_hypothesis",
"mcp__dreamwork__set_autopilot",
"mcp__dreamwork__apply",
"mcp__dreamwork__reply_to_recruiter",
"mcp__dreamwork__update_profile",
"mcp__dreamwork__upload_resume"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as dreamwork. Review it before you use it.
Capability tags behind 21 rules
- mcp__dreamwork__list_matches untrusted-input
- mcp__dreamwork__list_dismissed_matches untrusted-input
- mcp__dreamwork__mark_applied_offsite untrusted-input, outbound
- mcp__dreamwork__import_job untrusted-input, outbound
- mcp__dreamwork__get_application_documents private-data
- mcp__dreamwork__save_application_answers outbound
- mcp__dreamwork__get_career_record private-data
- mcp__dreamwork__get_resume_work_history private-data
- mcp__dreamwork__get_communication_preferences private-data, untrusted-input
- mcp__dreamwork__set_autopilot untrusted-input
- mcp__dreamwork__get_inbox private-data, untrusted-input
- mcp__dreamwork__get_unread_reminders private-data, untrusted-input
- mcp__dreamwork__mark_messages_read outbound
- mcp__dreamwork__get_updates_since private-data, untrusted-input
- mcp__dreamwork__apply untrusted-input
- mcp__dreamwork__reply_to_recruiter untrusted-input, outbound
- mcp__dreamwork__start_checkout untrusted-input
- mcp__dreamwork__add_jobs outbound
- mcp__dreamwork__list_contacts private-data
- mcp__dreamwork__browse_listings untrusted-input
- mcp__dreamwork__get_upgrade_link untrusted-input
