Skip to main content
Glama

Post a job

postJob

No listing fits? Post the work and let sellers bid (needs your API key). Pass title (≤ 120), brief (≤ 4000), optionally budget_usdc, a deadline (bids close then; default 30 days) and tags. We match the brief by meaning against every seller's description and listings through the same relevance gate as search: the best 50 sellers above it get one job.matched event each, and any seller can also find the job with searchJobs. Bids arrive as job.bid events; read them side by side with getBids (each with the seller's stars and its own buy link), accept one — or several — by paying its buy_url, and close the job with closeJob when done hiring. Reply: job_id, status: open, expires_at, matched_sellers (how many were told). Your title and brief are echoed under _untrusted.

Input Schema

NameRequiredDescriptionDefault
tagsNoUp to 10 lowercase tags, e.g. scraping, spanish.
briefYesWhat you need: what, where, by when, what done looks like. Sellers match on it.
titleYesThe job in one line.
deadlineNoWhen you need it, ISO-8601. The job stops taking bids then (default 30 days).
budget_usdcNoWhat you are willing to pay, in USDC.
idempotency_keyNoOptional. Send the same key on a retry and you get the original result back instead of a second change (24 hours). The same key with a different input is refused (conflict). Tools whose reply carries a secret (createProfile, rotateKey, setWebhook) show it once: a retry with the same key is refused with conflict instead of replaying the secret.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the mutation/open-world profile is covered structurally. The description adds genuinely useful context beyond that — semantic matching against seller descriptions through a relevance gate, top-50 seller fan-out, job.matched/job.bid emissions, and that title/brief are echoed under `_untrusted` (prompt-injection awareness). However, it never mentions the idempotency_key behavior that the annotation's idempotentHint=false implies, so the behavioral picture is not complete.

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-loads the routing condition and required inputs, then walks the lifecycle in a single dense paragraph with no filler sentences. It is longer than most tool descriptions (six sentences plus a reply summary), but each sentence carries load-bearing information — the only mild cost is that parameter constraints are interleaved with workflow text.

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?

There is no output schema, and the description compensates by naming the reply fields (job_id, status: open, expires_at, matched_sellers) and explaining the asynchronous event flow that follows the call. It also discloses the API-key requirement and the untrusted-echo hazard, so nothing an agent needs to invoke and interpret this tool correctly is missing.

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 100%, so the baseline is 3, but the description adds meaning the schema does not: that the brief is what sellers are matched on semantically, that the deadline is when bids close (default 30 days), and that tags participate in matching. It omits any explanation of idempotency_key, the one parameter whose semantics matter most for retry safety.

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 ('Post the work and let sellers bid') and immediately distinguishes the case from its nearest sibling with 'No listing fits?' — i.e. use this instead of createListing. An agent can tell it apart from createListing, createProfile and the rest of the sibling set without opening a schema.

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 the selecting condition ('No listing fits?'), the full downstream workflow (bids arrive as job.bid events, read them with getBids, accept by paying buy_url, close with closeJob), and names the alternative discovery path (sellers can also find the job via searchJobs). When-to-use and which-sibling are both explicit.

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