Koskamo

Himalayas MCP

The Himalayas MCP server provides 79 tools for the complete remote hiring workflow, including job search, job posting, talent search, company profiles, and candidate messaging. It supports both job seekers and employers, with public tools available without an account and profile-specific tools requiring OAuth sign-in.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Himalayas MCP logo, by HimalayasVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by Himalayas
You need:Your profile, tracker, talent search and employer tools ask you to sign in to Himalayas with OAuthNo API key is neededpost_job_public, check_job_payment_status: Post a job without a Himalayas account (Stripe payment required)
MCP endpoint (Streamable HTTP)
https://mcp.himalayas.app/mcp
Vendor documentation

What its tools do

78 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

78 of 78 have a description · 78 of 78 declare behavior hints · 55 of 62 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to himalayas.app ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search and browse remote job listings by keyword, country, and salary
  • Post jobs and search for candidate profiles
  • Track job applications and generate tailored resumes and cover letters
  • Research company details and benchmark remote salaries

Source and maintenance

Vendor evidenceRegistry 1.0.3
Maintenance checked

Protocol and capabilities

Server
Himalayas Remote Jobs MCP Server 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
78 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
5 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "prompts": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Himalayas is a remote jobs marketplace. Its tools cover a remote job search: searching remote job listings by role, country, seniority and salary; job details and the employer's apply link; a resume and cover letter tailored to a job; an application tracker for saved, applied, interviewing, negotiation (offer) and hired jobs; replies to recruiters; remote salary data and company profiles. For employers they cover posting a remote job, the company profile, searching remote candidates and messaging them. They apply when the user is looking for or applying to remote jobs, tracking applications, researching remote pay, or hiring remote staff. Reporting problems: submit_feedback sends a short report to the engineers who build Himalayas, who use it to fix what got in agents' way: a capability that doesn't exist, missing or unclear documentation, a surprising response, an error that doesn't say how to fix the request, incorrect behaviour, a challenge page, or latency, rate limits or pagination that made a task impractical. A report holds the goal and what went wrong; it never includes credentials, personal data or the user's private content. The user can ask to see a report before it is sent. Privacy and access: the user signs in on himalayas.app through OAuth, so agents never see their password, and a connection only gets the scopes the user approved. Email, password and account deletion can't be changed through these tools. How Himalayas handles personal data, including the services that process it: https://himalayas.app/privacy

Tools

78 advertised

get_jobs — Browse remote jobs
Advertised by the server during the last successful anonymous check.
Advertised read-only

Browse the latest remote job listings with optional filtering by country or worldwide availability

get_jobs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    },
    "country": {
      "type": "string",
      "description": "Filter jobs by country (e.g., 'Canada', 'United States', 'UK')"
    },
    "worldwide": {
      "type": "boolean",
      "description": "Show ONLY 100% remote jobs available worldwide (overrides country filter)"
    }
  }
}
get_jobs annotations
{
  "title": "Browse remote jobs",
  "readOnlyHint": true,
  "openWorldHint": false
}
search_jobs — Search remote jobs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_jobs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    },
    "sort": {
      "enum": [
        "relevant",
        "recent",
        "salaryAsc",
        "salaryDesc"
      ],
      "type": "string",
      "description": "Sort order for results (default: 'relevant')"
    },
    "type": {
      "enum": [
        "full-time",
        "part-time",
        "contractor",
        "temporary",
        "intern",
        "volunteer",
        "other"
      ],
      "type": "string",
      "description": "Filter by a single employment type (full-time, part-time, contractor, temporary, intern, volunteer, or other)"
    },
    "country": {
      "type": "string",
      "description": "Filter jobs by country (e.g., 'Canada', 'United States', 'UK')"
    },
    "keyword": {
      "type": "string",
      "description": "Job title, role or skill to search for, e.g. 'product manager' or 'react' (optional)"
    },
    "markets": {
      "type": "string",
      "description": "Comma-separated market/category slugs to filter by (e.g., 'saas,fintech,healthcare')"
    },
    "benefits": {
      "type": "string",
      "description": "Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity')"
    },
    "currency": {
      "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",
      "description": "Salary currency (default: USD). salary_min and salary_max are always USD; this doesn't convert them."
    },
    "companies": {
      "type": "string",
      "description": "Comma-separated company slugs to filter by (e.g., 'stripe,gitlab')"
    },
    "worldwide": {
      "type": "boolean",
      "description": "Show ONLY 100% remote jobs available worldwide (overrides country filter)"
    },
    "experience": {
      "enum": [
        "entry-level",
        "mid-level",
        "senior",
        "manager",
        "director",
        "executive"
      ],
      "type": "string",
      "description": "Filter by a single experience/seniority level (entry-level, mid-level, senior, manager, director, or executive)"
    },
    "salary_max": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum yearly pay in USD, compared the same way as salary_min"
    },
    "salary_min": {
      "type": "number",
      "minimum": 0,
      "description": "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": {
      "type": "boolean",
      "description": "If false, include jobs without salary data in salary-filtered results (default: true — only jobs with salary)"
    },
    "exclude_worldwide": {
      "type": "boolean",
      "description": "When true and country is set, return ONLY jobs specifically available in that country, excluding worldwide/remote jobs. Requires country to be set."
    }
  }
}
search_jobs annotations
{
  "title": "Search remote jobs",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_job_details — Get job details
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_job_details input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug",
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug (from the job listing URL)"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug (from the job listing URL or company page)"
    }
  }
}
get_job_details annotations
{
  "title": "Get job details",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_apply_link — Get apply link
Advertised by the server during the last successful anonymous check.

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.

get_apply_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug",
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug (from the job listing URL)"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug (from the job listing URL or company page)"
    }
  }
}
get_apply_link annotations
{
  "title": "Get apply link",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
generate_application_documents — Tailor resume and cover letter
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

generate_application_documents input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug",
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug (from the job listing URL)"
    },
    "documents": {
      "type": "array",
      "items": {
        "enum": [
          "resume",
          "cover_letter"
        ],
        "type": "string"
      },
      "description": "Which documents to write (default: both)"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug (from the job listing URL or company page)"
    }
  }
}
generate_application_documents annotations
{
  "title": "Tailor resume and cover letter",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_new_matches — Get new job matches
Advertised by the server during the last successful anonymous check.

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.

get_new_matches input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_new_matches annotations
{
  "title": "Get new job matches",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
skip_job — Skip job
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

skip_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug",
    "job_slug",
    "reason"
  ],
  "properties": {
    "detail": {
      "type": "string",
      "maxLength": 500,
      "description": "Anything worth knowing, in a sentence or two (what the page said, a hidden requirement). No personal data."
    },
    "reason": {
      "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",
      "description": "Why the user is passing on it"
    },
    "job_slug": {
      "type": "string",
      "description": "Job slug (from the job listing URL)"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug (from the job listing URL)"
    }
  }
}
skip_job annotations
{
  "title": "Skip job",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": true
}
get_plus_checkout_link — Get Himalayas Plus checkout link
Advertised by the server during the last successful anonymous check.

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.

get_plus_checkout_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "billing_interval": {
      "enum": [
        "month",
        "year"
      ],
      "type": "string",
      "description": "Bill monthly or yearly (default: month)"
    }
  }
}
get_plus_checkout_link annotations
{
  "title": "Get Himalayas Plus checkout link",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
join_radar_waitlist — Join Radar waitlist
Advertised by the server during the last successful anonymous check.

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.

join_radar_waitlist input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
join_radar_waitlist annotations
{
  "title": "Join Radar waitlist",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_related_jobs — Get related jobs
Advertised by the server during the last successful anonymous check.
Advertised read-only

Find jobs similar to a specific job, based on skills, location, and category. Use after viewing a job to suggest alternatives.

get_related_jobs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug",
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug of the original job"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug of the original job"
    }
  }
}
get_related_jobs annotations
{
  "title": "Get related jobs",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_companies — Browse remote companies
Advertised by the server during the last successful anonymous check.
Advertised read-only

Browse remote-friendly companies with optional filtering by country or worldwide availability

get_companies input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    },
    "country": {
      "type": "string",
      "description": "Filter companies by country (e.g., 'Canada', 'United States', 'UK')"
    },
    "worldwide": {
      "type": "boolean",
      "description": "Show only companies with 100% remote jobs available worldwide (overrides country filter)"
    }
  }
}
get_companies annotations
{
  "title": "Browse remote companies",
  "readOnlyHint": true,
  "openWorldHint": false
}
search_companies — Search remote companies
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search for remote-friendly companies using keywords with optional country filtering

search_companies input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    },
    "sort": {
      "enum": [
        "relevant",
        "recent",
        "jobs",
        "nameAToZ",
        "nameZToA"
      ],
      "type": "string",
      "description": "Sort order for results (default: 'relevant')"
    },
    "country": {
      "type": "string",
      "description": "Filter companies by country (e.g., 'Canada', 'United States', 'UK')"
    },
    "keyword": {
      "type": "string",
      "description": "Search keyword/term (optional)"
    },
    "benefits": {
      "type": "string",
      "description": "Comma-separated benefit slugs to filter by (e.g., '401k,health-insurance,equity')"
    },
    "worldwide": {
      "type": "boolean",
      "description": "Show only companies with 100% remote jobs available worldwide (overrides country filter)"
    },
    "tech_stack": {
      "type": "string",
      "description": "Comma-separated technology slugs to filter by (e.g., 'react,typescript,python')"
    }
  }
}
search_companies annotations
{
  "title": "Search remote companies",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_company_details — Get company details
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get full details for a company including about, tech stack, benefits, open positions, and social links

get_company_details input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "company_slug"
  ],
  "properties": {
    "company_slug": {
      "type": "string",
      "description": "Company slug (e.g., 'stripe', 'gitlab')"
    }
  }
}
get_company_details annotations
{
  "title": "Get company details",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_remote_work_statistics — Get remote work statistics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get remote work statistics: top skills, job categories, industries, or countries by job/company count.

get_remote_work_statistics input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "type": {
      "enum": [
        "skills",
        "categories",
        "countries",
        "industries"
      ],
      "type": "string",
      "description": "Type of breakdown: 'skills', 'categories', 'countries', or 'industries' (default: skills). 'industries' only works with record='companies'."
    },
    "record": {
      "enum": [
        "jobs",
        "companies"
      ],
      "type": "string",
      "description": "What to get stats for: 'jobs' or 'companies' (default: jobs)"
    },
    "country": {
      "type": "string",
      "description": "Filter stats by country (e.g., 'United States', 'Germany')"
    }
  }
}
get_remote_work_statistics annotations
{
  "title": "Get remote work statistics",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_salary_data — Get salary data
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get salary benchmarks for remote jobs by job title, with optional seniority and country filters. Returns min, max, and median salary in USD.

get_salary_data input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "job_title"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country slug to filter by (e.g., 'united-states', 'united-kingdom', 'germany')"
    },
    "job_title": {
      "type": "string",
      "description": "Job title to look up salary for (e.g., 'software-engineer', 'product-manager', 'data-scientist'). Use hyphens instead of spaces."
    },
    "seniority": {
      "type": "string",
      "description": "Seniority level (e.g., 'senior', 'junior', 'lead', 'mid')"
    }
  }
}
get_salary_data annotations
{
  "title": "Get salary data",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_correct_country_name — Resolve country name
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolve a country name to the correct format accepted by Himalayas filters. Useful for fuzzy matching user input.

get_correct_country_name input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "country_string"
  ],
  "properties": {
    "country_string": {
      "type": "string",
      "description": "The country name to get the correct name for"
    }
  }
}
get_correct_country_name annotations
{
  "title": "Resolve country name",
  "readOnlyHint": true,
  "openWorldHint": false
}
submit_feedback — Send feedback to Himalayas
Advertised by the server during the last successful anonymous check.

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.

submit_feedback input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "goal",
    "message"
  ],
  "properties": {
    "goal": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "description": "What you or your user were trying to accomplish, in plain language"
    },
    "type": {
      "enum": [
        "missing_capability",
        "bug",
        "unclear_documentation",
        "unexpected_response",
        "unhelpful_error",
        "performance",
        "other"
      ],
      "type": "string",
      "description": "The kind of problem"
    },
    "agent": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 256
        },
        "model": {
          "type": "string",
          "maxLength": 256
        },
        "version": {
          "type": "string",
          "maxLength": 256
        },
        "framework": {
          "type": "string",
          "maxLength": 256
        }
      },
      "description": "Who is reporting: name (agent or product) and model",
      "additionalProperties": false
    },
    "message": {
      "type": "string",
      "maxLength": 4000,
      "minLength": 1,
      "description": "What prevented or complicated the task"
    },
    "outcome": {
      "enum": [
        "blocked",
        "degraded",
        "completed"
      ],
      "type": "string",
      "description": "blocked = task failed, degraded = completed worse or slower, completed = suggestion only"
    },
    "endpoint": {
      "type": "string",
      "maxLength": 512,
      "description": "The Himalayas tool involved, e.g. search_jobs"
    },
    "evidence": {
      "type": "object",
      "properties": {
        "request": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "status_code": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991
        },
        "response_excerpt": {
          "type": "string",
          "maxLength": 4000
        }
      },
      "description": "Sanitized details of the failing call, with no credentials or personal data",
      "additionalProperties": false
    },
    "expected": {
      "type": "string",
      "maxLength": 2000,
      "description": "What you expected to find or happen"
    },
    "metadata": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    },
    "request_id": {
      "type": "string",
      "maxLength": 256
    },
    "session_id": {
      "type": "string",
      "maxLength": 256,
      "description": "Reuse the same value for every report in one task"
    },
    "suggestion": {
      "type": "string",
      "maxLength": 2000,
      "description": "A concrete change that would have let you succeed"
    },
    "workaround": {
      "type": "boolean",
      "description": "Whether you found a workaround"
    },
    "workaround_description": {
      "type": "string",
      "maxLength": 2000,
      "description": "The workaround, if any"
    }
  },
  "additionalProperties": false
}
submit_feedback annotations
{
  "title": "Send feedback to Himalayas",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_my_profile — Get my profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get your Himalayas profile information. Uses the connected Himalayas account; no extra sign-in needed.

get_my_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_my_profile annotations
{
  "title": "Get my profile",
  "readOnlyHint": true,
  "openWorldHint": false
}
save_job — Save job to tracker
Advertised by the server during the last successful anonymous check.
Advertised destructive

Save a job to your application tracker. Uses the connected Himalayas account; no extra sign-in needed.

save_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "title",
    "company_name"
  ],
  "properties": {
    "notes": {
      "type": "string",
      "description": "Personal notes about this job"
    },
    "title": {
      "type": "string",
      "description": "Job title"
    },
    "status": {
      "enum": [
        "seen",
        "saved",
        "applied",
        "interviewing",
        "negotiation",
        "hired",
        "archived"
      ],
      "type": "string",
      "description": "Application status (default: saved)"
    },
    "app_link": {
      "type": "string",
      "description": "Application link URL"
    },
    "currency": {
      "type": "string",
      "description": "Salary currency (e.g., 'USD')"
    },
    "excitement": {
      "type": "number",
      "maximum": 5,
      "minimum": 0,
      "description": "Excitement level from 0-5"
    },
    "max_salary": {
      "type": "number",
      "description": "Maximum salary"
    },
    "base_salary": {
      "type": "number",
      "description": "Base salary"
    },
    "company_name": {
      "type": "string",
      "description": "Company name"
    },
    "himalayas_link": {
      "type": "string",
      "description": "Himalayas job listing URL"
    }
  }
}
save_job annotations
{
  "title": "Save job to tracker",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_saved_jobs — Get saved jobs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_saved_jobs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_saved_jobs annotations
{
  "title": "Get saved jobs",
  "readOnlyHint": true,
  "openWorldHint": false
}
update_job_status — Update job status
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_job_status input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Kanban item ID"
    },
    "notes": {
      "type": "string",
      "description": "Updated notes"
    },
    "detail": {
      "type": "string",
      "maxLength": 500,
      "description": "Anything worth knowing about the outcome, in a sentence or two. No personal data."
    },
    "reason": {
      "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",
      "description": "Why the user didn't apply (only with outcome didnt_apply)"
    },
    "status": {
      "enum": [
        "seen",
        "saved",
        "applied",
        "interviewing",
        "negotiation",
        "hired",
        "archived"
      ],
      "type": "string",
      "description": "New application status"
    },
    "outcome": {
      "enum": [
        "rejected",
        "no_response",
        "withdrawn",
        "didnt_apply",
        "clear"
      ],
      "type": "string",
      "description": "What happened after applying, as reported by the user. \"clear\" removes a recorded outcome."
    },
    "excitement": {
      "type": "number",
      "maximum": 5,
      "minimum": 0,
      "description": "Excitement level from 0-5"
    }
  }
}
update_job_status annotations
{
  "title": "Update job status",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
remove_saved_job — Remove saved job
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a job from your application tracker. Uses the connected Himalayas account; no extra sign-in needed.

remove_saved_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Kanban item ID to remove"
    }
  }
}
remove_saved_job annotations
{
  "title": "Remove saved job",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_profile — Update profile
Advertised by the server during the last successful anonymous check.
Advertised destructive

Update your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.

update_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "bio": {
      "type": "string",
      "description": "Short bio"
    },
    "intro": {
      "type": "string",
      "description": "Introduction/headline"
    },
    "github": {
      "type": "string",
      "description": "GitHub profile URL"
    },
    "behance": {
      "type": "string",
      "description": "Behance profile URL"
    },
    "twitter": {
      "type": "string",
      "description": "Twitter/X profile URL"
    },
    "website": {
      "type": "string",
      "description": "Personal website URL"
    },
    "dribbble": {
      "type": "string",
      "description": "Dribbble profile URL"
    },
    "linkedin": {
      "type": "string",
      "description": "LinkedIn profile URL"
    },
    "location": {
      "type": "string",
      "description": "Country name (e.g. 'United States', 'Australia'). Cities and 'City, Country' strings are not accepted."
    },
    "username": {
      "type": "string",
      "description": "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": {
      "type": "string",
      "description": "Last name"
    },
    "portfolio": {
      "type": "string",
      "description": "Portfolio URL"
    },
    "seniority": {
      "type": "array",
      "items": {
        "enum": [
          "Entry-level",
          "Mid-level",
          "Senior",
          "Manager",
          "Director",
          "Executive"
        ],
        "type": "string"
      },
      "description": "Seniority levels the user wants. Replaces the current list."
    },
    "first_name": {
      "type": "string",
      "description": "First name, as shown on the profile and tailored resumes"
    },
    "visibility": {
      "enum": [
        "public_profile",
        "unsearchable_profile",
        "private_profile"
      ],
      "type": "string",
      "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."
    },
    "contact_email": {
      "type": "string",
      "description": "Email shown to employers, if different from the login email"
    },
    "email_visible": {
      "type": "boolean",
      "description": "Show the contact email on the profile"
    },
    "career_max_salary": {
      "type": "number",
      "description": "Desired maximum salary"
    },
    "career_skill_list": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skills for job matching (e.g. ['Product design', 'User research']). Replaces the current list."
    },
    "career_base_salary": {
      "type": "number",
      "description": "Desired minimum salary"
    },
    "career_description": {
      "type": "string",
      "description": "Description of what you're looking for"
    },
    "career_company_size": {
      "type": "object",
      "required": [
        "1-10",
        "11-50",
        "51-200",
        "201-500",
        "501-1000",
        "1001-5000",
        "5000+"
      ],
      "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"
      },
      "additionalProperties": {
        "enum": [
          "not_interested",
          "okay",
          "preferred"
        ],
        "type": "string"
      }
    },
    "career_compensation": {
      "enum": [
        "no_equity",
        "open_to_compensation",
        "equity_important"
      ],
      "type": "string",
      "description": "How the user feels about equity as part of pay"
    },
    "career_primary_role": {
      "type": "string",
      "description": "Primary role (e.g., 'software-engineer')"
    },
    "career_search_status": {
      "enum": [
        "actively_searching",
        "open_to_roles",
        "closed_to_roles"
      ],
      "type": "string",
      "description": "Career search status (e.g., 'actively_searching', 'open_to_roles', 'closed_to_roles')"
    },
    "career_salary_country": {
      "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",
      "description": "Currency of the desired salary"
    },
    "career_working_permits": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Countries the user can legally work in, as country names (e.g. ['United States']). Replaces the current list."
    },
    "career_interested_role_list": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Other roles the user is interested in. Replaces the current list."
    }
  }
}
update_profile annotations
{
  "title": "Update profile",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
add_experience — Add work experience
Advertised by the server during the last successful anonymous check.

Add a work experience to your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.

add_experience input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "title",
    "company_name",
    "employment_type",
    "description"
  ],
  "properties": {
    "title": {
      "type": "string",
      "description": "Job title"
    },
    "end_date": {
      "type": "string",
      "description": "End date (YYYY-MM-DD format, omit for current role)"
    },
    "location": {
      "type": "string",
      "description": "Country name for this role (e.g. 'United States', 'Germany'). Cities are not accepted."
    },
    "start_date": {
      "type": "string",
      "description": "Start date (YYYY-MM-DD format)"
    },
    "current_job": {
      "type": "boolean",
      "description": "Whether this is your current job"
    },
    "description": {
      "type": "string",
      "description": "Description of your role and responsibilities"
    },
    "company_name": {
      "type": "string",
      "description": "Company name"
    },
    "employment_type": {
      "enum": [
        "Full Time",
        "Part Time",
        "Self Employed",
        "Freelance",
        "Contractor",
        "Temporary",
        "Intern",
        "Apprenticeship",
        "Volunteer",
        "Other"
      ],
      "type": "string",
      "description": "Employment type"
    },
    "experience_skill_list": {
      "type": "string",
      "description": "Comma-separated skills used in this role"
    }
  }
}
add_experience annotations
{
  "title": "Add work experience",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
add_education — Add education
Advertised by the server during the last successful anonymous check.

Add an education entry to your Himalayas profile. Uses the connected Himalayas account; no extra sign-in needed.

add_education input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "school"
  ],
  "properties": {
    "field": {
      "type": "string",
      "description": "Field of study (e.g., 'Computer Science')"
    },
    "grade": {
      "type": "string",
      "description": "Grade or GPA"
    },
    "degree": {
      "type": "string",
      "description": "Degree (e.g., 'Bachelor of Science')"
    },
    "school": {
      "type": "string",
      "description": "School or institution name"
    },
    "current": {
      "type": "boolean",
      "description": "Whether you are currently enrolled"
    },
    "end_year": {
      "type": "number",
      "description": "End year (omit if currently enrolled)"
    },
    "activities": {
      "type": "string",
      "description": "Activities and societies"
    },
    "start_year": {
      "type": "number",
      "description": "Start year"
    },
    "description": {
      "type": "string",
      "description": "Description or achievements"
    }
  }
}
add_education annotations
{
  "title": "Add education",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_experience — Update work experience
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_experience input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Experience id"
    },
    "title": {
      "type": "string",
      "description": "Job title"
    },
    "end_date": {
      "type": "string",
      "description": "End date (YYYY-MM-DD)"
    },
    "location": {
      "type": "string",
      "description": "Country name for this role. Cities are not accepted."
    },
    "sort_order": {
      "type": "number",
      "description": "Position on the profile, 0 first"
    },
    "start_date": {
      "type": "string",
      "description": "Start date (YYYY-MM-DD)"
    },
    "current_job": {
      "type": "boolean",
      "description": "Whether this is the current job"
    },
    "description": {
      "type": "string",
      "description": "Description of the role"
    },
    "company_name": {
      "type": "string",
      "description": "Company name"
    },
    "employment_type": {
      "enum": [
        "Full Time",
        "Part Time",
        "Self Employed",
        "Freelance",
        "Contractor",
        "Temporary",
        "Intern",
        "Apprenticeship",
        "Volunteer",
        "Other"
      ],
      "type": "string"
    },
    "experience_skill_list": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skills used in this role. Replaces the current list."
    }
  }
}
update_experience annotations
{
  "title": "Update work experience",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_experience — Delete work experience
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_experience input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Experience id, from get_my_profile"
    }
  }
}
delete_experience annotations
{
  "title": "Delete work experience",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_education — Update education
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_education input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Education id"
    },
    "field": {
      "type": "string",
      "description": "Field of study"
    },
    "grade": {
      "type": "string"
    },
    "degree": {
      "type": "string"
    },
    "school": {
      "type": "string"
    },
    "current": {
      "type": "boolean",
      "description": "Currently enrolled"
    },
    "end_year": {
      "type": "number"
    },
    "activities": {
      "type": "string"
    },
    "sort_order": {
      "type": "number",
      "description": "Position on the profile, 0 first"
    },
    "start_year": {
      "type": "number"
    },
    "description": {
      "type": "string"
    }
  }
}
update_education annotations
{
  "title": "Update education",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_education — Delete education
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_education input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Education id, from get_my_profile"
    }
  }
}
delete_education annotations
{
  "title": "Delete education",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_email_preferences — Update email preferences
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_email_preferences input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "job_matches": {
      "type": "boolean",
      "description": "Emails with new jobs that match the profile"
    },
    "job_reminders": {
      "type": "boolean",
      "description": "Reminders about saved jobs"
    },
    "job_post_updates": {
      "type": "boolean",
      "description": "Updates about jobs they posted (employers)"
    },
    "marketing_emails": {
      "type": "boolean",
      "description": "Himalayas news and offers"
    },
    "job_post_reminders": {
      "type": "boolean",
      "description": "Reminders about jobs they posted (employers)"
    },
    "job_match_frequency": {
      "enum": [
        "daily",
        "weekly"
      ],
      "type": "string",
      "description": "How often job-match emails come (daily needs Plus)"
    },
    "application_followups": {
      "type": "boolean",
      "description": "'Did you hear back?' emails about applications"
    },
    "message_notifications": {
      "type": "boolean",
      "description": "Emails when an employer messages them"
    }
  }
}
update_email_preferences annotations
{
  "title": "Update email preferences",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_account — Update account time zone
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_account input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "time_zone"
  ],
  "properties": {
    "time_zone": {
      "type": "string",
      "description": "Time zone name, e.g. 'Pacific Time (US & Canada)' or 'London'"
    }
  }
}
update_account annotations
{
  "title": "Update account time zone",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_documents — List resumes and cover letters
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_documents input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "type": {
      "enum": [
        "resume",
        "cover_letter"
      ],
      "type": "string",
      "description": "Only resumes or only cover letters (default: both)"
    }
  }
}
list_documents annotations
{
  "title": "List resumes and cover letters",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_document — Get resume or cover letter
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_document input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "id"
  ],
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ],
      "description": "Document id or slug"
    },
    "type": {
      "enum": [
        "resume",
        "cover_letter"
      ],
      "type": "string"
    }
  }
}
get_document annotations
{
  "title": "Get resume or cover letter",
  "readOnlyHint": true,
  "openWorldHint": false
}
update_document — Update resume or cover letter
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_document input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "id"
  ],
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ],
      "description": "Document id or slug"
    },
    "type": {
      "enum": [
        "resume",
        "cover_letter"
      ],
      "type": "string"
    },
    "title": {
      "type": "string",
      "description": "New title"
    },
    "content": {
      "type": "string",
      "description": "Cover letters only: the full new text, paragraphs separated by blank lines"
    }
  }
}
update_document annotations
{
  "title": "Update resume or cover letter",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_document — Delete resume or cover letter
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_document input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "type",
    "id"
  ],
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string"
        }
      ],
      "description": "Document id or slug"
    },
    "type": {
      "enum": [
        "resume",
        "cover_letter"
      ],
      "type": "string"
    }
  }
}
delete_document annotations
{
  "title": "Delete resume or cover letter",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
import_profile — Import profile from LinkedIn or resume
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

import_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "mode": {
      "enum": [
        "append_only",
        "replace_all"
      ],
      "type": "string",
      "description": "Default append_only"
    },
    "resume_text": {
      "type": "string",
      "description": "The full text of their resume"
    },
    "linkedin_url": {
      "type": "string",
      "description": "Their LinkedIn profile URL, e.g. https://www.linkedin.com/in/name"
    }
  }
}
import_profile annotations
{
  "title": "Import profile from LinkedIn or resume",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
update_profile_photo — Update profile photo
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_profile_photo input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "kind",
    "image_url"
  ],
  "properties": {
    "kind": {
      "enum": [
        "avatar",
        "cover_photo"
      ],
      "type": "string"
    },
    "image_url": {
      "type": "string",
      "description": "https URL of the image"
    }
  }
}
update_profile_photo annotations
{
  "title": "Update profile photo",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_billing_portal_link — Get billing portal link
Advertised by the server during the last successful anonymous check.

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.

get_billing_portal_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_billing_portal_link annotations
{
  "title": "Get billing portal link",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_interviews — List interview practice
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_interviews input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_interviews annotations
{
  "title": "List interview practice",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_interview_results — Get interview practice results
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_interview_results input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "id": {
      "type": "number",
      "description": "Interview id from list_interviews"
    },
    "job_slug": {
      "type": "string",
      "description": "Job slug"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug of the job"
    }
  }
}
get_interview_results annotations
{
  "title": "Get interview practice results",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_interview_practice_link — Get interview practice link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_interview_practice_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug of a Himalayas job"
    },
    "company_slug": {
      "type": "string",
      "description": "Company slug of a Himalayas job"
    },
    "application_link": {
      "type": "string",
      "description": "https link to a job posted somewhere else"
    }
  }
}
get_interview_practice_link annotations
{
  "title": "Get interview practice link",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_verification_link — Get ID verification link
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

get_verification_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_verification_link annotations
{
  "title": "Get ID verification link",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
list_saved_answers — List saved application answers
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_saved_answers input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_saved_answers annotations
{
  "title": "List saved application answers",
  "readOnlyHint": true,
  "openWorldHint": false
}
update_saved_answer — Update saved application answer
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_saved_answer input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id",
    "answer"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Saved answer id from list_saved_answers"
    },
    "answer": {
      "type": "string",
      "description": "The full new answer"
    }
  }
}
update_saved_answer annotations
{
  "title": "Update saved application answer",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_saved_answer — Delete saved application answer
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_saved_answer input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Saved answer id from list_saved_answers"
    }
  }
}
delete_saved_answer annotations
{
  "title": "Delete saved application answer",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_notifications — List notifications
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_notifications input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_notifications annotations
{
  "title": "List notifications",
  "readOnlyHint": true,
  "openWorldHint": false
}
mark_notifications_read — Mark notifications read
Advertised by the server during the last successful anonymous check.

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.

mark_notifications_read input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "id": {
      "type": "number",
      "description": "Notification id from list_notifications"
    },
    "all": {
      "type": "boolean",
      "description": "true marks every notification as read"
    }
  }
}
mark_notifications_read annotations
{
  "title": "Mark notifications read",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_coach_chats — List career coach chats
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_coach_chats input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_coach_chats annotations
{
  "title": "List career coach chats",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_coach_chat — Get career coach chat
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_coach_chat input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Chat slug from list_coach_chats"
    }
  }
}
get_coach_chat annotations
{
  "title": "Get career coach chat",
  "readOnlyHint": true,
  "openWorldHint": false
}
list_headshots — List headshots
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_headshots input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_headshots annotations
{
  "title": "List headshots",
  "readOnlyHint": true,
  "openWorldHint": false
}
use_headshot_as_profile_photo — Use headshot as profile photo
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

use_headshot_as_profile_photo input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "session_id",
    "image_id"
  ],
  "properties": {
    "image_id": {
      "type": "number",
      "description": "Image id from list_headshots"
    },
    "session_id": {
      "type": "number",
      "description": "Session id from list_headshots"
    }
  }
}
use_headshot_as_profile_photo annotations
{
  "title": "Use headshot as profile photo",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_headshots_link — Get headshots link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_headshots_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_headshots_link annotations
{
  "title": "Get headshots link",
  "readOnlyHint": true,
  "openWorldHint": false
}
update_tech_stack — Update profile tech stack
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_tech_stack input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "stacks"
  ],
  "properties": {
    "stacks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Array of technology names (e.g., ['React', 'TypeScript', 'Node.js'])"
    }
  }
}
update_tech_stack annotations
{
  "title": "Update profile tech stack",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
search_talent — Search talent
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search_talent input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    },
    "sort": {
      "enum": [
        "relevant",
        "recent"
      ],
      "type": "string",
      "description": "Sort order (default: relevant)"
    },
    "country": {
      "type": "string",
      "description": "Filter by country (e.g., 'United States', 'Germany')"
    },
    "keyword": {
      "type": "string",
      "description": "Search keyword (e.g., 'react developer')"
    }
  }
}
search_talent annotations
{
  "title": "Search talent",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_talent_profile — Get talent profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_talent_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "talent_slug"
  ],
  "properties": {
    "talent_slug": {
      "type": "string",
      "description": "Talent slug from search_talent (e.g. 'john-doe'). Also accepts '@john-doe' or a himalayas.app/@slug profile URL."
    }
  }
}
get_talent_profile annotations
{
  "title": "Get talent profile",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_company_profile — Get company profile
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get your company's profile on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

get_company_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_company_profile annotations
{
  "title": "Get company profile",
  "readOnlyHint": true,
  "openWorldHint": false
}
update_company_profile — Update company profile
Advertised by the server during the last successful anonymous check.
Advertised destructive

Update your company's profile on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

update_company_profile input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "ceo": {
      "type": "string",
      "description": "CEO name"
    },
    "about": {
      "type": "string",
      "description": "Company description (HTML or plain text)"
    },
    "summary": {
      "type": "string",
      "description": "Short company summary"
    },
    "twitter": {
      "type": "string",
      "description": "Twitter URL"
    },
    "facebook": {
      "type": "string",
      "description": "Facebook URL"
    },
    "linkedin": {
      "type": "string",
      "description": "LinkedIn URL"
    },
    "instagram": {
      "type": "string",
      "description": "Instagram URL"
    },
    "year_founded": {
      "type": "number",
      "description": "Year the company was founded"
    },
    "location_list": {
      "type": "string",
      "description": "Comma-separated list of locations (e.g., 'San Francisco, New York')"
    },
    "num_employees_range": {
      "enum": [
        "1-10",
        "11-50",
        "51-200",
        "201-500",
        "501-1000",
        "1001-5000",
        "5000+"
      ],
      "type": "string",
      "description": "Number of employees range"
    }
  }
}
update_company_profile annotations
{
  "title": "Update company profile",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
get_company_perks — Get company perks
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get your company's perks/benefits on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

get_company_perks input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
get_company_perks annotations
{
  "title": "Get company perks",
  "readOnlyHint": true,
  "openWorldHint": false
}
add_company_perk — Add company perk
Advertised by the server during the last successful anonymous check.

Add a perk/benefit to your company on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

add_company_perk input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "title",
    "category",
    "description"
  ],
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 50,
      "minLength": 3,
      "description": "Perk title (3-50 characters)"
    },
    "category": {
      "enum": [
        "Healthcare benefits",
        "Retirement benefits",
        "Paid parental leave",
        "Equity benefits",
        "Location independent salary",
        "Profit sharing",
        "4-day workweeks",
        "Generous vacation",
        "Paid vacation",
        "Sabbaticals",
        "Unlimited time off",
        "Company meals",
        "Wellness benefits",
        "Home office budget",
        "Co-working space budget",
        "Commuter benefits",
        "Pet-friendly office",
        "Learning and development budget",
        "Company events",
        "Volunteer opportunities",
        "Open source",
        "Company credit card",
        "Life insurance",
        "Employee assistance program (EAP)",
        "Flexible working hours",
        "Disability insurance",
        "Fertility benefits",
        "Company retreats",
        "Get paid in crypto",
        "Miscellaneous"
      ],
      "type": "string",
      "description": "Perk category"
    },
    "description": {
      "type": "string",
      "maxLength": 450,
      "minLength": 15,
      "description": "Perk description (15-450 characters)"
    }
  }
}
add_company_perk annotations
{
  "title": "Add company perk",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
remove_company_perk — Remove company perk
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove a perk/benefit from your company on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

remove_company_perk input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "number",
      "description": "Perk ID to remove (use get_company_perks to find IDs)"
    }
  }
}
remove_company_perk annotations
{
  "title": "Remove company perk",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
update_company_tech_stack — Update company tech stack
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_company_tech_stack input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "stacks"
  ],
  "properties": {
    "stacks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Array of technology names (e.g., ['React', 'TypeScript', 'Python', 'AWS'])"
    }
  }
}
update_company_tech_stack annotations
{
  "title": "Update company tech stack",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_company_jobs — List company jobs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_company_jobs input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number for pagination (starts at 1)"
    }
  }
}
list_company_jobs annotations
{
  "title": "List company jobs",
  "readOnlyHint": true,
  "openWorldHint": false
}
show_company_job — Get company job
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get full details of one of your company's job postings on Himalayas. Uses the connected Himalayas employer account; no extra sign-in needed.

show_company_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug (from list_company_jobs)"
    }
  }
}
show_company_job annotations
{
  "title": "Get company job",
  "readOnlyHint": true,
  "openWorldHint": false
}
create_company_job — Create company job
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

create_company_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "title",
    "description",
    "employment_type",
    "seniority",
    "app_link_or_email"
  ],
  "properties": {
    "draft": {
      "type": "boolean",
      "description": "Save as draft instead of submitting for approval"
    },
    "title": {
      "type": "string",
      "maxLength": 80,
      "minLength": 5,
      "description": "Job title (5-80 characters)"
    },
    "extras": {
      "type": "array",
      "items": {
        "enum": [
          "sticky",
          "newsletter"
        ],
        "type": "string"
      },
      "description": "Paid extras: 'sticky' ($299 pin to top for 30 days), 'newsletter' ($99 feature in weekly email for 30 days)"
    },
    "seniority": {
      "type": "array",
      "items": {
        "enum": [
          "Entry-level",
          "Mid-level",
          "Senior",
          "Manager",
          "Director",
          "Executive"
        ],
        "type": "string"
      },
      "description": "Seniority levels"
    },
    "max_salary": {
      "type": "number",
      "description": "Maximum salary"
    },
    "skill_list": {
      "type": "string",
      "description": "Comma-separated skills"
    },
    "base_salary": {
      "type": "number",
      "description": "Minimum salary"
    },
    "description": {
      "type": "string",
      "minLength": 350,
      "description": "Job description (350+ characters, can include HTML)"
    },
    "category_list": {
      "type": "string",
      "description": "Comma-separated job categories"
    },
    "valid_through": {
      "type": "string",
      "description": "Expiration date (ISO format, defaults to 30 days from now)"
    },
    "salary_country": {
      "type": "string",
      "description": "Salary currency code (default: USD)"
    },
    "employment_type": {
      "enum": [
        "Full Time",
        "Part Time",
        "Contractor",
        "Temporary",
        "Intern",
        "Volunteer",
        "Other"
      ],
      "type": "string",
      "description": "Employment type"
    },
    "app_link_or_email": {
      "type": "string",
      "description": "Application URL or email address — backend auto-detects via @ check"
    },
    "screening_questions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "question",
          "question_type"
        ],
        "properties": {
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Answer options (for mpc type)"
          },
          "question": {
            "type": "string",
            "description": "Question text"
          },
          "required": {
            "type": "boolean",
            "description": "Whether answer is required"
          },
          "question_type": {
            "enum": [
              "boolean",
              "text",
              "mpc"
            ],
            "type": "string",
            "description": "Question type"
          },
          "correct_option": {
            "type": "number",
            "description": "Index of correct option (for mpc type)"
          },
          "expected_answer": {
            "type": "string",
            "description": "Expected answer (for boolean: 'true'/'false')"
          }
        }
      },
      "description": "Screening questions for applicants"
    }
  }
}
create_company_job annotations
{
  "title": "Create company job",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
update_company_job — Update company job
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

update_company_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "job_slug"
  ],
  "properties": {
    "draft": {
      "type": "boolean",
      "description": "Save as draft instead of submitting for approval"
    },
    "title": {
      "type": "string",
      "maxLength": 80,
      "minLength": 5,
      "description": "Job title (5-80 characters)"
    },
    "job_slug": {
      "type": "string",
      "description": "Job slug to update"
    },
    "seniority": {
      "type": "array",
      "items": {
        "enum": [
          "Entry-level",
          "Mid-level",
          "Senior",
          "Manager",
          "Director",
          "Executive"
        ],
        "type": "string"
      },
      "description": "Seniority levels"
    },
    "max_salary": {
      "type": "number",
      "description": "Maximum salary"
    },
    "skill_list": {
      "type": "string",
      "description": "Comma-separated skills"
    },
    "base_salary": {
      "type": "number",
      "description": "Minimum salary"
    },
    "description": {
      "type": "string",
      "minLength": 350,
      "description": "Job description (350+ characters, can include HTML)"
    },
    "category_list": {
      "type": "string",
      "description": "Comma-separated job categories"
    },
    "valid_through": {
      "type": "string",
      "description": "Expiration date (ISO format)"
    },
    "salary_country": {
      "type": "string",
      "description": "Salary currency code"
    },
    "employment_type": {
      "enum": [
        "Full Time",
        "Part Time",
        "Contractor",
        "Temporary",
        "Intern",
        "Volunteer",
        "Other"
      ],
      "type": "string",
      "description": "Employment type"
    },
    "app_link_or_email": {
      "type": "string",
      "description": "Application URL or email address"
    },
    "screening_questions": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "question",
          "question_type"
        ],
        "properties": {
          "id": {
            "type": "number",
            "description": "Existing question ID (omit for new questions)"
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Answer options (for mpc type)"
          },
          "question": {
            "type": "string",
            "description": "Question text"
          },
          "required": {
            "type": "boolean",
            "description": "Whether answer is required"
          },
          "question_type": {
            "enum": [
              "boolean",
              "text",
              "mpc"
            ],
            "type": "string",
            "description": "Question type"
          },
          "correct_option": {
            "type": "number",
            "description": "Index of correct option"
          },
          "expected_answer": {
            "type": "string",
            "description": "Expected answer"
          }
        }
      },
      "description": "Screening questions — provide full set, questions not included will be removed"
    }
  }
}
update_company_job annotations
{
  "title": "Update company job",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
delete_company_job — Delete company job
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_company_job input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "job_slug"
  ],
  "properties": {
    "job_slug": {
      "type": "string",
      "description": "Job slug to delete"
    }
  }
}
delete_company_job annotations
{
  "title": "Delete company job",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
purchase_job_extras — Purchase job extras
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

purchase_job_extras input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "job_slug",
    "extras"
  ],
  "properties": {
    "extras": {
      "type": "array",
      "items": {
        "enum": [
          "sticky",
          "newsletter"
        ],
        "type": "string"
      },
      "minItems": 1,
      "description": "Extras to purchase: 'sticky' ($299 pin to top), 'newsletter' ($99 weekly email feature)"
    },
    "job_slug": {
      "type": "string",
      "description": "Job slug to add extras to"
    }
  }
}
purchase_job_extras annotations
{
  "title": "Purchase job extras",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
check_job_payment_status — Check job payment status
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_job_payment_status input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "session_id"
  ],
  "properties": {
    "session_id": {
      "type": "string",
      "minLength": 1,
      "description": "Stripe checkout session ID"
    }
  }
}
check_job_payment_status annotations
{
  "title": "Check job payment status",
  "readOnlyHint": true,
  "openWorldHint": false
}
list_conversations — List employer conversations
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_conversations input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_conversations annotations
{
  "title": "List employer conversations",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_conversation — Get employer conversation
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get full message history for a conversation. Accepts room_name or talent_slug. Uses the connected Himalayas employer account; no extra sign-in needed.

get_conversation input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "room_name": {
      "type": "string",
      "description": "Room name from list_conversations"
    },
    "talent_slug": {
      "type": "string",
      "description": "Talent slug (from search_talent results) — resolves to room name automatically"
    }
  }
}
get_conversation annotations
{
  "title": "Get employer conversation",
  "readOnlyHint": true,
  "openWorldHint": false
}
start_conversation — Start conversation with candidate
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

start_conversation input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "talent_slug"
  ],
  "properties": {
    "message": {
      "type": "string",
      "description": "Optional initial message to send with the conversation"
    },
    "talent_slug": {
      "type": "string",
      "description": "Talent slug of the candidate to message (from search_talent results)"
    },
    "confirm_token": {
      "type": "string",
      "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it"
    }
  }
}
start_conversation annotations
{
  "title": "Start conversation with candidate",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
send_message — Send message to candidate
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

send_message input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "description": "Message text to send"
    },
    "room_name": {
      "type": "string",
      "description": "Room name from list_conversations"
    },
    "talent_slug": {
      "type": "string",
      "description": "Talent slug (from search_talent results) — resolves to room name automatically"
    },
    "confirm_token": {
      "type": "string",
      "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it"
    }
  }
}
send_message annotations
{
  "title": "Send message to candidate",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
mark_message_read — Mark employer message read
Advertised by the server during the last successful anonymous check.

Mark a message as read by its ID. Uses the connected Himalayas employer account; no extra sign-in needed.

mark_message_read input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "message_id"
  ],
  "properties": {
    "room_name": {
      "type": "string",
      "description": "Room name from list_conversations"
    },
    "message_id": {
      "type": "number",
      "description": "Message ID to mark as read"
    },
    "talent_slug": {
      "type": "string",
      "description": "Talent slug (from search_talent results) — resolves to room name automatically"
    }
  }
}
mark_message_read annotations
{
  "title": "Mark employer message read",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
delete_conversation — Delete employer conversation
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete a conversation. Accepts room_name or talent_slug. Uses the connected Himalayas employer account; no extra sign-in needed.

delete_conversation input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "room_name": {
      "type": "string",
      "description": "Room name from list_conversations"
    },
    "talent_slug": {
      "type": "string",
      "description": "Talent slug (from search_talent results) — resolves to room name automatically"
    }
  }
}
delete_conversation annotations
{
  "title": "Delete employer conversation",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
list_my_conversations — List my inbox
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_my_conversations input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {}
}
list_my_conversations annotations
{
  "title": "List my inbox",
  "readOnlyHint": true,
  "openWorldHint": false
}
get_my_conversation — Get inbox conversation
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_my_conversation input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "room_name"
  ],
  "properties": {
    "room_name": {
      "type": "string",
      "description": "Room name from list_my_conversations"
    }
  }
}
get_my_conversation annotations
{
  "title": "Get inbox conversation",
  "readOnlyHint": true,
  "openWorldHint": false
}
reply_to_message — Reply in inbox
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

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.

reply_to_message input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "room_name",
    "message"
  ],
  "properties": {
    "message": {
      "type": "string",
      "description": "The reply, exactly as the user approved it"
    },
    "room_name": {
      "type": "string",
      "description": "Room name from list_my_conversations"
    },
    "confirm_token": {
      "type": "string",
      "description": "Leave out to get a preview; nothing is sent. Pass the token from that preview, with the same message, to send it"
    }
  }
}
reply_to_message annotations
{
  "title": "Reply in inbox",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
mark_my_message_read — Mark inbox message read
Advertised by the server during the last successful anonymous check.

Mark a message in the user's job seeker inbox as read. Uses the connected Himalayas account; no extra sign-in needed.

mark_my_message_read input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "room_name",
    "message_id"
  ],
  "properties": {
    "room_name": {
      "type": "string",
      "description": "Room name from list_my_conversations"
    },
    "message_id": {
      "type": "number",
      "description": "Message id from get_my_conversation"
    }
  }
}
mark_my_message_read annotations
{
  "title": "Mark inbox message read",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

5 advertised

job-search — Remote Job Search

Advertised by the server during the last successful anonymous check.

Guided remote job search — finds jobs matching your role, skills, salary, and location preferences

role
Job title or role (e.g., 'Software Engineer', 'Product Manager') (required)
salary
Minimum salary in USD (e.g., '150000')
country
Country to search in (e.g., 'United States', 'Canada') or 'worldwide'
skills
Comma-separated skills (e.g., 'React, TypeScript, Node.js')
salary-comparison — Salary Comparison

Advertised by the server during the last successful anonymous check.

Compare remote salary benchmarks across roles, seniority levels, and countries

job_title
Job title to benchmark (e.g., 'software-engineer') (required)
seniority
Seniority level (e.g., 'senior', 'mid', 'junior')
countries
Comma-separated countries to compare (e.g., 'United States, Canada, Germany')
company-research — Company Research

Advertised by the server during the last successful anonymous check.

Deep dive into a remote company — profile, tech stack, benefits, open jobs, and salary benchmarks

company
Company name or slug (e.g., 'stripe', 'gitlab') (required)
post-job — Post a Remote Job

Advertised by the server during the last successful anonymous check.

Guided workflow to create and publish a remote job listing on Himalayas

role
Job title (e.g., 'Senior Frontend Engineer') (required)
employment_type
Employment type: Full Time, Part Time, Contractor, Temporary, Intern
reach-out — Reach Out to Talent

Advertised by the server during the last successful anonymous check.

Find and message remote candidates — search for talent, review profiles, and start conversations

keyword
Search term (e.g., 'React developer', 'product manager', 'data scientist') (required)
country
Country filter (e.g., 'United States', 'Germany')

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-06: 1 of 1 checks answered
  2. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2704 ms
95th percentile latency
2704 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2704 ms · metadata changed · 78 tool(s), 5 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http himalayas-mcp https://mcp.himalayas.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add himalayas-mcp --url https://mcp.himalayas.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable himalayas-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "himalayas-mcp": {
      "url": "https://mcp.himalayas.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "himalayas-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.himalayas.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start himalayas-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "himalayas-mcp": {
      "type": "http",
      "url": "https://mcp.himalayas.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http himalayas-mcp https://mcp.himalayas.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.himalayas.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "himalayas-mcp": {
      "serverUrl": "https://mcp.himalayas.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Himalayas MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Himalayas MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing