Skip to main content
Glama

100Hires - AI ATS & Recruitment Software

hires_upload_attachment

Upload a base64 file as an attachment. voicemail: wav/mp3, max 20 MB, no object_id, the returned uuid serves as attachment_uuid in nurture voicemail steps. Returns uuid, url, file, relative_time.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fileYes
categoryYesDetermines allowed extensions and the object_id owner type
object_idNoOwner id per category: candidate, application, comment, job note or company; omit for voicemail
company_idNoCompany that owns object_id; default: the authenticated company

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / category / description
      Previous value: -"Attachment category. Determines allowed extensions and object_id semantics."New value: +"Determines allowed extensions and the object_id owner type"
    • changedInput schema / properties / company_id / description
      Previous value: -"Target company ID. Needed for partner API keys managing multiple client companies. Omitted → defaults to the authenticated company. The object_id must belong to this company (strict match)."New value: +"Company that owns object_id; default: the authenticated company"
    • removedInput schema / properties / file / additionalProperties
      Removed value: -false
    • removedInput schema / properties / file / description
      Removed value: -"File payload."
    • changedInput schema / properties / file / properties / data / description
      Previous value: -"Base64-encoded file bytes."New value: +"Base64 content"
    • changedInput schema / properties / file / properties / file_name / description
      Previous value: -"Original file name (with extension, e.g. `greeting.mp3`)."New value: +"With extension, e.g. greeting.mp3"
    • changedInput schema / properties / file / properties / mime_type / description
      Previous value: -"MIME type (e.g. `audio/mpeg`, `application/pdf`)."New value: +"e.g. audio/mpeg, application/pdf"
    • changedInput schema / properties / file / properties / size / description
      Previous value: -"Optional file size in bytes."New value: +"Bytes"
    • changedInput schema / properties / object_id / description
      Previous value: -"Target object ID (candidate/application/comment/job-note/company, per category). Omit for `voicemail`."New value: +"Owner id per category: candidate, application, comment, job note or company; omit for voicemail"
  2. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate this is not read-only and not destructive. The description adds meaningful behavioral context beyond the annotations: voicemail wav/mp3 constraints, the 20 MB limit, the no-object_id rule, and the downstream purpose of the returned uuid. It does not cover error behavior, but that is not a critical gap for an upload operation.

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

Conciseness5/5

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

Three short sentences, each earning its place: one states the operation, one gives key usage constraints, and one states the return values. There is no filler or repetition.

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 4-parameter tool with a nested file object and no output schema, the description covers the required inputs, important constraints, and return fields. It leaves some category-specific nuances to the schema, but together they are sufficient. More explicit guidance about choosing among sibling upload tools would improve completeness.

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?

With 75% schema coverage, the schema documents most parameters. The description adds useful semantics by specifying voicemail file types, maximum size, and the no-object_id case, while also explaining that the returned uuid becomes attachment_uuid in nurture voicemail steps. It does not expand on every category's object_id requirements, but the schema partly covers that.

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

Purpose4/5

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

The description clearly states the tool's action and resource: 'Upload a base64 file as an attachment.' It also adds voicemail-specific context that sharpens the purpose. However, it does not distinguish this tool from sibling tools like hires_upload_application_attachment or hires_upload_candidate_file, so it stops short of a 5.

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

Usage Guidelines3/5

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

The voicemail details and the note about 'attachment_uuid in nurture voicemail steps' imply when this tool is useful. But the description never explicitly says when to prefer this tool over the more specialized upload siblings, and it gives no exclusionary guidance.

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.