Himalayas Remote Jobs MCP Server
Server Details
Search remote jobs, post job listings, find remote candidates, check salary benchmarks, and manage your career, all through AI conversation. The Himalayas MCP server connects your AI assistant to the Himalayas remote jobs marketplace in real time.
- Status
- Healthy
- Uptime
- 100.0% over 81 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 78 tools
The set splits into parallel job-seeker and employer surfaces, and the paired names are easy to mix up: list_conversations vs list_my_conversations, mark_message_read vs mark_my_message_read, get_conversation vs get_my_conversation, get_company_profile vs get_company_details. Browsing pairs like get_jobs vs search_jobs and get_companies vs search_companies also overlap (filter-only vs keyword search) though descriptions do hint at the difference. The rich per-tool descriptions prevent most misselection, but the seeker/employer symmetry and the read/update/delete families keep this at mediocre clarity.
Nearly everything is snake_case verb_noun (get_job_details, create_company_job, update_job_status), which is predictable. Deviations are small but real: show_company_job instead of get_, remove_saved_job/remove_company_perk instead of delete_, and an inconsistent 'my' marker that flags seeker-side tools only sometimes (get_my_profile vs get_saved_jobs). Still readable and mostly regular across 78 tools.
78 tools is far past a well-scoped set, even for a platform spanning job search, employer posting, messaging, billing, verification, coaching and headshots. Several tools could be merged or folded into parameters (get_jobs/search_jobs, get_companies/search_companies, the two mark-read variants, the two conversation listers). The breadth is real but the surface is heavily fragmented.
Coverage is unusually broad: job browse/search/detail, tracker lifecycle, employer job CRUD plus paid extras, profile/education/experience CRUD, documents, both messaging directions, notifications, billing and verification. The main gap is saved application answers, which have list/update/delete but no create tool, and there is no way to delete a coach chat or headshot. Otherwise agents have few dead ends.
Available Tools
78 toolsadd_company_perkAdd company perkBInspect
Add a perk/benefit to your company on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Perk title (3-50 characters) | |
| category | Yes | Perk category | |
| description | Yes | Perk description (15-450 characters) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the agent knows this is a non-destructive write. The description adds genuinely useful auth context ('connected Himalayas employer account; no extra sign-in needed'), but says nothing about duplicate handling, validation failure, or rate limits. With annotations carrying the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero padding, with the core action front-loaded and the auth clarification second. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter creation tool with a fully documented schema and no output schema, the description covers purpose and authentication clearly. It is only slightly short of complete because it omits what happens on success or on a duplicate perk.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all three parameters documented including length bounds and a 30-value enum for category. The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (add) and resource (perk/benefit) on a named platform, and the scope ('your company'). An agent can distinguish it from get_company_perks and remove_company_perk without opening a schema. It does not explicitly name those siblings, so a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use or when-not-to-use guidance. It never mentions the paired remove_company_perk for deletion or get_company_perks for reading, so routing is left entirely to the agent. The auth note is context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_educationAdd educationAInspect
Add an education entry to your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| field | No | Field of study (e.g., 'Computer Science') | |
| grade | No | Grade or GPA | |
| degree | No | Degree (e.g., 'Bachelor of Science') | |
| school | Yes | School or institution name | |
| current | No | Whether you are currently enrolled | |
| end_year | No | End year (omit if currently enrolled) | |
| activities | No | Activities and societies | |
| start_year | No | Start year | |
| description | No | Description or achievements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine value by disclosing the auth model ("Uses the connected Himalayas account; no extra sign-in needed"), but says nothing about what happens to existing entries or duplicate handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the core action front-loaded and the auth clarification as supporting detail. Nothing is repeated from structured fields unnecessarily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A write tool with annotations carrying the safety profile, no output schema needed, and parameters fully documented in the schema. The description covers purpose and auth, leaving only minor gaps like duplicate/idempotency behavior that annotations already partially address.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all nine parameters are already fully documented in the schema. The description adds no field-level semantics, examples, or format hints beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Add") and resource ("education entry") plus the target ("your Himalayas profile"). The verb inherently distinguishes it from siblings like update_education and delete_education, though the description never names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by "add an education entry to your Himalayas profile," but there is no explicit when-to-use versus update_education/delete_education guidance and no stated prerequisites or conditions. The sign-in note is context, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_experienceAdd work experienceBInspect
Add a work experience to your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Job title | |
| end_date | No | End date (YYYY-MM-DD format, omit for current role) | |
| location | No | Country name for this role (e.g. 'United States', 'Germany'). Cities are not accepted. | |
| start_date | No | Start date (YYYY-MM-DD format) | |
| current_job | No | Whether this is your current job | |
| description | Yes | Description of your role and responsibilities | |
| company_name | Yes | Company name | |
| employment_type | Yes | Employment type | |
| experience_skill_list | No | Comma-separated skills used in this role |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully adds that the connected Himalayas account is used with no extra sign-in, but says nothing about duplicate handling, whether re-adding the same role creates a second entry, or what a successful add returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, with the core action front-loaded in the opening clause. Nothing redundant is repeated from the title or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description plus rich schema and annotations cover most of what an agent needs: what it does, the required vs optional fields, and the auth model. Missing only mutation side effects (duplicate behavior, where the entry lands) which are minor for an additive, non-destructive write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with all 9 parameters documented, including required-vs-optional and format hints like YYYY-MM-DD and the country-only location rule. The description adds no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Add a work experience to your Himalayas profile'), so the operation is unambiguous. It does not differentiate itself from close siblings such as add_education or update_experience, which would matter for selection among the profile-mutation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given: it never says to prefer this over update_experience for an existing role, nor does it mention prerequisites beyond authentication. The only contextual hint is the account/sign-in note, which is operational rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_job_payment_statusCheck job payment statusARead-onlyInspect
Check the payment status of a job posting. Use the session_id returned from create_company_job, update_company_job or purchase_job_extras with extras. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Stripe checkout session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds a genuinely useful behavioral fact: 'No authentication required,' which an agent cannot infer from the schema. It does not say whether the check is idempotent, pollable, or what happens for an expired/unknown session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler: purpose first, then how to obtain the parameter, then the auth fact. Each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read with no output schema, the description never indicates what a status response looks like (e.g. pending vs paid vs failed) or whether it should be polled. The input side is fully covered, but the return side is left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds provenance beyond the schema by naming the specific tools that produce the session_id. That is the key piece of semantic context an agent needs to supply a valid value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Check the payment status of a job posting.' This is clearly distinguishable from siblings like create_company_job, update_company_job, and purchase_job_extras, which are the mutation steps of the same flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description places the tool in the purchase lifecycle by naming the three sibling tools whose returned session_id feeds it, which tells an agent when this tool applies. It stops short of explicit when-not conditions or stating that it should not be used with arbitrary Stripe session IDs from elsewhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_company_jobCreate company jobADestructiveInspect
Post a remote job on Himalayas for the user's company, to hire remote staff. Posting a job is free; it needs admin approval before going live, and can also be saved as a draft. The optional extras are paid: sticky ($299) and newsletter ($99). With any extras, the reply is a Stripe checkout link the user opens and pays themselves, and the job doesn't go live until that payment completes; without extras nothing is charged. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | Save as draft instead of submitting for approval | |
| title | Yes | Job title (5-80 characters) | |
| extras | No | Paid extras: 'sticky' ($299 pin to top for 30 days), 'newsletter' ($99 feature in weekly email for 30 days) | |
| seniority | Yes | Seniority levels | |
| max_salary | No | Maximum salary | |
| skill_list | No | Comma-separated skills | |
| base_salary | No | Minimum salary | |
| description | Yes | Job description (350+ characters, can include HTML) | |
| category_list | No | Comma-separated job categories | |
| valid_through | No | Expiration date (ISO format, defaults to 30 days from now) | |
| salary_country | No | Salary currency code (default: USD) | |
| employment_type | Yes | Employment type | |
| app_link_or_email | Yes | Application URL or email address — backend auto-detects via @ check | |
| screening_questions | No | Screening questions for applicants |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavior: posting is free but requires admin approval before going live, draft saving is possible, and paid extras trigger a Stripe checkout link that must be paid before the job goes live. It also states that the connected Himalayas employer account is used without extra sign-in, which is valuable auth context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and then adds workflow behavior in a logical order. It is mostly efficient, though some pricing details repeat schema descriptions and the payment sentence is slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter mutation tool with no output schema, the description covers the critical workflow: approval, draft mode, paid extras, payment gating, and account connection. It does not describe every parameter, but the schema is fully documented and the description supplies the necessary operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries most parameter meaning. The description adds useful cross-parameter context around extras and Stripe checkout gating, but it does not clarify the other 13 parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: "Post a remote job on Himalayas for the user's company." It clearly distinguishes creation from siblings like update_company_job, list_company_jobs, and show_company_job by framing the action as posting a new job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool: posting a new remote job for the user's company. It also explains draft versus live submission and paid extras, but it does not explicitly name alternatives such as update_company_job for existing jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_company_jobDelete company jobADestructiveIdempotentInspect
Delete a job posting from your company on Himalayas. This action cannot be undone. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | Yes | Job slug to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description nonetheless adds real value beyond them: the explicit 'cannot be undone' warning and the note that it uses the connected employer account with no extra sign-in, which is auth context not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the action front-loaded, followed immediately by the irreversibility warning and then the auth note. Every sentence carries distinct information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive tool with annotation coverage and no output schema, the description supplies the key facts: what is deleted, that it is irreversible, and which account is used. It stops short of describing consequences of deletion (e.g., what happens to applications or live listings), which would be the last useful detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single job_slug parameter, so the schema fully documents the input. The description adds no extra semantics about slug format or lookup behavior, which matches the baseline 3 when structured fields do the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a job posting from your company') and scopes it to the employer's own company on Himalayas, which separates it from generic deletions like delete_document or delete_education. It does not, however, name the closely related siblings (update_company_job, show_company_job) that an agent might confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The destructive verb implies when the tool applies, and the auth note clarifies account context, but there is no explicit when-to-use guidance versus update_company_job, update_job_status, or delete_* siblings, and no stated preconditions (e.g., job must be owned by the connected account).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_conversationDelete employer conversationADestructiveIdempotentInspect
Delete a conversation. Accepts room_name or talent_slug. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_name | No | Room name from list_conversations | |
| talent_slug | No | Talent slug (from search_talent results) — resolves to room name automatically |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is carried by structured data. The description adds only the auth context (connected employer account, no extra sign-in) and the mutually-exclusive identifier input; it never says whether messages/threads are erased or whether the deletion is recoverable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the accepted inputs, then the auth note. No filler and nothing is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive mutation with no output schema, the description covers inputs and auth but omits the most consequential detail an agent needs: the blast radius (what exactly is removed) and whether the operation can be undone. Annotations cover the safety hint but not the effect of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters carry their own provenance notes (room_name from list_conversations, talent_slug from search_talent results). The description restates the either/or choice, adding little beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (a conversation), and the title pins the scope to an employer conversation, which distinguishes it from get_conversation/list_conversations. It does not explicitly name which sibling to prefer, but the destructive action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent the two accepted identifiers (room_name or talent_slug) and confirms no extra sign-in is needed, which is useful pre-invocation context. However, it never states when to delete vs. when to use an alternative, nor any prerequisite such as needing an existing conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_documentDelete resume or cover letterADestructiveIdempotentInspect
Delete one of the user's tailored resumes or cover letters. This can't be undone: confirm with the user first. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Document id or slug | |
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true, idempotentHint=true and readOnlyHint=false, but the description adds irreversibility ('can't be undone'), a required user-confirmation step, and auth context ('uses the connected Himalayas account; no extra sign-in needed'). It stops short of describing failure behavior or whether deletion is soft or hard.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, and the destructive warning plus confirmation requirement are front-loaded right after the action statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter destructive tool with no output schema and full annotation coverage, the description supplies the essential safety and auth context an agent needs. It is nearly complete, missing only error/permission edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'id' is documented in the schema, 'type' has an enum but no description. The description's 'resumes or cover letters' loosely echoes the enum values but adds no id format, slug vs numeric distinction, or constraint detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Delete') and a specific resource ('one of the user's tailored resumes or cover letters'), which maps directly to the type enum and distinguishes it from update_document, list_documents, and delete_company_job. An agent can route to it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a strong operational rule – confirm with the user first and that the action can't be undone – but does not name or contrast with alternatives such as update_document or any soft-delete path. Clear context, no explicit sibling routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_educationDelete educationADestructiveIdempotentInspect
Delete an education entry from your Himalayas profile by id. This can't be undone: confirm with the user first. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Education id, from get_my_profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the irreversibility warning reinforces rather than replaces structured data. The description adds genuinely new context: that no extra sign-in is needed and that the connected Himalayas account is used, plus the user-confirmation workflow. It doesn't describe failure modes (e.g., deleting a non-existent id), holding it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, action and target front-loaded, followed by the destructive warning and the auth note. No sentence is filler and nothing important is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete with no output schema, the definition covers everything an agent needs: what is deleted, how it is identified, that it is irreversible, that confirmation is required, and that no additional authentication step is involved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is documented as an education id sourced from get_my_profile. The description only restates 'by id' without adding format or retrieval nuance, so the schema is doing the work — the baseline 3 for high coverage applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete), resource (education entry), scope (your Himalayas profile), and keying mechanism (by id). An agent can distinguish this from delete_experience, delete_document, and update_education without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one actionable precondition, 'confirm with the user first,' which is real guidance for a destructive call. However, it never names alternatives (e.g., update_education to amend rather than remove, delete_experience for a different resource) or states when deletion is inappropriate, leaving routing inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_experienceDelete work experienceADestructiveIdempotentInspect
Delete a work experience from your Himalayas profile by id. This can't be undone: confirm with the user first. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Experience id, from get_my_profile |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, but the description adds useful context: the deletion cannot be undone, the user should confirm first, and the connected Himalayas account is used without extra sign-in. It does not detail side effects on related data or return behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and irreversibility warning, then the account context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, single-parameter destructive tool with a fully documented schema and clear annotations, the description covers the essential operational context: what to delete, that it is irreversible, that confirmation is required, and that no extra auth is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the id parameter already includes a description pointing to get_my_profile. The description mentions deletion 'by id' but adds no further format or lookup detail beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Delete a work experience'), scopes it to the user's Himalayas profile, and identifies that deletion is by id. This clearly distinguishes it from sibling delete tools such as delete_education and delete_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates the tool is for deleting a work experience and adds a required confirmation step before use. It does not explicitly contrast with update_experience or other alternatives, so it falls short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_saved_answerDelete saved application answerADestructiveIdempotentInspect
Delete one of the user's saved application answers. This can't be undone: confirm with the user first. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Saved answer id from list_saved_answers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so irreversibility is covered. The description still adds genuine value by disclosing the auth model ('connected Himalayas account; no extra sign-in needed') and by warning the agent to confirm with the user before acting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each carrying a distinct payload (action, irreversibility/confirmation, auth context), with the verb front-loaded. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive tool whose annotations already cover the safety profile, the description covers what's needed: action, irreversibility, confirmation requirement, and auth context. A minor gap is that it doesn't state the return/confirmation shape, though that is low-stakes for a delete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the sole 'id' parameter is documented in the schema as coming from list_saved_answers. The description adds no additional parameter semantics, so the baseline of 3 is appropriate when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (delete) and resource (saved application answer) with scope ('one of the user's'), cleanly distinguishing it from update_saved_answer and list_saved_answers. An agent can pick this tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: confirm with the user first, and it works against the connected Himalayas account with no extra sign-in. It doesn't explicitly name alternatives (use list_saved_answers to find the id, update_saved_answer to modify instead), but the schema's id description already points to list_saved_answers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_application_documentsTailor resume and cover letterADestructiveIdempotentInspect
Write a resume and cover letter tailored to a Himalayas job, from the user's Himalayas profile. Use it when the user's CV is generic, they have no cover letter, or an application form asks for one. They are saved to the user's account, where the user can edit them and download a PDF. A free account gets one tailored resume and one cover letter in total; Himalayas Plus includes them for every job. Uses the connected Himalayas account; no extra sign-in needed. Use the company_slug and job_slug from job listings.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | Yes | Job slug (from the job listing URL) | |
| documents | No | Which documents to write (default: both) | |
| company_slug | Yes | Company slug (from the job listing URL or company page) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses value beyond the annotations: outputs are saved to the user's account and are editable/downloadable as PDFs, free accounts get one resume and one cover letter total while Plus includes them per job, and it uses the connected account with no extra sign-in. The annotations already cover the safety profile (destructive, idempotent), so this added context warrants a 4, though it does not explain what regeneration does to existing documents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose, then usage conditions, then behavioral details in a logical order. Slightly long but each sentence adds distinct information without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description covers storage destination, account requirements, and quota limits. The one notable gap is that destructiveHint=true leaves unclear whether regenerating documents replaces or overwrites prior ones.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds where to source the slugs (company_slug and job_slug from job listings), but says nothing extra about the documents parameter's enum choices. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (write), resources (resume and cover letter), and scope (tailored to a Himalayas job from the user's Himalayas profile). An agent can distinguish it from sibling document tools like update_document, delete_document, get_document, and list_documents 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit triggering conditions: 'when the user's CV is generic, they have no cover letter, or an application form asks for one.' This is clear context for when to invoke it, though it does not name an alternative sibling tool or a when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_apply_linkGet apply linkAIdempotentInspect
Get the employer's application link for a job, once the user has decided to apply. Uses the connected Himalayas account (no extra sign-in needed); limited to 50 links per account per day. Use the company_slug and job_slug from job listings.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | Yes | Job slug (from the job listing URL) | |
| company_slug | Yes | Company slug (from the job listing URL or company page) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the auth model (connected account, no extra sign-in) and a concrete per-account daily rate limit (50/day), which explains why readOnlyHint=false despite the 'get' verb. It stops short of describing the response payload or what happens when the quota is exhausted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose, then auth/quota constraints, then parameter sourcing. Every sentence earns its place with no restatement of the name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description supplies the essentials an agent needs: purpose, trigger condition, auth, and quota. Only the return shape and quota-exhaustion behavior are left unstated, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents both slugs plus their URL origin, so the schema carries the parameter burden. The description's 'from job listings' adds only marginal sourcing guidance beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the employer's application link for a job') and scopes it to the moment of decision. It is clearly distinguishable from the other get_*_link siblings (billing portal, headshots, interview practice, verification), which target entirely different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'once the user has decided to apply' gives clear usage context and implicitly excludes pre-decision browsing. It doesn't name an alternative tool, but the sibling set contains no genuinely competing tool, so the omission is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_billing_portal_linkGet billing portal linkAInspect
Get a link to the user's Stripe billing page, where they can update their card, see invoices, or change or cancel Himalayas Plus themselves. Only for users who have paid before. Never act on billing for them. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds useful context beyond annotations: the link points to Stripe, the user can self-serve billing changes, and no extra sign-in is needed because the connected Himalayas account is used. It does not mention link expiration or single-use behavior, but the key safety and eligibility traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action, then adds eligibility, behavioral constraints, and authentication context in short sentences. Every sentence contributes useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter link-retrieval tool with annotations and no output schema, the description is largely complete: it says what the link is for and who can use it. Minor gaps such as link lifetime or single-use behavior are not critical for invocation but would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes no parameters, so there are no parameter semantics to clarify. The baseline for zero parameters is 4; the description appropriately does not invent parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: get a link to the user's Stripe billing page. It also scopes the tool to users who have paid before, which distinguishes it from checkout-related siblings such as get_plus_checkout_link. The agent can identify the tool's purpose without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear eligibility rule ("Only for users who have paid before") and an explicit behavioral boundary ("Never act on billing for them"). It does not name the sibling alternative for unpaid users, but the when-to-use and when-not-to-use conditions are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_coach_chatGet career coach chatARead-onlyInspect
Read one of the user's career coach conversations by slug from list_coach_chats. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Chat slug from list_coach_chats |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety profile. The description adds genuine context by noting it uses the connected Himalayas account with no extra sign-in, but says nothing about failure modes (bad slug, no access) or return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, with the core action front-loaded ahead of the auth aside. Every clause earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema and read-only annotations, the definition covers purpose, slug provenance, and auth source adequately. It could say a bit more about what a returned conversation contains or how errors surface, but nothing essential to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single slug parameter is already documented as coming from list_coach_chats. The description merely restates that provenance, adding no format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (one career coach conversation), scoped to the user's own data, and identifies the slug source. This cleanly distinguishes it from the sibling list_coach_chats, which lists many rather than reading one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to list_coach_chats as the place to obtain the slug, which establishes the correct call order. It does not state when not to use it or what happens with an invalid/foreign slug, so it falls short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_companiesBrowse remote companiesBRead-onlyInspect
Browse remote-friendly companies with optional filtering by country or worldwide availability
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| country | No | Filter companies by country (e.g., 'Canada', 'United States', 'UK') | |
| worldwide | No | Show only companies with 100% remote jobs available worldwide (overrides country filter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only that filters are optional ('optional filtering'), and says nothing about pagination behavior or result size, so it adds minimal context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded and the filter capability trailing. Nothing is wasted, though there is also very little substance to be efficient with.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only browse tool with full schema coverage and annotations carrying the safety profile, the description is minimally adequate. It omits any mention of pagination behavior and any disambiguation from search_companies, which an agent operating in this large sibling set would benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so page, country, and worldwide are all documented in the schema, including the override behavior of worldwide. The description repeats the country/worldwide filters but adds no syntax, format, or interaction details beyond what the schema already states; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (browse) and resource (remote-friendly companies) plus the two filter axes. It is clear on its own, but does not distinguish itself from siblings like search_companies or get_company_details, so an agent must guess which of the three to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is given. With search_companies and get_company_details in the sibling list, the description should say when browsing beats searching, but it offers no routing information at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_detailsGet company detailsBRead-onlyInspect
Get full details for a company including about, tech stack, benefits, open positions, and social links
| Name | Required | Description | Default |
|---|---|---|---|
| company_slug | Yes | Company slug (e.g., 'stripe', 'gitlab') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the useful detail that this returns a broad, multi-section payload rather than a summary, but says nothing about behavior on an unknown slug, partial data availability, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence that leads with the verb and resource and then lists the return contents; there is no padding or redundancy. It could be slightly tighter, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because there is no output schema, the description correctly compensates by enumerating the returned sections, and annotations cover safety. It remains incomplete on the disambiguation problem — the agent cannot tell from this description whether get_company_profile or get_companies returns something different.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single company_slug parameter already carries a format example ('stripe', 'gitlab'), so the description is right not to repeat it. It adds no extra semantics such as whether the slug is case-sensitive or how it differs from a company ID used elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details for a company') and enumerates the payload (about, tech stack, benefits, open positions, social links), so the agent knows what it receives. However, it never distinguishes itself from the very similar sibling get_company_profile or get_companies, leaving the near-duplicate names unresolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no named alternative. With siblings like get_company_profile, get_companies, and search_companies in the list, the agent must guess which one to call — the description offers nothing to disambiguate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_perksGet company perksARead-onlyInspect
Get your company's perks/benefits on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds real value by disclosing the auth model (uses the connected employer account, no extra sign-in) and that results are scoped to 'your company', but says nothing about what is returned or how perks are ordered/limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the action and resource, followed by the one operational caveat an agent needs. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-argument, read-only tool with no output schema, the description covers purpose and auth adequately. The main residual gap is the shape of the returned perks list, which neither the description nor an output schema documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify beyond the schema. The account-based scoping note is a mild substitute for an implicit 'company' argument.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: retrieving the caller's company perks/benefits. It is distinguishable from siblings like get_company_profile or get_company_details by naming the perks resource, though it never explicitly contrasts with add_company_perk/remove_company_perk or get_company_details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The clause about the connected Himalayas employer account implies the context in which this works, but there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as get_company_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_profileGet company profileARead-onlyInspect
Get your company's profile on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description usefully adds that the call runs against the connected Himalayas employer account with no extra sign-in, which is genuine auth context. It stops there, disclosing nothing about what the profile contains or how missing/unlinked accounts behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose front-loaded, no filler or repetition. The second sentence adds auth context rather than routing to an alternative, so it is efficient but not maximally load-bearing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-param read tool whose annotations already carry the safety profile and which has no return values to document, this is nearly sufficient. The remaining gap is sibling disambiguation in a crowded namespace of company/profile getters, which the description leaves implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter semantics are missing because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Get your company's profile') scoped to the caller's own employer account, which separates it from consumer-facing siblings like get_companies or get_talent_profile. However, it never explicitly distinguishes itself from get_company_details or get_my_profile, so the agent must infer the difference from the 'your company' phrasing alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the use case ('your company's profile', 'connected employer account') but gives no explicit when-to-use statement and names no alternative sibling for contrast. The agent is left to infer that this is the self-scoped counterpart to get_company_details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_conversationGet employer conversationARead-onlyInspect
Get full message history for a conversation. Accepts room_name or talent_slug. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_name | No | Room name from list_conversations | |
| talent_slug | No | Talent slug (from search_talent results) — resolves to room name automatically |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds genuinely new behavioral context beyond them: the call is scoped to the connected employer account and requires no separate sign-in, and 'full message history' characterizes the payload breadth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then inputs, then auth context. No filler and nothing repeated from the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly characterizes the return as full message history, and it covers auth and input modes. It stops short of stating behavior when neither optional parameter is supplied, a minor gap for a tool with zero required params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: the two parameters are alternative entry points ('Accepts room_name or talent_slug'), implying either identifier alone is sufficient rather than both being required together.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get full message history for a conversation.' The mention of the 'connected Himalayas employer account' signals the employer-side scope, which helps separate it from the talent-side get_my_conversation, though that sibling is never named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the employer-account framing and by the two accepted identifier forms, but there is no explicit when-to-use/when-not guidance and no routing to the near-identical siblings get_my_conversation, list_conversations, or list_my_conversations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_correct_country_nameResolve country nameARead-onlyInspect
Resolve a country name to the correct format accepted by Himalayas filters. Useful for fuzzy matching user input.
| Name | Required | Description | Default |
|---|---|---|---|
| country_string | Yes | The country name to get the correct name for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds the normalization intent, but says nothing about behavior on unrecognized input (error vs. best-effort passthrough), which is the main behavioral unknown for a resolver. Adequate but incomplete against the lower bar set by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the purpose front-loaded ahead of the use-case hint. No filler, no redundancy with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should clarify what comes back (a corrected name string? a canonical list?) and how ambiguous or unmatched input is handled. For a simple read-only one-param tool this is a minor but real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter ('The country name to get the correct name for'), so the schema carries the parameter burden. The description adds no format, casing, or ISO-vs-colloquial guidance beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and resource ('a country name') plus the target format ('accepted by Himalayas filters'), so the agent knows exactly what the tool produces. No sibling in the list is a plausible substitute, so the lack of explicit sibling differentiation costs little.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for fuzzy matching user input' implies the use case (normalizing a user-supplied country before filtering), but there is no explicit when-to-use statement, no when-not, and no named alternative. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentGet resume or cover letterARead-onlyInspect
Read one of the user's tailored resumes or cover letters by id (from list_documents). Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Document id or slug | |
| type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description legitimately adds that it operates against the connected Himalayas account with no extra sign-in. It does not describe failure behavior for an unknown id or id/slug mismatch, but the auth context is genuine added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, no filler, and the core action plus id provenance is front-loaded ahead of the secondary account note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only tool with no output schema, the description covers the action, the id source, and the auth model. Only minor gaps remain (e.g. whether a slug and numeric id behave identically), which is acceptable given the schema carries the parameter types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema description coverage, the schema documents the id as 'Document id or slug' and constrains type to the resume/cover_letter enum. The description reinforces 'by id' and the id's provenance (list_documents) but adds no format or ordering detail for type selection, so it sits at the adequate baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (resume or cover letter), scoped to the user's own tailored documents, and explicitly names the source sibling (list_documents). An agent can distinguish this from the plural enumeration tool and from other 'get_*' siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(from list_documents)' prescribes the sourcing workflow for the id, which is real when-to-use guidance. It stops short of stating exclusions, e.g. that it only reads documents (not profiles or conversations), so it is clear context rather than full when/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_headshots_linkGet headshots linkARead-onlyInspect
Get the Himalayas page where the user makes AI headshots from a few photos of themselves. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuine context the annotations don't: the link points to an external-style page for AI headshot generation, and it reuses the connected Himalayas account so no separate sign-in occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose, and the second sentence adds only the auth-relevant detail. Nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, read-only link fetch there is little to specify; the description covers what the link leads to and the auth model. It does not say what the link looks like or how long it is valid, but with no output schema and a simple return, that gap is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to explain beyond what the schema already conveys; baseline for a no-parameter tool is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns the Himalayas page where the user creates AI headshots from their photos. An agent can distinguish this from list_headshots and use_headshot_as_profile_photo by intent, though the description never names those siblings explicitly to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no routing toward the closely related siblings (list_headshots, use_headshot_as_profile_photo). The auth note ('no extra sign-in needed') is context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interview_practice_linkGet interview practice linkARead-onlyInspect
Get the Himalayas page where the user practises interviewing for a specific job: a Himalayas job (company_slug and job_slug) or a job elsewhere (application_link). On that page the user has a live spoken mock interview with an AI interviewer playing the company's hiring manager, with questions built from the job and their profile, then gets a score out of 100 with what went well and what to improve (sessions of 90 seconds or more are scored). Sessions and scores are saved to the account, so the user can see how they improve over time (list_interviews, get_interview_results). Free accounts include one text mock interview; spoken interviews are part of Himalayas Plus (30 minutes a month). Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | No | Job slug of a Himalayas job | |
| company_slug | No | Company slug of a Himalayas job | |
| application_link | No | https link to a job posted somewhere else |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give readOnlyHint/openWorldHint; the description carries real load beyond that: what the page does (live spoken mock interview with an AI hiring manager), scoring behavior and the 90-second minimum, persistence to the account, the free-tier text-interview allowance, the 30-minutes/month Plus quota, and auth ('uses the connected account; no extra sign-in'). That is exactly the extra behavioral context structured fields do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the two input modes are front-loaded, and most follow-on sentences carry invocation-relevant detail (eligibility, persistence, auth). It is on the verbose side, packing interview experience, scoring, quotas, and account behavior into one dense paragraph, but little is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a link-returning read tool with no output schema, the agent has what it needs: which parameters go together, what the link leads to, what the user gets on the page, tier limits, and that no separate sign-in is required. Nothing material for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: it clarifies that company_slug and job_slug are a paired path for Himalayas jobs while application_link is the alternative for external jobs. That relational guidance is genuinely useful beyond per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (get) plus resource (interview practice page/link) scoped to a job, and it explicitly distinguishes the two input modes: a Himalayas job via company_slug+job_slug versus a job elsewhere via application_link. It also names the related siblings (list_interviews, get_interview_results), so an agent can separate it from those 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong context for when to use it: for a specific job, with the two alternative parameter paths spelled out, plus the free-vs-Plus gating that tells the agent when the user is eligible. It stops short of explicit exclusions or a 'prefer X over Y' rule for the sibling result/inspection tools, so it lands at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interview_resultsGet interview practice resultsARead-onlyInspect
Get the scores and feedback from the user's interview practice for one job: each answer's rating and feedback, and for voice sessions the overall score, what went well, what to improve, next steps and length. Pass the interview id from list_interviews, or the job's company_slug and job_slug. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Interview id from list_interviews | |
| job_slug | No | Job slug | |
| company_slug | No | Company slug of the job |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: it uses the connected Himalayas account with 'no extra sign-in needed', and discloses what the returned data contains (ratings, feedback, and voice-session specifics).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, then parameter routing, then auth reassurance. The return-value enumeration is long but earns its place since there is no output schema to carry that information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of describing returns and does so well, plus covers auth and both lookup paths. Only minor gaps remain (e.g., behavior when neither key resolves or the interview does not exist), keeping it just under a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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: it explains that the id comes from list_interviews and that company_slug and job_slug are used jointly as an alternative lookup key, which the terse schema descriptions ('Job slug', 'Company slug of the job') do not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the scores and feedback from the user's interview practice for one job') and enumerates the actual return contents, including the voice-session breakdown. An agent can immediately tell it apart from link/list siblings like get_interview_practice_link and list_interviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear invocation context: use the id from list_interviews, or the job's company_slug plus job_slug as an alternative key, establishing a natural chaining order. It lacks any explicit when-not-to-use or exclusion relative to siblings, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_detailsGet job detailsARead-onlyInspect
Get full details for a specific job including description, requirements and salary. Use the company_slug and job_slug from job listings. To get the employer's application link, call get_apply_link.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | Yes | Job slug (from the job listing URL) | |
| company_slug | Yes | Company slug (from the job listing URL or company page) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value by disclosing what content is returned (description, requirements, salary) and by steering the application-link case to a different tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero waste. The core purpose is front-loaded, followed by input sourcing and the sibling redirect, all of which earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with annotations covering safety and no output schema, the description adequately conveys purpose, inputs, and return content. Minor gap: no explicit handling of failure cases (e.g., invalid slugs), but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented in the schema. The description's note about taking the slugs "from job listings" echoes the schema's "from the job listing URL" cue without adding new format or syntax guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ("Get") plus resource ("full details for a specific job") and it enumerates the returned content (description, requirements, salary). The word "specific" and "full details" distinguish it from listing siblings like get_jobs, search_jobs, and get_related_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent where to source the inputs ("from job listings") and routes a related task to a named alternative (get_apply_link). It lacks an explicit statement of when NOT to use this tool versus listing/search siblings, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobsBrowse remote jobsBRead-onlyInspect
Browse the latest remote job listings with optional filtering by country or worldwide availability
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| country | No | Filter jobs by country (e.g., 'Canada', 'United States', 'UK') | |
| worldwide | No | Show ONLY 100% remote jobs available worldwide (overrides country filter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the agent knows this is a safe, non-open-world read. The description adds only that country/worldwide filtering is optional; it says nothing about result volume, pagination behavior, or how the 'latest' ordering works, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler that leads with the resource and then the modifiers. It is efficient, though very terse for a tool with six-plus job-related siblings competing for selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should ideally say what is returned (a list of job listings, roughly how many per page, whether pagination metadata accompanies it). It covers the filtering dimension adequately but leaves the return shape unspecified, which is a meaningful gap for a browse tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (page, country, worldwide) are already documented, including the note that worldwide overrides country. The description merely restates that filtering is optional; it adds no format or syntax detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Browse) and resource (the latest remote job listings), so an agent can tell this is a discovery/feed operation. However, it does not distinguish itself from the many siblings that also return jobs, most notably search_jobs and get_related_jobs, so the agent cannot route reliably from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Browse' hints at feed-style discovery, but nothing states when to use this versus search_jobs, get_saved_jobs, or get_new_matches. There are no exclusions or prerequisites, leaving the choice of tool entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_conversationGet inbox conversationARead-onlyInspect
Read the latest 30 messages in one conversation in the user's job seeker inbox. Message text is quoted as the sender wrote it. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_name | Yes | Room name from list_my_conversations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds genuinely useful behavior beyond that: a 30-message cap, verbatim message quoting, and that no extra sign-in is needed. It omits pagination behavior beyond the cap, but the added context is substantive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action and scope. Each sentence carries information (purpose, data fidelity, auth), though the auth remark is somewhat light in value for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does some work on returns (latest 30 messages, verbatim text), and annotations cover the read-only safety profile. For a single-parameter read tool this is close to complete, lacking only pagination or error detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single room_name parameter is documented with its source (list_my_conversations). The description adds no syntax or format detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read), resource (one conversation), scope (user's job seeker inbox), and the limit of the latest 30 messages. It is clear what the tool returns, but it does not differentiate itself from the sibling get_conversation, leaving ambiguity about which to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives. It never explains the relationship to get_conversation or list_my_conversations, and while the schema points at list_my_conversations for the room name, the description itself gives no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_profileGet my profileARead-onlyInspect
Get your Himalayas profile information. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description does add genuinely useful behavioral context beyond them: the data comes from the connected Himalayas account and requires no additional sign-in, which tells the agent it will never be bounced into an auth flow. It does not disclose what the profile response contains, which is a meaningful gap for a 'get' tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, purpose first, auth caveat second. Neither sentence is padding and nothing is buried or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool whose annotations already carry the safety profile, the description covers purpose and access model. The one omission is the shape of the returned profile data, which matters slightly more because there is no output schema, but an agent can still call this correctly without it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 applies. No parameter-level information is expected or missing here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get your Himalayas profile information'), which is clear enough to separate it from write siblings like update_profile and import_profile. However, it never explicitly distinguishes itself from read siblings such as get_talent_profile or get_company_profile; the possessive 'your' implies self-scope but the description does not call that out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and names no alternative (e.g., 'use get_talent_profile to view another member's profile'). The only usage-adjacent statement is the auth note, which is a precondition rather than a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_new_matchesGet new job matchesAInspect
Get jobs matching the user's Himalayas profile that were posted since an agent last checked, leaving out jobs already in their tracker. The check-in point is saved on the account, so it carries across sessions and agents; a first check looks back 7 days. Plus members get the jobs; free accounts get how many there are. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a lot beyond the annotations: the check-in point is persisted server-side and carries across sessions/agents, which explains the readOnlyHint=false and idempotentHint=false (each call advances state). It also covers no extra sign-in (auth via connected account) and the plus-vs-free tier gating on the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers on increment semantics, persistence, and tier rules in roughly four dense sentences. Slightly long, but every sentence carries useful information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still explains what comes back - full jobs for plus members, a count for free accounts - which is essential. It stops short of describing the job object's shape or pagination, so it is not fully complete, but it is adequate for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify and it does not fabricate parameters. No further schema detail is possible or needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('get jobs matching the user's Himalayas profile') plus a precise scope ('posted since an agent last checked', 'leaving out jobs already in their tracker'). This clearly distinguishes it from siblings like get_jobs, search_jobs, get_related_jobs, and get_saved_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear triggering context ('new' matches since the last check, 7-day lookback on first run) that tells the agent when this is the right tool. It does not explicitly name an alternative (e.g., search_jobs for historical browsing, get_saved_jobs for tracked jobs), so it just misses the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plus_checkout_linkGet Himalayas Plus checkout linkAInspect
Get a Stripe checkout link for Himalayas Plus (US$9 a month) when the user wants to subscribe. Plus includes tailored resumes and cover letters for every job; 30 minutes a month of spoken mock interviews for a specific job, scored out of 100 (sessions of 90 seconds or more) and saved so the user can track their progress; new job matches between sessions (get_new_matches); a higher place in employer talent search on the himalayas.app website (not in search_talent results through this connector, which have no paid placement); identity and work permit verification every 30 days, with a verified badge (work permits need a passport or national ID); and a career coach. Details: https://himalayas.app/plus. The user opens the link and pays on Stripe themselves; this tool never charges them. Applying through Himalayas is free without Plus. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| billing_interval | No | Bill monthly or yearly (default: month) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it clearly discloses the money model: the user opens the link and pays on Stripe, and the tool never charges them. It also notes the connected account needs no extra sign-in. What it omits is link lifetime or reuse behavior, which matters given 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger and the no-charge guarantee are front-loaded and earn their place, but most of the middle is product marketing, mock interviews scored out of 100, 90-second sessions, verified badges, that does nothing to help an agent decide or call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description covers what the caller gets (a checkout link), who pays, and that no auth step is required. Only the link's expiry or single-use nature is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter carries an enum with a documented default, so the schema already does the work. The description mentions the US$9 monthly price but says nothing about the yearly option or any discount, adding no real meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource: 'Get a Stripe checkout link for Himalayas Plus'. It is distinguishable from siblings such as get_billing_portal_link and get_verification_link at the verb+resource level, though the rest of the paragraph buries that clarity under feature marketing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one trigger condition, 'when the user wants to subscribe', and adds the useful guard that applying is free without Plus. It does not address the obvious adjacent case, an existing subscriber who wants to manage or cancel billing (get_billing_portal_link), leaving the agent to infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_remote_work_statisticsGet remote work statisticsBRead-onlyInspect
Get remote work statistics: top skills, job categories, industries, or countries by job/company count.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Type of breakdown: 'skills', 'categories', 'countries', or 'industries' (default: skills). 'industries' only works with record='companies'. | |
| record | No | What to get stats for: 'jobs' or 'companies' (default: jobs) | |
| country | No | Filter stats by country (e.g., 'United States', 'Germany') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds that results are aggregated rankings 'by job/company count', which is useful beyond the annotations, but it says nothing about result size, defaults applied, or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with a colon-delimited enumeration; every clause earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-optional-parameter, zero-required analytics tool with no output schema, the description conveys the shape of the result (ranked top items by count) but omits how many items are returned and how the country filter interacts across dimensions. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the important constraint that 'industries' only works with record='companies' and the defaults for both enums. The description restates the dimension names but adds no semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('remote work statistics'), then enumerates the four breakdown dimensions the tool can return. It clearly distinguishes itself from list/search siblings, though it does not explicitly separate itself from adjacent analytics tools like get_salary_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over get_salary_data, get_jobs, or get_companies, and no exclusions or prerequisites stated. The usage context is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_salary_dataGet salary dataARead-onlyInspect
Get salary benchmarks for remote jobs by job title, with optional seniority and country filters. Returns min, max, and median salary in USD.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Country slug to filter by (e.g., 'united-states', 'united-kingdom', 'germany') | |
| job_title | Yes | Job title to look up salary for (e.g., 'software-engineer', 'product-manager', 'data-scientist'). Use hyphens instead of spaces. | |
| seniority | No | Seniority level (e.g., 'senior', 'junior', 'lead', 'mid') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuine value by disclosing the return shape and currency (min, max, median in USD), but says nothing about data freshness, coverage limits, or behavior when a title has no benchmark data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first front-loads what is retrieved and how it is filtered, the second states the returned metrics. There is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by enumerating the returned fields and currency. It stops short of covering edge cases (unknown title, no data for a country/seniority pair, pagination), which would be the remaining gap for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with every parameter documented with examples and slug formats. The description restates that seniority and country are optional filters, which is consistent but adds no syntax or format detail beyond what the schema already gives, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (get) and resource (salary benchmarks for remote jobs) and names the two optional axes of filtering (seniority, country). It is unmistakably distinct from the surrounding job/profile/company-management siblings, so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent can infer this is the tool for looking up pay when a job title is known, and that seniority/country are optional refinements. There is no explicit when-to-use, no exclusion of adjacent tools like get_remote_work_statistics or get_job_details, and no note on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_saved_jobsGet saved jobsARead-onlyInspect
List every job in the user's Himalayas job application tracker with its status (saved, applied, interviewing, negotiation, hired, archived), outcome, salary, notes and links, for tracking applications and seeing where each one stands. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is clear. The description adds useful context by naming the returned fields and statuses and noting that it uses the connected Himalayas account with no extra sign-in, though it omits pagination or ordering behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and scope are front-loaded in the first clause, followed by the returned status values and fields. The second sentence adds concise authentication context without waste; every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining return values and does so by enumerating statuses plus outcome, salary, notes, and links. It is nearly complete for a zero-parameter list tool, but does not mention result volume or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter syntax, and the empty schema is consistent with a simple list operation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'List every job in the user's Himalayas job application tracker,' and clarifies the scope as the user's saved/application tracker. This distinguishes it from broader job-search siblings like get_jobs or search_jobs by tying it to the application tracker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the use case as 'tracking applications and seeing where each one stands,' which implies when to use it. However, it does not explicitly contrast it with siblings such as get_jobs, search_jobs, remove_saved_job, or update_job_status, leaving the agent to infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_talent_profileGet talent profileARead-onlyInspect
Get full details for a candidate including bio, all experiences, education, tech stack, social links, and more. Use the talent_slug from search_talent results. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| talent_slug | Yes | Talent slug from search_talent (e.g. 'john-doe'). Also accepts '@john-doe' or a himalayas.app/@slug profile URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds non-redundant behavioral context: the call leverages the connected Himalayas account and requires no additional authentication, which matters for an agent deciding whether it can call it unattended. It says nothing about rate limits or pagination, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the payload description and followed by the two operational facts an agent needs (input source, auth state). No filler, no restated title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with no output schema, the description adequately signals the return contents by enumerating the profile sections. It could still say more about the response shape or what happens for an unknown slug, but nothing essential to invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents talent_slug plus its accepted formats ('@john-doe', profile URL). The description only restates the source of the slug (search_talent), adding marginal meaning beyond the structured field, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details for a candidate') and enumerates the payload (bio, experiences, education, tech stack, social links). It also distinguishes itself from the sibling search_talent by positioning this as the detail-fetch that consumes search output, and from get_my_profile by scoping to a candidate rather than the caller.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent where the required input comes from ('Use the talent_slug from search_talent results'), which is a genuine routing instruction. It adds auth context ('no extra sign-in needed') but stops short of naming when-not-to-use or an alternative detail source.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_verification_linkGet ID verification linkADestructiveInspect
Get the next step for verifying the user's identity and work permits on Himalayas (the verified badge): whether they are verified, and otherwise the Stripe Identity link (when verification is included, as on Plus or Max) or a US$5 checkout link. Use it when the user wants to get verified: when verification is included, this starts it (a Plus or Max member's included verification is then used for 30 days). A passport or national ID verifies identity and the work permit for that country; other IDs verify identity only. get_my_profile shows whether they are verified. The user opens each link and does the verification or payment on Stripe themselves. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructiveHint=true and readOnlyHint=false; the description explains WHY by disclosing the side effect that an included verification is consumed for 30 days when started, and clarifies that the user performs verification/payment on Stripe themselves. It also notes auth context ('connected Himalayas account; no extra sign-in needed'). It stops short of describing pagination/format, but adds meaningful behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and each subsequent sentence adds routing, side-effect, or auth detail. It is dense but largely earns its length, with only mild redundancy in the closing sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no parameters, the description fully carries the burden: it enumerates the possible return outcomes (verified, Stripe Identity link, $5 checkout link) and the conditions that select each. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero parameters, so there is nothing to document; baseline 4 applies. No parameter guidance is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns the next step for verifying identity and work permits, being either a status, a Stripe Identity link, or a $5 checkout link. It clearly delineates itself from get_my_profile (status only) and from the other get_*_link siblings by naming the exact resource it produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use: 'Use it when the user wants to get verified.' It also names the alternative (get_my_profile) for checking status, and explains the conditional behavior (verification included on Plus/Max starts the process; otherwise a checkout link).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_profileImport profile from LinkedIn or resumeADestructiveInspect
Fill in the user's Himalayas profile from their LinkedIn profile URL or their resume text. Runs in the background for a few minutes; get_my_profile shows the result. append_only adds what's missing and keeps what's there; replace_all overwrites the profile, so ask the user first. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Default append_only | |
| resume_text | No | The full text of their resume | |
| linkedin_url | No | Their LinkedIn profile URL, e.g. https://www.linkedin.com/in/name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag non-read-only and destructive, but the description adds behavior the schema cannot express: the call returns immediately while work continues in the background for minutes, the output is surfaced via get_my_profile, replace_all is irreversible and needs user confirmation, and no separate sign-in is required. This is exactly the added context the annotations leave out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences with no filler; purpose and inputs lead, the asynchronous/retrieval detail and mode trade-off follow. Every sentence carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an async, destructive-capable import tool with no output schema, the description covers initiation, expected latency, how to observe the result, the destructive path and its confirmation requirement, and auth expectations — nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description goes beyond the schema's terse "Default append_only" by explaining the semantic effect of each mode value and implying that at least one of linkedin_url or resume_text must be supplied (both are optional in the schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (fill in / import) on a specific resource (the user's Himalayas profile) and names both accepted input sources (LinkedIn URL, resume text). This clearly separates it from siblings like update_profile (manual edits) and get_my_profile (retrieval).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the mode choice explicitly — append_only adds missing fields and keeps existing ones, replace_all overwrites so the user must be asked first — and routes the agent to get_my_profile for the result. It stops short of naming sibling alternatives such as update_profile for piecemeal edits, so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_radar_waitlistJoin Radar waitlistAIdempotentInspect
Join the waitlist for Himalayas Radar, a plan for people who are employed or not actively searching: alerts only for roles that beat their bar, a private open-to-offers mode with their current employer hidden, and a monthly salary check. Radar isn't available yet, so there is nothing to pay; Himalayas emails the user when it launches. Call it only if the user wants to join. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description adds real context beyond them: no payment is taken now, the company emails on launch, and the connected account is used with no extra sign-in. It stops short of describing what happens on a repeat call, though idempotentHint partially covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, but the second sentence is largely product marketing (alerts, open-to-offers mode, salary check) that does not help an agent decide or invoke. The operationally relevant points (no payment, email on launch, no extra sign-in, call only if the user wants it) are buried around it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, non-destructive action with no output schema, the description covers the important agent-facing facts: no cost now, deferred fulfillment by email, and use of the existing account. Nothing critical is missing, though the outcome of an already-joined state is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. No parameter text is needed or missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Join the waitlist for Himalayas Radar') and further qualifies what the product is. It is unmistakable against the sibling list, which contains no other waitlist/signup-style tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly bounds invocation with 'Call it only if the user wants to join,' giving a clear when-to-call condition. It does not name an alternative tool, but no sibling provides comparable functionality, so the restriction is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_coach_chatsList career coach chatsARead-onlyInspect
List the user's conversations with the Himalayas career coach, newest first, with titles, dates and links. get_coach_chat reads one. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so with that lower bar the description still adds real context: it discloses ordering ("newest first"), the returned fields, and an auth trait ("Uses the connected Himalayas account; no extra sign-in needed"). It omits pagination/limit behavior, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and scope, followed by sibling routing and auth note. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param read tool with no output schema that already carries safety annotations, the description covers scope, return fields, ordering, and auth. Pagination or result-limit behavior is the only material gap, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. Nothing in the description needs to compensate for undocumented inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List), resource (career coach conversations), scope (the user's own chats), ordering (newest first), and return fields (titles, dates, links). It also names the singular sibling get_coach_chat, separating it from the many generic list_* tools like list_conversations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"get_coach_chat reads one" explicitly routes the agent to the singular-read alternative, establishing a clear list-vs-read distinction. There is no explicit when-not or exclusion, but the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_company_jobsList company jobsARead-onlyInspect
List your company's job postings on Himalayas. Shows status, views, clicks, and expiry. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only and not open-world. The description adds useful context beyond annotations: it discloses the connected employer account requirement, says no extra sign-in is needed, and lists returned metrics, though it omits pagination behavior and limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences with no filler. It front-loads the core action and then adds account and return-value context efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with no output schema, the description gives adequate context: what is listed, what fields are shown, and which account is used. It could be slightly more complete by mentioning pagination behavior or result ordering, but no critical gap prevents correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the single page parameter is fully documented in the schema. The description adds no pagination syntax, default, or page-size details beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: listing the company's job postings on Himalayas. It also names the key returned fields (status, views, clicks, expiry), which helps distinguish it from sibling detail or mutation tools like show_company_job, create_company_job, and update_company_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly positions the tool for an employer viewing their own company's postings via the connected Himalayas employer account. However, it does not explicitly say when to prefer this over related tools like get_jobs, search_jobs, or show_company_job, so it lacks exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conversationsList employer conversationsARead-onlyInspect
List all your messaging conversations with last message preview. Shows conversation status (awaiting reply, new reply, read). Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description goes beyond them by disclosing the return payload ('last message preview') and the enumerated status values (awaiting reply, new reply, read), plus the auth model ('no extra sign-in needed') – genuinely useful context for a tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and progressively adding scope, return content, and auth context. Each sentence carries information; only the auth sentence is arguably marginal, but it is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, parameterless list tool with no output schema, the description covers what is returned (preview + statuses) and the account context needed to call it. Missing only minor operational detail such as ordering or pagination limits, which is acceptable at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. No missing parameter context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all your messaging conversations') and adds scope via 'employer account', which distinguishes it from the candidate-side conversation tools in the sibling list. It stops short of naming the sibling it contrasts with (e.g. list_my_conversations), so differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Uses the connected Himalayas employer account' implies this is the employer-side listing, which is the key selection context against list_my_conversations and get_my_conversation. However there is no explicit when-to-use/when-not-to guidance and no alternative named, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsList resumes and cover lettersARead-onlyInspect
List the user's tailored resumes and cover letters on Himalayas, newest first, with ids and edit links. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Only resumes or only cover letters (default: both) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, openWorldHint=false), yet the description adds real value: sort order (newest first), the fields returned (ids and edit links), and that the connected Himalayas account is used with no extra sign-in. It does not mention pagination or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences, with the core action and scope front-loaded and the account note trailing. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description compensates by naming the returned fields and ordering, so an agent knows what it gets. It stops short of mentioning pagination or volume, which would matter for a list tool on a potentially long collection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single enum parameter, so the schema fully documents the resume/cover_letter filter including the 'both' default. The description adds no syntax or usage detail for that filter, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (tailored resumes and cover letters), plus the ordering (newest first) and the returns (ids, edit links). It is clearly distinguishable from siblings like list_headshots and get_document.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for enumerating the user's own generated documents and notes the account context, but it never states when to use this versus get_document for a single item or delete_document/update_document for acting on one. No explicit alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_headshotsList headshotsARead-onlyInspect
List the AI headshots the user has made on Himalayas, newest first: each session's finished images with ids and URLs, and a link to see them. use_headshot_as_profile_photo sets one as the profile photo. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and openWorldHint=false, and the description adds useful behavior beyond them: results are newest first, each session contains finished images with ids and URLs plus a link, and the connected Himalayas account is used without extra sign-in. It does not discuss pagination or limits, but with annotations covering the safety profile this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three compact sentences, front-loaded with the core action and result shape, followed by the related tool and auth context. Every sentence contributes useful information and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-parameter listing tool with no output schema, the description sufficiently explains what is returned (finished images with ids and URLs, plus a link), ordering, and authentication context. Nothing critical for selecting or invoking the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to document. Baseline for a zero-parameter tool is 4; the description correctly does not invent parameter guidance and instead focuses on return content.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List the AI headshots'), states scope ('the user has made on Himalayas'), and distinguishes the result from the sibling action tool by noting that use_headshot_as_profile_photo sets one as the profile photo. An agent can identify this as the read/list operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when this tool applies: listing the user's existing AI headshots, newest first, with their finished images and links. It also names the related next-step tool use_headshot_as_profile_photo, though it does not explicitly contrast this with get_headshots_link or provide exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interviewsList interview practiceARead-onlyInspect
List the user's interview practice on Himalayas: each job they practised for, when, and the link to practise again, plus the voice minutes and credits they have left. get_interview_results shows the scores. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by enumerating the concrete returned fields (practice history, remaining voice minutes/credits) and confirming no additional authentication is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and resource, then the returned contents, then the sibling pointer and auth note. Three tightly packed sentences with no filler, though the enumerated payload runs slightly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so thoroughly (jobs, timing, link, voice minutes, credits). Combined with the read-only annotation, an agent has everything needed to call and interpret it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-param tool applies. The description correctly focuses on output rather than inventing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (List) and resource (user's interview practice on Himalayas), with the payload spelled out: each job practised for, when, the re-practise link, voice minutes, and credits. It also explicitly differentiates itself from get_interview_results ('shows the scores'), so an agent can distinguish it from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the sibling alternative get_interview_results and the condition that routes to it (scores), and clarifies the auth model ('Uses the connected Himalayas account; no extra sign-in needed'). It stops short of stating explicit when-not conditions, but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_my_conversationsList my inboxARead-onlyInspect
List the user's job seeker inbox: conversations companies and recruiters started with them on Himalayas, newest first, with the last message and whether it needs a reply. For an employer's conversations with candidates, use list_conversations. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint already tells the agent this is a safe read operation, and the description adds useful context: results are newest first, include the last message and whether a reply is needed, and use the connected Himalayas account without extra sign-in. It does not cover pagination or response shape, but for a zero-parameter list tool the added behavioral context is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences are front-loaded with the tool's scope and routing guidance, with no wasted text. The distinction from list_conversations appears exactly where an agent needs it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter inbox listing with annotations covering safety and closed-world behavior, the description supplies enough context about ordering, included message data, and account usage. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there are no parameter semantics to explain. The baseline for this situation is 4, and the description does not need to compensate for missing input details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: listing the user's job seeker inbox conversations, with scope and return details such as newest-first ordering and last-message/reply-needed information. It also clearly distinguishes this from the employer-side list_conversations sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use this tool versus list_conversations: this is for the job seeker's inbox with companies and recruiters, while list_conversations is for an employer's conversations with candidates. No alternative is left ambiguous for the primary use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notificationsList notificationsARead-onlyInspect
List the user's newest Himalayas notifications (up to 20), such as finished headshots, profile imports and community replies, with ids and whether each is read. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the description isn't carrying the safety burden. It still adds real behavioral context beyond them: a hard cap of 20 results, newest-first ordering, and the returned fields (ids plus read status), which matters because no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the action and scope, with the account/auth note at the end. Everything is relevant, though the trailing 'no extra sign-in needed' clause is the least load-bearing part.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully compensates by naming the returned fields and result cap, and annotations cover the read-only safety profile. For a zero-parameter list tool this is essentially complete, missing only ordering/refresh semantics and an explicit sibling hand-off.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The mention of scope (up to 20, newest) partially describes the implicit query rather than any parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (notifications) plus scope (up to 20, newest first) and concrete content types (headshots, profile imports, community replies). An agent can immediately distinguish this retrieval tool from the sibling mark_notifications_read without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied as the way to view notifications, and it notes the connected account removes the need for extra sign-in. However, it never explicitly says when to call this versus mark_notifications_read or the other list_* siblings, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_answersList saved application answersARead-onlyInspect
List the answers the user saved to job application questions on Himalayas (for example work authorisation or notice period), with ids. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safe read profile is covered. The description adds genuine context by noting it 'uses the connected Himalayas account; no extra sign-in needed', but it does not disclose return format or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and example content, followed by a brief auth note. No filler and no redundancy with the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param list tool with no output schema and annotations covering the safety profile, the definition is nearly complete. It signals the 'ids' returned and auth expectations; only an explicit note on the returned structure/pagination is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so per the rubric the baseline is 4. The schema is empty and 100% covered; the description correctly avoids inventing parameter detail and adds nothing to mislead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the answers the user saved to job application questions on Himalayas') and grounds it with concrete examples ('work authorisation or notice period'). The 'list' verb naturally separates it from delete_saved_answer and update_saved_answer, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to reach for it (fetching saved answers), and 'with ids' hints the result is meant to feed follow-up operations. But there is no explicit when-to-use, when-not, or alternative (e.g. update_saved_answer/delete_saved_answer) guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_message_readMark employer message readAIdempotentInspect
Mark a message as read by its ID. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_name | No | Room name from list_conversations | |
| message_id | Yes | Message ID to mark as read | |
| talent_slug | No | Talent slug (from search_talent results) — resolves to room name automatically |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, openWorldHint=false and readOnlyHint=false, so the state-change and safety profile is covered. The description contributes one genuinely new fact — that authentication uses the connected employer account with "no extra sign-in needed" — but says nothing about failure modes (unknown/invalid message ID, messages in the wrong room) and adds nothing to the idempotency already stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the action and its identifier front-loaded, and the auth/scope caveat following. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, annotation-covered mutation with no output schema this is close to sufficient, but it omits the one thing an agent might get wrong: the room_name vs talent_slug alternatives and how message_id is scoped if neither is supplied. Barely adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are documented in the schema itself, which sets the baseline at 3. "By its ID" merely echoes the message_id description and does not clarify the relationship between the optional room_name and talent_slug parameters (which reportedly resolve to a room automatically) or whether either is required in practice.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Mark ... as read") and resource ("a message ... by its ID"), and the phrase "connected Himalayas employer account" signals it is the employer-side counterpart to the sibling mark_my_message_read. It does not name that sibling explicitly, so differentiation requires the agent to infer it from the 'employer' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The employer-account framing implies the calling context (acting on employer conversations, not the candidate's own inbox), which is useful routing information against mark_my_message_read. However there is no explicit when-to-use/when-not-to-use statement and no mention of prerequisites such as needing an existing conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_my_message_readMark inbox message readAIdempotentInspect
Mark a message in the user's job seeker inbox as read. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| room_name | Yes | Room name from list_my_conversations | |
| message_id | Yes | Message id from get_my_conversation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context beyond the annotations: the operation runs against the connected Himalayas account with no extra sign-in. It does not explain what happens to an already-read message or whether the change is reversible, but idempotentHint already covers repeats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero filler, with the core action front-loaded before the auth clarification. Both sentences carry information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with full schema coverage, complete annotations, and no output schema, the description supplies the missing auth context and scope. What remains thin is behavioral detail on failure/edge cases (already-read messages, invalid room_name), which the annotations partly absorb.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (room_name, message_id) are documented in the schema, including which sibling tool supplies each value. The description adds nothing about parameter format or constraints beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Mark ... as read') and resource ('a message in the user's job seeker inbox'), which is more precise than the bare title. The 'job seeker inbox' scoping implicitly separates it from the sibling mark_message_read (recruiter/company side), but it never names that sibling, so the differentiation is inferential rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: call this when a message in the seeker inbox should be marked read. There is no explicit when-to-use guidance, no mention of the closely related mark_message_read, and no note about prerequisites (e.g., needing an unread message or an existing room). Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_notifications_readMark notifications readAIdempotentInspect
Mark one of the user's Himalayas notifications as read by id, or all of them with all: true. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Notification id from list_notifications | |
| all | No | true marks every notification as read |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, readOnlyHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral fact not in the annotations: it authenticates against the connected Himalayas account with no extra sign-in. It says nothing about the result of omitting both parameters (a no-op?) or the state change semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation and its two modes, with no filler. The closing auth sentence is slightly tangential to the call itself but is cheap and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A low-complexity two-parameter mutation with full schema coverage and no output schema; the description plus annotations give the agent enough to invoke it correctly. Only minor gaps remain: no statement of what happens with zero arguments and no cross-reference to the sibling message-marking tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented in the schema ('Notification id from list_notifications', 'true marks every notification as read'). The description restates the same semantics rather than adding syntax, defaults, or interaction rules (e.g. precedence when id and all are both supplied), which is the appropriate baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('mark ... notifications as read') and covers both single-target and bulk modes via 'id' or 'all: true'. It does not, however, differentiate itself from the closely named siblings mark_message_read and mark_my_message_read, leaving the agent to infer the notification-vs-message split from the resource noun alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent how to pick between id and all: true, which is implied usage guidance, but it offers no when-to-use or when-not-to-use context, no prerequisite (e.g. notifications must exist, call list_notifications first), and no routing away from the message-marking siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_job_extrasPurchase job extrasADestructiveInspect
Purchase paid extras for an existing job posting: sticky ($299), newsletter ($99). Returns a Stripe checkout URL. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| extras | Yes | Extras to purchase: 'sticky' ($299 pin to top), 'newsletter' ($99 weekly email feature) | |
| job_slug | Yes | Job slug to add extras to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds value the annotations do not: it discloses the return artifact (Stripe checkout URL) and the authentication model (connected Himalayas employer account, no extra sign-in). It does not explain what the destructive/spend consequence actually is, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single compact sentence front-loads the action and options, then adds the return value and auth note. Every clause carries information an agent needs; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully covers the return value (checkout URL), the auth path, and the purchasable items with prices. It leaves minor gaps around failure behavior and whether repeat purchases are permitted (consistent with idempotentHint=false), but nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both job_slug and the extras enum documented in the schema itself. The description restates the same price/option mapping ('sticky ($299), newsletter ($99)') without adding format, validation, or ordering semantics. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('purchase paid extras for an existing job posting') and immediately enumerates the purchasable options with prices. It clearly differentiates from siblings like get_plus_checkout_link or check_job_payment_status by naming the artifact (job extras) and the outcome (Stripe checkout URL).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for an existing job posting' implies a prerequisite, and the auth note tells the agent which account context is used. However, it never names an alternative or states when-not to use this (e.g., use check_job_payment_status to verify an existing purchase instead of re-purchasing). Usage is implied, not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_company_perkRemove company perkADestructiveIdempotentInspect
Remove a perk/benefit from your company on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Perk ID to remove (use get_company_perks to find IDs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is largely covered. The description adds useful auth context ('connected Himalayas employer account; no extra sign-in needed') but does not disclose whether the removal is permanent or recoverable, which with annotations present keeps this at a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, with the purpose front-loaded ahead of the auth note. Every clause earns its place and there is no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A simple one-parameter mutation with no output schema and full annotation coverage; the description plus annotations give an agent enough to call it correctly. Slightly short of perfect only because permanence/reversibility of the deletion is not addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the id parameter's description already points to get_company_perks for ID lookup. The tool description adds nothing about parameters beyond this, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Remove') and resource ('a perk/benefit from your company'), making it clearly distinguishable from the sibling add_company_perk. It does not explicitly name siblings, but the action and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the concrete verb and the ID-fetching pointer in the schema, but the description offers no explicit when-to-use guidance or exclusions versus alternatives like get_company_perks. Adequate but with a clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_saved_jobRemove saved jobBDestructiveIdempotentInspect
Remove a job from your application tracker. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Kanban item ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds useful auth context ('connected Himalayas account; no extra sign-in needed'), but does not clarify what is actually destroyed (tracker entry vs. underlying job/application data) or whether the action is undoable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, the action stated first and the account/auth note second. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter removal tool whose annotations already flag destructiveness and idempotency, the description is nearly sufficient. It leaves only minor gaps: confirmation of the effect scope and of any return value, though no output schema exists to defer to.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'id' parameter, so the schema already explains 'Kanban item ID to remove'. The description adds no meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Remove') and resource ('a job from your application tracker'), making the domain clear. It does not explicitly name the inverse sibling save_job or distinguish itself from skip_job/delete_saved_answer, so an agent infers rather than is told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, prerequisites, or alternatives are given. Nothing tells the agent whether this should be preferred over skip_job or when a saved job should be removed rather than skipped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reply_to_messageReply in inboxADestructiveInspect
Send a reply in a conversation in the user's job seeker inbox. Sending takes two calls: without confirm_token nothing is sent, and the reply is a preview of the exact text with a confirm_token; calling again with the same message and that token sends it. The company reads it as coming from the user and it can't be unsent, so show the user the preview and get their OK before the second call. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The reply, exactly as the user approved it | |
| room_name | Yes | Room name from list_my_conversations | |
| confirm_token | No | Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true, idempotentHint=false) by spelling out the two-call confirm_token protocol, that nothing is sent on the first call, that the message is irreversible once sent, and that the company sees it as coming from the user. It also pre-empts an auth question by noting the connected Himalayas account needs no extra sign-in.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with what the tool does, then the two-call mechanics, then the safety obligation. No filler and no repetition of annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter, no-output-schema, destructive write tool, the description covers mechanism, irreversibility, approval workflow, and auth context. An agent has everything needed to call it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so a baseline of 3 applies, but the description adds real semantics: confirm_token is a preview-then-send switch, and the second call must carry the same message. That clarifies the parameter interaction in a way the per-parameter schema text only partially conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Send a reply in a conversation in the user's job seeker inbox' — which an agent can immediately distinguish from, say, start_conversation. It never explicitly contrasts with the sibling send_message, however, so the boundary between the two reply/send tools has to be inferred from the names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear conditional usage: call without confirm_token to preview, call again with the token to send, and only after showing the user the preview and getting approval. That is strong when-to-use guidance, though it offers no explicit exclusion against send_message or start_conversation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_jobSave job to trackerADestructiveIdempotentInspect
Save a job to your application tracker. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Personal notes about this job | |
| title | Yes | Job title | |
| status | No | Application status (default: saved) | |
| app_link | No | Application link URL | |
| currency | No | Salary currency (e.g., 'USD') | |
| excitement | No | Excitement level from 0-5 | |
| max_salary | No | Maximum salary | |
| base_salary | No | Base salary | |
| company_name | Yes | Company name | |
| himalayas_link | No | Himalayas job listing URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=true, destructive=true and closed-world, so the safety profile is largely covered. The description adds the useful auth detail that it uses the connected Himalayas account with no extra sign-in, but says nothing about what happens if the same job is saved twice or whether existing fields are overwritten — meaningful gaps for a 10-parameter write tool, even though the known annotation set (idempotentHint) hints at duplicate handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded and the auth caveat second. Every sentence carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fully-documented schema with a safety profile supplied by annotations and no output schema to explain, the description covers what an agent needs: the action, the target (personal application tracker), and the credential context. Remaining questions (duplicate handling, return shape) are minor given idempotentHint and the absence of an output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 10 parameters, including the status enum and required fields, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond what the schema already documents, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Save a job to your application tracker'), which is clearly distinct from read/delete siblings like get_saved_jobs and remove_saved_job. It does not, however, explicitly differentiate itself from adjacent write tools such as update_job_status or create_company_job, so an agent must infer that this is the create-an-entry path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no mention of alternatives (e.g., update_job_status for an existing tracked job), and no prerequisites beyond the auth note. An agent gets no help deciding between saving, updating, or removing a job entry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesSearch remote companiesARead-onlyInspect
Search for remote-friendly companies using keywords with optional country filtering
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| sort | No | Sort order for results (default: 'relevant') | |
| country | No | Filter companies by country (e.g., 'Canada', 'United States', 'UK') | |
| keyword | No | Search keyword/term (optional) | |
| benefits | No | Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity') | |
| worldwide | No | Show only companies with 100% remote jobs available worldwide (overrides country filter) | |
| tech_stack | No | Comma-separated technology slugs to filter by (e.g., 'react,typescript,python') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds only the 'remote-friendly' scope qualifier and says nothing about pagination behavior, result limits, or return shape, so it stays at the baseline for an annotated read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that names the action and the primary filter with no wasted words. It is efficient, though very sparse for a seven-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full schema coverage, no output schema needed, and annotations carrying the safety signal, the description is about as complete as required. It omits sorting/pagination/benefit and tech_stack filters, but those are adequately documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all seven parameters are already documented in the schema. The description only echoes keyword and country filtering and adds no syntax or format detail beyond what the schema provides, making the 3 baseline correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search ... companies') and adds a meaningful scope qualifier ('remote-friendly'). It is distinguishable from search_jobs and search_talent by resource, though it does not explicitly name how it differs from get_companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'using keywords with optional country filtering' implies the search-driven use case, but there is no explicit when-to-use guidance, no mention of alternatives like get_companies or get_company_details, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsSearch remote jobsARead-onlyInspect
Search remote job listings on Himalayas by job title, role, skill or keyword, filtered by the countries a job is open to, worldwide availability, seniority, employment type, salary, markets, benefits or companies. Each result has the company, title, salary range when listed, the countries the job is open to, the posting date and the slugs for get_job_details.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| sort | No | Sort order for results (default: 'relevant') | |
| type | No | Filter by a single employment type (full-time, part-time, contractor, temporary, intern, volunteer, or other) | |
| country | No | Filter jobs by country (e.g., 'Canada', 'United States', 'UK') | |
| keyword | No | Job title, role or skill to search for, e.g. 'product manager' or 'react' (optional) | |
| markets | No | Comma-separated market/category slugs to filter by (e.g., 'saas,fintech,healthcare') | |
| benefits | No | Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity') | |
| currency | No | Salary currency (default: USD). salary_min and salary_max are always USD; this doesn't convert them. | |
| companies | No | Comma-separated company slugs to filter by (e.g., 'stripe,gitlab') | |
| worldwide | No | Show ONLY 100% remote jobs available worldwide (overrides country filter) | |
| experience | No | Filter by a single experience/seniority level (entry-level, mid-level, senior, manager, director, or executive) | |
| salary_max | No | Maximum yearly pay in USD, compared the same way as salary_min | |
| salary_min | No | Minimum yearly pay in USD. Hourly, weekly and monthly pay is converted to a yearly figure first (hourly x 2080), so hourly jobs whose yearly equivalent clears it are included. | |
| salary_required | No | If false, include jobs without salary data in salary-filtered results (default: true — only jobs with salary) | |
| exclude_worldwide | No | When true and country is set, return ONLY jobs specifically available in that country, excluding worldwide/remote jobs. Requires country to be set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful context the annotations do not: the per-result fields returned (company, title, salary range when listed, open countries, posting date, and get_job_details slugs), which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first clause and the return shape in the second sentence. Two sentences for a 15-parameter tool is efficient, though the filter enumeration is somewhat redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, zero-required search tool with no output schema, the description covers both intent and result shape, which is the main gap an agent would otherwise face. Pagination and sort behavior are left to the schema but are well documented there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description's broad enumeration of filter categories (country, worldwide, seniority, employment type, salary, markets, benefits, companies) largely restates what the schema already documents in more precise detail. It adds no syntax, default, or interaction detail beyond the schema, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (remote job listings on Himalayas) plus the searchable dimensions (title, role, skill, keyword) and filter axes. It also names the follow-up sibling get_job_details, which the returned slugs feed, so an agent can chain calls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: use this to discover remote jobs matching a keyword and a wide set of filters. However it never states when NOT to use it — notably how it differs from the sibling get_jobs or get_related_jobs — so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_talentSearch talentARead-onlyInspect
Search remote candidates and talent on Himalayas to hire or recruit, such as developers, designers or marketers, by skill, job title or keyword and country. Each result has the candidate's current role, salary expectation, job search status and the profile link for get_talent_profile. Results here have no paid placement: they are ordered by relevance or recency only, and Himalayas Plus or verified candidates rank like everyone else. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (starts at 1) | |
| sort | No | Sort order (default: relevant) | |
| country | No | Filter by country (e.g., 'United States', 'Germany') | |
| keyword | No | Search keyword (e.g., 'react developer') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, but the description adds genuinely non-obvious behavior: no paid placement, relevance/recency-only ordering, and that Plus or verified candidates get no ranking boost. It also notes the connected Himalayas account means no extra sign-in, which is useful auth context. It stops short of describing result counts or pagination limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded with purpose, scope, and filter dimensions, and the later sentences cover result contents, ranking fairness, and account context. Four sentences is slightly long, and the paid-placement disclaimer is somewhat verbose, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing returns and does so concretely: current role, salary expectation, job search status, and the profile link for get_talent_profile. Combined with 100% schema coverage on the four parameters, an agent has everything needed to call it and follow up correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline would be 3, but the description adds meaning by explaining the search dimensions (skill, job title, keyword, country) that map to the keyword and country parameters. It does not clarify the sort enum values beyond the schema, which already documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (search) plus a specific resource (remote candidates/talent on Himalayas), scoped to hiring/recruiting use cases with concrete examples like developers and designers. It is clearly distinguishable from siblings such as search_jobs and search_companies because it targets people, not jobs or companies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the intent clearly ("to hire or recruit") and routes the agent to the follow-up tool get_talent_profile for full profiles. It does not explicitly say when to use a different search tool instead, so a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageSend message to candidateADestructiveInspect
Send a message in an existing conversation. Accepts room_name (from list_conversations) or talent_slug (from search_talent). Use start_conversation first if no conversation exists yet. Sending takes two calls: without confirm_token nothing is sent, and the reply is a preview of the exact text with a confirm_token; calling again with the same message and that token sends it. The candidate reads it as coming from the user's company and it can't be unsent, so show the user the preview and get their OK before the second call. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Message text to send | |
| room_name | No | Room name from list_conversations | |
| talent_slug | No | Talent slug (from search_talent results) — resolves to room name automatically | |
| confirm_token | No | Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (destructiveHint=true, idempotentHint=false): it explains that the first call sends nothing and only returns a preview plus confirm_token, that the message is attributed to the user's company, that it cannot be unsent, and that the connected employer account handles auth. This is exactly the operational context an agent needs before firing a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then addressing options, then the critical two-call mechanics, then the safety warning. Every sentence carries decision-relevant information; the only slight overlap with the schema is the token rule, which is worth repeating for a destructive operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 write with no output schema, the description covers auth, attribution, irreversibility, the preview-then-send protocol, and prerequisites. An agent has everything needed to call it correctly and safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so room_name, talent_slug, and confirm_token are already fully documented in the schema. The description restates the same sourcing (list_conversations, search_talent) and the same token-with-identical-message rule rather than adding new constraints; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Send a message in an existing conversation') and the 'existing conversation' qualifier cleanly separates it from start_conversation. It does not, however, distinguish itself from the sibling reply_to_message, leaving one plausible alternative route unaddressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use start_conversation first if no conversation exists, and use list_conversations / search_talent as the sources for the two addressing parameters. It also spells out the mandatory two-call sequence and the instruction to show the preview and get user approval before the sending call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_company_jobGet company jobARead-onlyInspect
Get full details of one of your company's job postings on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_slug | Yes | Job slug (from list_company_jobs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint and openWorldHint, so the safety profile is known. The description adds genuinely useful behavioral context beyond that: it operates under the connected Himalayas employer account and requires no extra sign-in, which tells the agent the auth model. It stops short of describing return shape or pagination, but with annotations doing the heavy lifting this is a solid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core action and followed by the one piece of operational context that matters (auth). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with full schema coverage and safety annotations, this is nearly complete: purpose, scope and auth model are all present. The only minor gap is that with no output schema, 'full details' is left vague about what fields are actually returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single job_slug parameter, so the schema already documents it fully and even points at list_company_jobs as the source. The description adds no format or constraint detail beyond that; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get full details of one of your company's job postings'), and the possessive scope implicitly separates it from generic siblings like get_job_details or get_jobs. However, it never explicitly names the sibling it differs from, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: fetch a single posting given a slug, where the slug comes from list_company_jobs (documented in the schema). There is no explicit when-to-use vs. list_company_jobs/get_job_details guidance and no stated preconditions beyond the auth note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skip_jobSkip jobADestructiveIdempotentInspect
Record that the user is passing on a Himalayas job, with the reason, so it stops coming back in get_new_matches and future matches can learn from it. job_closed also reports the listing as expired. For a job already in the tracker, use update_job_status with outcome didnt_apply instead. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Anything worth knowing, in a sentence or two (what the page said, a hidden requirement). No personal data. | |
| reason | Yes | Why the user is passing on it | |
| job_slug | Yes | Job slug (from the job listing URL) | |
| company_slug | Yes | Company slug (from the job listing URL) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=true, so the safety profile is covered. The description adds non-obvious behavior: the skip suppresses future matches and feeds match learning, job_closed additionally reports the listing as expired, and no separate sign-in is required. It stops short of describing the tool's response or whether a skip can be undone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct load: what the tool does and its effect, the special-case reason, the alternative route, and the auth note. Purpose is front-loaded and there is no filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter mutation tool with full schema coverage, no output schema, and annotations covering safety, this is close to complete: effects, alternative routing, and auth are all covered. Minor gaps remain around confirmation/return behavior and whether a skip is reversible, which an agent may want to know.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the description earns an extra point by attaching semantics to a specific enum value (job_closed reports the listing as expired) and by emphasizing that a reason is mandatory, which is behaviorally meaningful beyond the bare 'Why the user is passing on it' schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Record that the user is passing on a Himalayas job'), names the observable effect ('stops coming back in get_new_matches'), and distinguishes itself from update_job_status by scope. An agent can separate it from save_job / remove_saved_job / update_job_status without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit alternative with the selecting condition: 'For a job already in the tracker, use update_job_status with outcome didnt_apply instead.' It also clarifies the job_closed reason's extra side effect, so the agent knows when a plain skip is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_conversationStart conversation with candidateADestructiveInspect
Start a conversation with a candidate by talent slug, optionally with a first message. If the conversation already exists, returns it. Use search_talent to find candidates first, then use their slug here. A first message takes two calls: without confirm_token nothing is created or sent, and the reply is a preview of the exact text with a confirm_token; calling again with the same message and that token sends it. The candidate reads it as coming from the user's company and it can't be unsent, so show the user the preview and get their OK before the second call. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| message | No | Optional initial message to send with the conversation | |
| talent_slug | Yes | Talent slug of the candidate to message (from search_talent results) | |
| confirm_token | No | Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses that a call without confirm_token creates and sends nothing, that the reply is a preview of the exact text plus a token, that the message is irreversible once sent, that it appears to the candidate as coming from the user's company, and that it uses the already-connected employer account. That is precisely the safety and auth context destructiveHint=true leaves unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and its scope, then the prerequisite, then the two-call protocol, then the safety warning — a sensible order with no filler. It is dense but every sentence contributes; only the final account sentence could be trimmed for some readers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive, open-world mutation with no output schema, the description covers the things an agent actually needs: prerequisites, the confirm handshake, irreversibility, and auth state. The shape of the returned conversation or preview object is not described, but that gap is minor against the otherwise complete behavioral picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters, including the slug source and the preview/send meaning of confirm_token. The description reinforces the two-call relationship but adds little parameter-level meaning the schema does not already carry; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Start a conversation with a candidate') scoped by talent_slug, and adds the useful nuance that an existing conversation is returned rather than duplicated. It explicitly routes to search_talent for finding the slug, but never contrasts itself with send_message or reply_to_message, which an agent must distinguish for existing threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit prerequisite workflow (search_talent first, then the slug), an explicit two-call protocol for the first message, and an explicit instruction to show the user the preview and obtain approval before the second call. The condition that selects the confirm_token path versus the plain path is spelled out rather than inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_feedbackSend feedback to HimalayasAInspect
Send a problem report about Himalayas to its engineering team: a missing capability (filter, field, tool), unclear or wrong documentation, a surprising response, an unhelpful error, a bug, a blocked page or action, or impractical performance. Describe the goal, what got in the way and, if known, a suggested fix. Fill agent with the client's name and model. Reports must not contain credentials, personal data or the user's private content.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | What you or your user were trying to accomplish, in plain language | |
| type | Yes | The kind of problem | |
| agent | No | Who is reporting: name (agent or product) and model | |
| message | Yes | What prevented or complicated the task | |
| outcome | No | blocked = task failed, degraded = completed worse or slower, completed = suggestion only | |
| endpoint | No | The Himalayas tool involved, e.g. search_jobs | |
| evidence | No | Sanitized details of the failing call, with no credentials or personal data | |
| expected | No | What you expected to find or happen | |
| metadata | No | ||
| request_id | No | ||
| session_id | No | Reuse the same value for every report in one task | |
| suggestion | No | A concrete change that would have let you succeed | |
| workaround | No | Whether you found a workaround | |
| workaround_description | No | The workaround, if any |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (non-destructive, not open-world, non-idempotent). The description adds real substance beyond that: a hard privacy constraint ('must not contain credentials, personal data or the user's private content') and an instruction to populate `agent` with the client name and model. It stops short of saying what happens to the report after submission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the purpose, then intake guidance, then the agent field, then the privacy constraint. For a 14-parameter tool this is tight and every sentence carries information the caller needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-param, three-required submission tool with no output schema, the description covers purpose, required narrative content, the identity field, and the privacy limit. It omits post-submission behavior (confirmation, review process) and never hints at `session_id` reuse, though the schema documents the latter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, so the schema already documents most fields (baseline 3). The description adds targeted value: it maps the narrative to `goal`/`message`/`suggestion` and explicitly tells the caller to fill `agent` with the client's name and model, resolving the otherwise vague 'name (agent or product)' wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Send a problem report about Himalayas to its engineering team') and enumerates the concrete situations it covers (missing capability, bug, unclear docs, unhelpful error, performance). No sibling tool offers feedback, and the definition leaves no ambiguity about what this does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The enumerated problem categories act as a clear when-to-use trigger, and it tells the agent what content to include ('Describe the goal, what got in the way and, if known, a suggested fix'). It never states an exclusion or a competing tool, but none exists in this sibling set, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_accountUpdate account time zoneADestructiveIdempotentInspect
Change the user's account time zone (used for email timing). Name is on update_profile; email address and password can only be changed on himalayas.app. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| time_zone | Yes | Time zone name, e.g. 'Pacific Time (US & Canada)' or 'London' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true and destructiveHint=true, so the mutation/idempotency profile is covered. The description adds value beyond that with auth context ('uses the connected Himalayas account; no extra sign-in needed'), though it does not explain why a timezone change carries a destructive hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, all front-loaded and each carrying distinct information: purpose, sibling routing, and auth scope. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema and full annotation coverage, the description supplies everything needed: what changes, what it affects, where to go for related edits, and that no re-authentication is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single parameter with 100% schema description coverage, including format examples like 'Pacific Time (US & Canada)' and 'London'. The description adds nothing about the time_zone value beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Change the user's account time zone') and adds the effect ('used for email timing'), which distinguishes it from the many other update_* siblings. It explicitly names update_profile as the place for name changes, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-not guidance: name belongs on update_profile, and email address and password can only be changed on himalayas.app. This routes the agent away from the wrong tool rather than leaving it to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_company_jobUpdate company jobADestructiveIdempotentInspect
Update an existing job posting on Himalayas. Only provide fields you want to change. For screening_questions, provide the full set — questions not included will be removed. Editing is free. If the job has paid extras (sticky or newsletter, chosen earlier) that aren't paid yet, the reply is a Stripe checkout link for them, which the user opens and pays themselves; nothing is charged otherwise. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | Save as draft instead of submitting for approval | |
| title | No | Job title (5-80 characters) | |
| job_slug | Yes | Job slug to update | |
| seniority | No | Seniority levels | |
| max_salary | No | Maximum salary | |
| skill_list | No | Comma-separated skills | |
| base_salary | No | Minimum salary | |
| description | No | Job description (350+ characters, can include HTML) | |
| category_list | No | Comma-separated job categories | |
| valid_through | No | Expiration date (ISO format) | |
| salary_country | No | Salary currency code | |
| employment_type | No | Employment type | |
| app_link_or_email | No | Application URL or email address | |
| screening_questions | No | Screening questions — provide full set, questions not included will be removed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations flag this as destructive and idempotent, and the description earns that flag by spelling out exactly what is destroyed: screening questions omitted from the payload are removed. It also discloses the non-obvious side effect that unpaid paid extras produce a Stripe checkout link rather than a charge, and that no extra sign-in is required — behavior no annotation or schema conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Leading with the core verb and the partial-update rule front-loads what matters most; the screening_questions warning and the payment flow follow in logical order. The Stripe sentence is long but covers a genuine edge case, so it earns its space; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters, one required, and no output schema, the description closes the biggest gaps: partial-update semantics, replace-vs-merge risk on screening_questions, authentication context, and the unusual link-shaped response for unpaid extras. An agent has everything needed to call it correctly and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 14 parameters including the nested screening_questions fields. The description adds the destructive replace semantics for screening_questions, but that same fact is already stated in the schema's own field description, so it is largely restatement rather than new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Update an existing job posting on Himalayas") plus the partial-update semantics, which clearly separates it from create_company_job and delete_company_job. It does not name update_job_status, the closest sibling for modifying a job, so an agent must infer that status changes go elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Only provide fields you want to change" and "For screening_questions, provide the full set" give concrete invocation guidance an agent cannot infer from the schema alone. "Editing is free" and the connected-account note remove hesitation about using it. It stops short of explicit when-not-to-use guidance relative to update_job_status or list_company_jobs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_company_profileUpdate company profileADestructiveIdempotentInspect
Update your company's profile on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| ceo | No | CEO name | |
| about | No | Company description (HTML or plain text) | |
| summary | No | Short company summary | |
| No | Twitter URL | ||
| No | Facebook URL | ||
| No | LinkedIn URL | ||
| No | Instagram URL | ||
| year_founded | No | Year the company was founded | |
| location_list | No | Comma-separated list of locations (e.g., 'San Francisco, New York') | |
| num_employees_range | No | Number of employees range |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds genuinely useful context that annotations cannot: that no extra sign-in is required because the connected employer account is used. It does not, however, explain what the destructive hint means in practice — whether omitted fields are wiped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no filler, and the core action is front-loaded before the authentication note. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter, all-optional mutation tool flagged destructiveHint, the description is thin: it never states whether the update is a partial patch or a full replace, which is the single most consequential thing an agent needs to know before calling it. With no output schema and annotations already covering the safety profile, the omission is a real but not fatal gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every one of the 10 parameters is already documented in the schema (ceo, about, enum-bounded num_employees_range, etc.). The description adds no parameter meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Update your company's profile on Himalayas'), which cleanly separates it from the read-side sibling get_company_profile. It does not, however, explicitly distinguish itself from update_profile or update_company_tech_stack, which an agent scanning this sibling list could easily confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'Uses the connected Himalayas employer account', which tells the agent this only works for an employer account. There is no explicit when-to-use versus alternatives guidance, no mention of prerequisites beyond the account, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_company_tech_stackUpdate company tech stackBDestructiveIdempotentInspect
Update your company's tech stack on Himalayas. Pass technology names (e.g., 'React', 'Python') and they'll be matched to the Himalayas stack database. Uses the connected Himalayas employer account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| stacks | Yes | Array of technology names (e.g., ['React', 'TypeScript', 'Python', 'AWS']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the write/replace risk is flagged structurally. The description adds the non-obvious behavior that input names are fuzzy-matched against the Himalayas stack database, but it omits the critical question of whether the passed array replaces the entire stack or merges with existing entries — a significant gap given destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the core action front-loaded and no filler. Slightly padded by the 'no extra sign-in needed' clause, but every sentence is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with no output schema, the description covers input handling and auth, and annotations cover safety hints. It is still incomplete on the replace-vs-append semantics and on what confirmation or matched-result the agent gets back, which matters for a destructive write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% on the single 'stacks' parameter, including its own example array, so the schema already carries parameter meaning. The description's mention of matching technology names to the database adds a little semantic context but no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Update your company's tech stack on Himalayas') and scopes it to the company entity, which separates it from the sibling update_tech_stack. It stops short of explicitly naming that sibling, so differentiation is inferable rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides useful context that no separate sign-in is required because it uses the connected employer account, but it never states when to use this tool versus the personal update_tech_stack or how it relates to update_company_profile. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_documentUpdate resume or cover letterADestructiveIdempotentInspect
Rename a tailored resume or cover letter, or replace a cover letter's text. Resume content is edited in the website's resume editor (link from list_documents). Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Document id or slug | |
| type | Yes | ||
| title | No | New title | |
| content | No | Cover letters only: the full new text, paragraphs separated by blank lines |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true and readOnlyHint=false, so the safety profile is covered. The description adds genuinely new context beyond the annotations: it uses the connected Himalayas account with no extra sign-in, which is useful auth information. It stops short of stating that supplying content overwrites the existing cover letter text entirely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the operations, followed by the routing note and the auth note. No filler; each sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with annotations covering safety and no output schema, the description covers operations, the excluded resume-editing case, and auth. The main residual gap is not spelling out that content replacement is a full overwrite, but that is minor against the existing hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents id, type, title and content. The description still adds mapping value by tying 'rename' to title and 'replace text' to content, and by reinforcing that content is cover-letter-only. The anyOf id/type semantics are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names specific verbs and resources: rename a resume or cover letter, or replace a cover letter's text. It also carves out what this tool does NOT do (resume content editing), letting an agent separate it from get_document, delete_document, and the resume editor path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear when-not: resume content must be edited in the website's resume editor, reachable via list_documents. That routes the agent away from a wrong invocation, but it never names an alternative for renaming or states prerequisites (e.g. that the document must already exist).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_educationUpdate educationADestructiveIdempotentInspect
Edit an education entry on your Himalayas profile by id (get_my_profile lists the ids). Only the fields you pass change. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Education id | |
| field | No | Field of study | |
| grade | No | ||
| degree | No | ||
| school | No | ||
| current | No | Currently enrolled | |
| end_year | No | ||
| activities | No | ||
| sort_order | No | Position on the profile, 0 first | |
| start_year | No | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=true), so the description's burden is lighter. It still adds real value beyond them: 'Only the fields you pass change' discloses partial-update semantics and 'Uses the connected Himalayas account; no extra sign-in needed' discloses auth context. It does not explain why destructiveHint is set, but this is a strong additive disclosure for an annotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, with each sentence carrying distinct information (action+id, id source, partial-update semantics, auth context). No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with 36% schema coverage and no output schema, the description covers the essentials (id source, partial update, auth) but leaves most parameter semantics undocumented. Adequate to invoke correctly for the id, but thin for the optional fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 36%, so the description must compensate for the bulk of parameters. It clarifies the required id and its source (get_my_profile) and the partial-update behavior, but says nothing about the ten other fields (field, degree, school, grade, current, activities, sort_order, start/end year, description), most of which lack schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Edit) and resource (an education entry) scoped to the user's Himalayas profile, clearly differentiated from add_education/delete_education siblings. An agent can identify the operation without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a concrete routing hint for the required id ('get_my_profile lists the ids'), which is clear usage context. It does not explicitly state when to prefer this over add_education or delete_education, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_email_preferencesUpdate email preferencesADestructiveIdempotentInspect
Turn Himalayas emails on or off for the user. Only the settings you pass change. Daily job-match emails are a Plus feature; free accounts get weekly. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_matches | No | Emails with new jobs that match the profile | |
| job_reminders | No | Reminders about saved jobs | |
| job_post_updates | No | Updates about jobs they posted (employers) | |
| marketing_emails | No | Himalayas news and offers | |
| job_post_reminders | No | Reminders about jobs they posted (employers) | |
| job_match_frequency | No | How often job-match emails come (daily needs Plus) | |
| application_followups | No | 'Did you hear back?' emails about applications | |
| message_notifications | No | Emails when an employer messages them |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnly=false, idempotent=true, destructive=true), and the description adds real context on top: sparse/partial-update semantics, the Plus tier gate on daily frequency, and the connected-account auth model with no extra sign-in. It does not explain why the tool is flagged destructive or what a toggle-off affects, which keeps it at a 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action, and each carries a distinct fact (partial update, tier gate, auth). The frequency sentence mildly duplicates the enum description in the schema, a minor redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description covers the essentials for an eight-flag optional mutation: partial-update behavior, a tier constraint, and auth requirements. It omits what the call returns or any error behavior, but nothing critical to correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all eight optional flags and the daily/weekly enum. The description largely restates the frequency constraint rather than adding new per-parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (turn on/off) and resource (Himalayas emails) for the connected user, which is distinct from the account/profile-oriented siblings like update_account and update_profile. It does not explicitly name a sibling it must not be confused with, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Only the settings you pass change" gives useful partial-update guidance and the Plus/weekly note constrains the frequency choice, so usage is implied and reasonably clear. However, there is no explicit when-to-use vs. when-not, and no routing against the many update_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_experienceUpdate work experienceADestructiveIdempotentInspect
Edit a work experience on your Himalayas profile by id (get_my_profile lists the ids). Only the fields you pass change. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Experience id | |
| title | No | Job title | |
| end_date | No | End date (YYYY-MM-DD) | |
| location | No | Country name for this role. Cities are not accepted. | |
| sort_order | No | Position on the profile, 0 first | |
| start_date | No | Start date (YYYY-MM-DD) | |
| current_job | No | Whether this is the current job | |
| description | No | Description of the role | |
| company_name | No | Company name | |
| employment_type | No | ||
| experience_skill_list | No | Skills used in this role. Replaces the current list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, idempotentHint=true, openWorldHint=false). The description adds real value on top: partial-update behavior ('Only the fields you pass change') and auth context ('connected Himalayas account; no extra sign-in needed'), which are not in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, purpose front-loaded, each earning its place with no filler. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter mutation tool with no output schema, the description covers purpose, id sourcing, partial-update behavior, and auth. Minor gaps remain around error/validation behavior and the skill-list replacement semantics (though that is noted in the schema), but nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (91%), so the schema documents most parameters. The description still adds meaning by explaining where the required id comes from (get_my_profile lists the ids) and by stating the patch-style update semantics, exceeding the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Edit) plus resource (work experience) and scope (on your Himalayas profile), which cleanly separates it from add_experience, delete_experience, and update_education. An agent can identify the tool's job without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear prerequisite flow: get ids from get_my_profile, then edit by id. It also clarifies partial-update semantics ('Only the fields you pass change'). It stops short of explicit when-not guidance or naming alternatives for adding vs editing, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_job_statusUpdate job statusADestructiveIdempotentInspect
Update a saved job's status, outcome or details. Use status for where the application is now (interviewing, negotiation for an offer, hired). Use outcome for an applied job that ended without progressing: rejected, no_response (no reply after 45+ days), withdrawn, or didnt_apply; status stays as it is. With didnt_apply, give a reason: job_closed reports the listing as expired, and the rest improve the user's future matches. Add detail for anything worth knowing (what the page said, a hidden requirement). Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Kanban item ID | |
| notes | No | Updated notes | |
| detail | No | Anything worth knowing about the outcome, in a sentence or two. No personal data. | |
| reason | No | Why the user didn't apply (only with outcome didnt_apply) | |
| status | No | New application status | |
| outcome | No | What happened after applying, as reported by the user. "clear" removes a recorded outcome. | |
| excitement | No | Excitement level from 0-5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true; the description adds real context beyond them, including the auth model ("Uses the connected Himalayas account; no extra sign-in needed") and the non-obvious state rule that outcome leaves status untouched. It doesn't spell out exactly which destructive action the hint refers to beyond the "clear" removal, so a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by compact field-by-field guidance, and the auth note is a single short clause. It is slightly dense for a description, but each sentence carries actionable content and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, three enums, no output schema and no nested objects, the description supplies the conditional logic an agent needs (when to send status vs outcome vs reason) and covers auth. The remaining gap is mutation mechanics — what happens to omitted fields like notes and excitement — which is left to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by encoding cross-parameter relationships the schema cannot express: outcome vs status precedence, reason being conditional on didnt_apply, and the semantic difference between reason values that report an expired listing versus those that improve future matches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("Update a saved job's status, outcome or details") and scopes it to saved jobs, distinguishing it from update_company_job, update_profile and the many other update_* siblings. An agent can identify the target entity and the mutated fields without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives unusually explicit field-selection guidance: status is for where the application stands now, outcome is for applied jobs that ended without progressing, and reason is only valid with didnt_apply. It doesn't name alternative tools or state when not to call this tool, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profileUpdate profileBDestructiveIdempotentInspect
Update your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| bio | No | Short bio | |
| intro | No | Introduction/headline | |
| github | No | GitHub profile URL | |
| behance | No | Behance profile URL | |
| No | Twitter/X profile URL | ||
| website | No | Personal website URL | |
| dribbble | No | Dribbble profile URL | |
| No | LinkedIn profile URL | ||
| location | No | Country name (e.g. 'United States', 'Australia'). Cities and 'City, Country' strings are not accepted. | |
| username | No | New username: 3 to 30 letters, numbers, dashes or underscores. The profile moves to himalayas.app/@username and the old link stops working. | |
| last_name | No | Last name | |
| portfolio | No | Portfolio URL | |
| seniority | No | Seniority levels the user wants. Replaces the current list. | |
| first_name | No | First name, as shown on the profile and tailored resumes | |
| visibility | No | public_profile: employers can find and view it. unsearchable_profile: viewable by link but not in search. private_profile: only the user sees it. | |
| contact_email | No | Email shown to employers, if different from the login email | |
| email_visible | No | Show the contact email on the profile | |
| career_max_salary | No | Desired maximum salary | |
| career_skill_list | No | Skills for job matching (e.g. ['Product design', 'User research']). Replaces the current list. | |
| career_base_salary | No | Desired minimum salary | |
| career_description | No | Description of what you're looking for | |
| career_company_size | No | Company size preferences, e.g. {'1-10': 'not_interested', '51-200': 'preferred'}. Replaces all current size preferences, so include every size the user cares about. | |
| career_compensation | No | How the user feels about equity as part of pay | |
| career_primary_role | No | Primary role (e.g., 'software-engineer') | |
| career_search_status | No | Career search status (e.g., 'actively_searching', 'open_to_roles', 'closed_to_roles') | |
| career_salary_country | No | Currency of the desired salary | |
| career_working_permits | No | Countries the user can legally work in, as country names (e.g. ['United States']). Replaces the current list. | |
| career_interested_role_list | No | Other roles the user is interested in. Replaces the current list. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is partly covered. The description adds useful auth context ("no extra sign-in needed") but omits that several fields replace existing lists and that the update is destructive. With annotations carrying the safety signal, this partial addition merits a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose front-loaded and no wasted words. The auth note is brief and adds context not found in the annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 28-parameter destructive profile update with nested objects, the description is thin: it does not explain partial-update behavior or which list fields are replaced. The rich schema and annotations carry much of the burden, but the description still leaves usage and replacement semantics to the structured fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all 28 parameters are documented in the schema itself, making 3 the baseline. The description adds no parameter meaning, format details, or examples beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Update your Himalayas profile" states a clear verb and resource, so an agent knows it mutates the user's profile. However, it does not differentiate from close siblings like update_account, update_company_profile, or update_profile_photo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no conditions for choosing this tool over alternatives, and no exclusions. The note about using the connected account is authentication context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_profile_photoUpdate profile photoADestructiveIdempotentInspect
Set the user's profile photo (avatar) or profile cover photo from an image URL (https, JPEG/PNG/WebP/GIF, up to 5 MB). Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| image_url | Yes | https URL of the image |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, destructive=true, and idempotent=true. The description adds meaningful behavioral context by specifying accepted HTTPS image formats and the 5 MB limit, plus the connected-account/no-sign-in detail. It could more explicitly state that the existing profile image is replaced, but the destructive hint plus 'Set' covers this reasonably.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action and key constraints. Every clause adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter mutation with rich annotations and no output schema, the description covers purpose, auth context, and image constraints sufficiently for an agent to call it correctly. It lacks explicit alternative-tool routing and replacement-behavior detail, but those are minor against the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, with only image_url documented in the schema. The description compensates well by explaining that kind selects avatar or cover_photo and by adding URL/format/size constraints for image_url. Minor remaining gap: it does not explicitly restate that both parameters are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: setting the user's profile photo/avatar or cover photo from an image URL. It is clear what the tool does, but it does not explicitly differentiate itself from sibling tools such as use_headshot_as_profile_photo or get_headshots_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context: it requires an image URL and uses the connected Himalayas account without extra sign-in. However, it does not explicitly say when to choose this tool over use_headshot_as_profile_photo or when not to use it, so usage is mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_saved_answerUpdate saved application answerADestructiveIdempotentInspect
Change the text of one of the user's saved application answers, by id from list_saved_answers. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Saved answer id from list_saved_answers | |
| answer | Yes | The full new answer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true and idempotentHint=true. The description adds useful non-annotation context about auth ('connected Himalayas account; no extra sign-in needed'), which counts for something. It does not, however, warn that the existing answer text is overwritten and unrecoverable, which is the behavioral detail most relevant to a destructiveHint tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded clauses that state the action first and the operational context second, with no filler. Nearly optimal, though the account sentence could have been folded in a touch more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation whose safety profile is fully covered by annotations and which has no output schema, the description supplies the essential extras: id provenance and auth requirement. The only meaningful gap is not flagging that the previous answer text is replaced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both 'id' (source: list_saved_answers) and 'answer' (the full new answer) fully documented in the schema itself. The description restates the id provenance but adds no syntax or format detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Change) and resource (the user's saved application answer) and scopes it to a single item by id. The reference to list_saved_answers as the id source distinguishes it cleanly from delete_saved_answer and list_saved_answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the workflow by telling the agent where the id comes from (list_saved_answers) and that the connected account is used, which is genuine usage context. However it gives no when/when-not guidance or contrast with alternatives such as delete_saved_answer or update_document, so the guidance remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_tech_stackUpdate profile tech stackADestructiveIdempotentInspect
Set the tools and technologies on your Himalayas profile, replacing the current list. Names are matched to Himalayas' catalogue; any it doesn't have yet are requested for review and left off for now. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| stacks | Yes | Array of technology names (e.g., ['React', 'TypeScript', 'Node.js']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds genuinely new behavior: unmatched names are queued for catalogue review and omitted from the profile, and the operation runs against the already-connected Himalayas account with no extra sign-in. That catalogue-matching quirk is exactly the kind of side effect an agent cannot infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and replacement semantics, then the matching caveat, then the auth note. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter mutation with annotations covering the safety profile, the description covers what an agent needs: scope, destructive replacement, unmatched-value handling, and auth. It stops short of describing the outcome or confirmation of the call, which matters slightly more here since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single array parameter is fully documented with an example, so the baseline is 3. The description contributes only a small amount beyond the schema by noting the strings are matched against Himalayas' catalogue, without specifying matching rules, casing, or rejection behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Set the tools and technologies on your Himalayas profile') and immediately clarifies the write mode ('replacing the current list'). The phrase 'your Himalayas profile' distinguishes it from the sibling update_company_tech_stack, which targets a company profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the description makes clear this is a full-replacement operation on the caller's own profile, which rules out incremental edits. However, it never names an alternative (e.g. update_company_tech_stack) or sets any precondition for choosing this tool over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
use_headshot_as_profile_photoUse headshot as profile photoADestructiveIdempotentInspect
Set one of the user's finished AI headshots as their Himalayas profile photo, by session id and image id from list_headshots. Uses the connected Himalayas account; no extra sign-in needed.
| Name | Required | Description | Default |
|---|---|---|---|
| image_id | Yes | Image id from list_headshots | |
| session_id | Yes | Session id from list_headshots |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is largely covered. The description adds useful auth context ('Uses the connected Himalayas account; no extra sign-in needed') but does not disclose what gets destroyed — namely whether the existing profile photo is overwritten or recoverable — which is the key behavioral question for a destructive write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence that front-loads the action and resource, then appends the sourcing and auth context. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema and annotations covering safety, the description supplies the essential context: where the ids come from and that authentication is already handled. The only real omission is the fate of the pre-existing profile photo, which is a minor gap for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are self-documented as ids from list_headshots. The description reinforces that provenance but adds no format, type, or constraint detail beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Set ... as their Himalayas profile photo') with a precise resource and scope, plus the identifying keys needed. An agent can distinguish it from siblings like list_headshots, get_headshots_link, and update_profile_photo without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes the prerequisite flow by stating the ids come 'from list_headshots' and that the headshot must be 'finished,' which tells the agent when this call is valid. It stops short of naming an explicit alternative (e.g., update_profile_photo for a non-headshot image) or stating when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Removed
post_job_public - Changed
reply_to_message1 field changed- added
Input schema / properties / confirm_tokenAdded value: +{ + "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it", + "type": "string" +}
- Changed
send_message1 field changed- added
Input schema / properties / confirm_tokenAdded value: +{ + "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it", + "type": "string" +}
- Changed
start_conversation1 field changed- added
Input schema / properties / confirm_tokenAdded value: +{ + "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it", + "type": "string" +}
1 tool update
- Changed
search_jobs1 field changed- changed
Input schema / properties / keyword / descriptionPrevious value: -"Search keyword/term (optional)"New value: +"Job title, role or skill to search for, e.g. 'product manager' or 'react' (optional)"
1 tool update
- Changed
submit_feedback2 fields changed- changed
Input schema / properties / endpoint / descriptionPrevious value: -"Tool name or URL path involved, e.g. search_jobs"New value: +"The Himalayas tool involved, e.g. search_jobs" - removed
Input schema / properties / methodRemoved value: -{ - "description": "HTTP method, when endpoint is a path", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "HEAD", - "OPTIONS" - ], - "type": "string" -}
1 tool update
- Added
get_verification_link
35 tool updates
- Added
delete_document - Added
delete_education - Added
delete_experience - Added
delete_saved_answer - Added
get_billing_portal_link - Added
get_coach_chat - Added
get_document - Added
get_headshots_link - Added
get_interview_practice_link - Added
get_interview_results - Added
get_my_conversation - Added
import_profile - Added
join_radar_waitlist - Added
list_coach_chats - Added
list_documents - Added
list_headshots - Added
list_interviews - Added
list_my_conversations - Added
list_notifications - Added
list_saved_answers - Added
mark_my_message_read - Added
mark_notifications_read - Added
reply_to_message - Changed
search_jobs3 fields changed- changed
Input schema / properties / currency / descriptionPrevious value: -"Salary currency (default: USD)"New value: +"Salary currency (default: USD). salary_min and salary_max are always USD; this doesn't convert them." - changed
Input schema / properties / salary_max / descriptionPrevious value: -"Maximum salary in the specified currency (default USD)"New value: +"Maximum yearly pay in USD, compared the same way as salary_min" - changed
Input schema / properties / salary_min / descriptionPrevious value: -"Minimum salary in the specified currency (default USD)"New value: +"Minimum yearly pay in USD. Hourly, weekly and monthly pay is converted to a yearly figure first (hourly x 2080), so hourly jobs whose yearly equivalent clears it are included."
- Added
skip_job - Added
update_account - Added
update_document - Added
update_education - Added
update_email_preferences - Added
update_experience - Changed
update_job_status2 fields changed- added
Input schema / properties / detailAdded value: +{ + "description": "Anything worth knowing about the outcome, in a sentence or two. No personal data.", + "maxLength": 500, + "type": "string" +} - added
Input schema / properties / reasonAdded value: +{ + "description": "Why the user didn't apply (only with outcome didnt_apply)", + "enum": [ + "job_closed", + "needs_account", + "location_or_visa_restricted", + "pay_too_low", + "wrong_timezone", + "not_really_remote", + "wrong_seniority", + "wrong_role", + "not_interested", + "other" + ], + "type": "string" +}
- Changed
update_profile18 fields changed- added
Input schema / properties / behanceAdded value: +{ + "description": "Behance profile URL", + "type": "string" +} - added
Input schema / properties / career_company_sizeAdded value: +{ + "additionalProperties": { + "enum": [ + "not_interested", + "okay", + "preferred" + ], + "type": "string" + }, + "description": "Company size preferences, e.g. {'1-10': 'not_interested', '51-200': 'preferred'}. Replaces all current size preferences, so include every size the user cares about.", + "propertyNames": { + "enum": [ + "1-10", + "11-50", + "51-200", + "201-500", + "501-1000", + "1001-5000", + "5000+" + ], + "type": "string" + }, + "required": [ + "1-10", + "11-50", + "51-200", + "201-500", + "501-1000", + "1001-5000", + "5000+" + ], + "type": "object" +} - added
Input schema / properties / career_compensationAdded value: +{ + "description": "How the user feels about equity as part of pay", + "enum": [ + "no_equity", + "open_to_compensation", + "equity_important" + ], + "type": "string" +} - added
Input schema / properties / career_interested_role_listAdded value: +{ + "description": "Other roles the user is interested in. Replaces the current list.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / career_salary_countryAdded value: +{ + "description": "Currency of the desired salary", + "enum": [ + "USD", + "AUD", + "EUR", + "JPY", + "GBP", + "CAD", + "CHF", + "CNY", + "HKD", + "NZD", + "SGD", + "SEK", + "KRW", + "NOK", + "INR", + "MXN", + "TWD", + "ZAR", + "BRL", + "IDR", + "PHP", + "THB", + "CLP", + "CZK", + "DKK", + "HUF", + "ILS", + "TRY", + "PLN" + ], + "type": "string" +} - added
Input schema / properties / career_skill_listAdded value: +{ + "description": "Skills for job matching (e.g. ['Product design', 'User research']). Replaces the current list.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / career_working_permitsAdded value: +{ + "description": "Countries the user can legally work in, as country names (e.g. ['United States']). Replaces the current list.", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / contact_emailAdded value: +{ + "description": "Email shown to employers, if different from the login email", + "type": "string" +} - added
Input schema / properties / dribbbleAdded value: +{ + "description": "Dribbble profile URL", + "type": "string" +} - added
Input schema / properties / email_visibleAdded value: +{ + "description": "Show the contact email on the profile", + "type": "boolean" +} - added
Input schema / properties / githubAdded value: +{ + "description": "GitHub profile URL", + "type": "string" +} - added
Input schema / properties / linkedinAdded value: +{ + "description": "LinkedIn profile URL", + "type": "string" +} - added
Input schema / properties / portfolioAdded value: +{ + "description": "Portfolio URL", + "type": "string" +} - added
Input schema / properties / seniorityAdded value: +{ + "description": "Seniority levels the user wants. Replaces the current list.", + "items": { + "enum": [ + "Entry-level", + "Mid-level", + "Senior", + "Manager", + "Director", + "Executive" + ], + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / twitterAdded value: +{ + "description": "Twitter/X profile URL", + "type": "string" +} - added
Input schema / properties / usernameAdded value: +{ + "description": "New username: 3 to 30 letters, numbers, dashes or underscores. The profile moves to himalayas.app/@username and the old link stops working.", + "type": "string" +} - added
Input schema / properties / visibilityAdded value: +{ + "description": "public_profile: employers can find and view it. unsearchable_profile: viewable by link but not in search. private_profile: only the user sees it.", + "enum": [ + "public_profile", + "unsearchable_profile", + "private_profile" + ], + "type": "string" +} - added
Input schema / properties / websiteAdded value: +{ + "description": "Personal website URL", + "type": "string" +}
- Added
update_profile_photo - Added
update_saved_answer - Added
use_headshot_as_profile_photo
1 tool update
- Added
get_new_matches
1 tool update
- Changed
update_profile2 fields changed- added
Input schema / properties / first_nameAdded value: +{ + "description": "First name, as shown on the profile and tailored resumes", + "type": "string" +} - added
Input schema / properties / last_nameAdded value: +{ + "description": "Last name", + "type": "string" +}
2 tool updates
- Added
generate_application_documents - Added
get_plus_checkout_link
1 tool update
- Changed
update_job_status1 field changed- added
Input schema / properties / outcomeAdded value: +{ + "description": "What happened after applying, as reported by the user. \"clear\" removes a recorded outcome.", + "enum": [ + "rejected", + "no_response", + "withdrawn", + "didnt_apply", + "clear" + ], + "type": "string" +}
2 tool updates
- Added
get_apply_link - Added
submit_feedback
12 tool updates
- Changed
add_experience1 field changed- changed
Input schema / properties / location / descriptionPrevious value: -"Job location"New value: +"Country name for this role (e.g. 'United States', 'Germany'). Cities are not accepted."
- Changed
check_job_payment_status1 field changed- added
Input schema / properties / session_id / minLengthAdded value: +1
- Changed
create_company_job1 field changed- changed
Input schema / properties / extras / descriptionPrevious value: -"Paid extras: 'sticky' ($199 pin to top for 30 days), 'newsletter' ($99 feature in weekly email for 30 days)"New value: +"Paid extras: 'sticky' ($299 pin to top for 30 days), 'newsletter' ($99 feature in weekly email for 30 days)"
- Changed
get_companies4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer"
- Changed
get_jobs4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer"
- Changed
get_talent_profile1 field changed- changed
Input schema / properties / talent_slug / descriptionPrevious value: -"Talent slug (from search_talent results, e.g., 'john-doe')"New value: +"Talent slug from search_talent (e.g. 'john-doe'). Also accepts '@john-doe' or a himalayas.app/@slug profile URL."
- Changed
list_company_jobs4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer"
- Changed
purchase_job_extras1 field changed- changed
Input schema / properties / extras / descriptionPrevious value: -"Extras to purchase: 'sticky' ($199 pin to top), 'newsletter' ($99 weekly email feature)"New value: +"Extras to purchase: 'sticky' ($299 pin to top), 'newsletter' ($99 weekly email feature)"
- Changed
search_companies4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer"
- Changed
search_jobs8 fields changed- changed
Input schema / properties / experience / descriptionPrevious value: -"Filter by experience/seniority level. Comma-separate for multiple (e.g., 'senior,manager')"New value: +"Filter by a single experience/seniority level (entry-level, mid-level, senior, manager, director, or executive)" - changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / salary_max / minimumAdded value: +0 - added
Input schema / properties / salary_min / minimumAdded value: +0 - changed
Input schema / properties / type / descriptionPrevious value: -"Filter by employment type. Comma-separate for multiple (e.g., 'full-time,contractor')"New value: +"Filter by a single employment type (full-time, part-time, contractor, temporary, intern, volunteer, or other)"
- Changed
search_talent4 fields changed- changed
Input schema / properties / page / descriptionPrevious value: -"Page number for pagination (default: 1)"New value: +"Page number for pagination (starts at 1)" - added
Input schema / properties / page / maximumAdded value: +9007199254740991 - added
Input schema / properties / page / minimumAdded value: +1 - changed
Input schema / properties / page / typePrevious value: -"number"New value: +"integer"
- Changed
update_profile1 field changed- changed
Input schema / properties / location / descriptionPrevious value: -"Location (e.g., 'San Francisco, CA')"New value: +"Country name (e.g. 'United States', 'Australia'). Cities and 'City, Country' strings are not accepted."
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.