Skip to main content
Glama

Consultant.dev

Upload a CV for assignment matching

upload_cv
Destructive

Upload the user's CV (resume) to consultant.dev so live assignments can be scored against it. Use this tool when the user offers, attaches, or asks you to use their CV to find assignments that suit them. Pass the document as base64 in document_base64. If you have already read the document's text, pass it as cv_text as well, which avoids re-parsing the file. Matching starts immediately; call my_matches afterwards to read the scored results. Before using this tool, make sure the user actually wants their CV uploaded, and tell them what it does: the CV is stored on their consultant.dev account and REPLACES any CV already on file; it is processed by AI to extract skills and experience, which the account holder must have consented to once on consultant.dev (this tool cannot collect that consent and will say so if it is missing); and if the account has match alert emails switched on, a stored CV is used to generate those emails. The user can remove the CV or change their email settings at any time on consultant.dev.

Input Schema

NameRequiredDescriptionDefault
cv_textNoThe plain text of the CV, if you have already read it. Omit to have the PDF read server side.
filenameYesThe document's filename, e.g. 'cv.pdf'
document_base64YesThe CV file (PDF) encoded as base64

Output Schema

NameRequiredDescriptionDefault
stageNoPipeline stage the upload reached, e.g. parsing
messageYesHuman-readable summary of what happened
acceptedYesWhether the CV was accepted and matching started

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true; the description independently explains exactly what gets destroyed ('REPLACES any CV already on file'), that processing is AI-based, that prior account-level consent is required and cannot be collected here, and that match-alert emails may result. This is far beyond the safety hints and is exactly the kind of context a write tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action and the trigger, then the mechanics, then the caveats — a sensible ordering. It is on the long side for a three-parameter tool, but nearly every sentence carries distinct operational or consent information rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the write's side effects, consent gating, follow-up read step, and reversibility (user can remove the CV in the account), which is complete for a destructive upload. An output schema exists, so no return-value explanation is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so filename, document_base64, and cv_text are already documented in the schema, including the 'omit to have the PDF read server side' tradeoff. The description restates the base64 and cv_text guidance with only marginal added framing ('avoids re-parsing the file'), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (upload the user's CV) plus the downstream effect (live assignments scored against it), which no sibling does. It is clearly distinguished from my_matches, which it explicitly names as the follow-up read tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger ('when the user offers, attaches, or asks you to use their CV'), a precondition (confirm the user actually wants the upload and consent precedent exists), and the next tool to call (my_matches). Nothing about when to use or avoid this tool is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources