Skip to main content
Glama

Ask for a referral to a job

request_referral
Destructive

Requires techjobs.vn sign-in. Asks the referrers the user chose (from list_company_referrers, 1 to 5) at the job's company to refer the signed-in user, with a copy of their CV chính (primary CV) and their message. Only the chosen referrers receive it; the first to take it handles it. If list_company_referrers returns nobody, call it without referrer_handles: the request joins the company's waiting list and a referrer who joins later sees it. Two steps: call without confirm_token to get a preview (nothing is sent) and show it to the user; only after the user explicitly agrees, call again with the same job_id, message and referrer_handles plus the confirm_token. A sent request goes to real people and cannot be taken back. Limited to a few requests per week.

Input Schema

NameRequiredDescriptionDefault
job_idYesJob id from search_jobs, get_job or suggest_jobs_for_me.
messageYesThe user's message to the referrer, in their own words (why they fit the job). Sent exactly as given; it may be empty.
confirm_tokenNoOmit to get a preview. Pass the confirm_token from the preview, with the same job_id, message and referrer_handles, only after the user explicitly agreed to send.
share_outcomeNotrue = the referrer who refers the user is told later, without details, when the user records being contacted, interviewing, an offer or the job in their tracker (never rejections). Default false; ask the user.
referrer_handlesNoHandles of the referrers the user chose from list_company_referrers (1 to 5). Only these referrers receive the request; the first one to take it handles it. Omit it only when list_company_referrers returned nobody: the request then joins the company's waiting list.

Output Schema

NameRequiredDescriptionDefault
resultYes
previewNoWhat would be sent (result preview). Nothing was sent yet.
requestNoThe request that was sent (result sent).
requests_urlYesWhere the user follows their referral requests on techjobs.vn.
confirm_tokenNoValid 10 minutes, for this user, job, message and chosen referrers.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing sign-in requirement, per-week rate limit, that only chosen referrers receive it with first-to-take ownership, that a sent request reaches real people and cannot be undone, and that the unconfirmed call sends nothing. These are exactly the operational facts an agent needs given destructiveHint=true and idempotentHint=false.

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?

Dense but front-loaded: sign-in and the core action come first, then the fallback, then the two-step confirmation, then the irreversibility and rate-limit warnings. No filler sentences, though the long compound middle sentences slow scanning slightly.

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

Completeness4/5

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

For a destructive, non-idempotent, open-world mutation with an output schema, it covers auth, flow, failure fallback and irreversibility. The only omission is the behavioral consequence of share_outcome (that the referrer is later told about progress), which is described only inside the schema property.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning: the 1-to-5 referrer cap and first-taker semantics, the omission rule for referrer_handles, and the rule that confirm_token must be reused with identical job_id, message and referrer_handles. share_outcome is left entirely to the schema, which keeps this from a 5.

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+resource ('Asks the referrers ... to refer the signed-in user') with concrete scope: chosen referrers at the job's company, CV plus message attached. It also names the sibling it depends on (list_company_referrers), so the agent can distinguish it from claim_referral_request or list_referral_requests without opening schemas.

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?

Explicit when-to-use and when-not-to: call with referrer_handles normally, omit them only when list_company_referrers returns nobody so the request joins the waiting list. It also mandates the preview-then-confirm sequence and the condition that the user must explicitly agree before the second call.

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