HimalayasHimalayas logo

Remote Jobs MCP Server

The Himalayas MCP server gives AI assistants real-time access to 41 tools for searching remote jobs, researching companies, checking salary benchmarks, managing profiles, tracking applications, and posting jobs. Connect in any AI platform that supports MCP servers, including Claude (Desktop, Code, Cowork), ChatGPT, Gemini, Cursor, Windsurf, VS Code, Openclaw, and Microsoft Copilot Studio. Public tools work without authentication. Authenticated tools use OAuth 2.1 with PKCE for secure access to personal and employer features.

If any of this is too technical, just copy the entire page and paste it into the AI. It will walk you through setup, and each task you would like to do.

What is the Himalayas MCP server?

The Himalayas MCP server is a Model Context Protocol endpoint at mcp.himalayas.app that connects AI assistants to the Himalayas remote jobs marketplace. It provides 41 tools organized into four categories:

  • 13 public tools for job search, company research, salary data, market statistics, talent discovery, and candidate profiles - no authentication required
  • 9 job seeker tools for profile management and application tracking - requires a free Himalayas account
  • 19 employer tools for company profiles, perks, job posting/management, and candidate messaging - requires an employer account
  • 1 public job posting tool for posting jobs without a Himalayas account

Once connected, you can ask your AI assistant questions like "Find remote Python jobs paying over $120k in Europe," "What's the average salary for a product manager?", "Save this job to my tracker," or "Post a new senior React developer role for our company."

What is the Model Context Protocol (MCP)?

The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external data sources and tools. Instead of relying only on training data, an MCP-connected assistant can query live databases, search APIs, and interact with external services in real time.

The Himalayas MCP server supports two transport protocols:

Streamable HTTP (recommended):

https://mcp.himalayas.app/mcp

Server-Sent Events (legacy fallback):

https://mcp.himalayas.app/sse

What public tools does the MCP server provide?

These tools work without authentication or an API key.

How do I search for remote jobs?

search_jobs - Search remote job listings with detailed filters.

ParameterTypeDescription
keywordstringSearch term for job title, skills, or description
pageintegerPage number for pagination (starts at 1)
countrystringFilter by country name (e.g., "United States", "Germany")
worldwidebooleanShow only jobs with no location restrictions
exclude_worldwidebooleanExclude worldwide jobs, show country-specific only
experiencestringExperience level: entry-level, mid-level, senior, manager, director, executive
typestringEmployment type: full-time, part-time, contractor, temporary, intern, volunteer, other
salary_minintegerMinimum salary filter
salary_maxintegerMaximum salary filter
currencystringSalary currency (USD, EUR, GBP, CAD, AUD, and 20+ others)
salary_requiredbooleanOnly show jobs that include salary information
marketsstringFilter by job categories/markets
benefitsstringFilter by company benefits
companiesstringFilter by specific company names
sortstringSort order: relevant, recent, salaryAsc, salaryDesc

get_jobs - Browse the latest remote job listings with optional country/worldwide filters.

get_job_details - Fetch full details for a specific job including description, requirements, salary, screening questions, and application link. Accepts company_slug and job_slug.

get_related_jobs - Find similar jobs based on skills, location, and category. Accepts company_slug, job_slug, and page.

How do I search for remote companies?

search_companies - Search companies with remote positions.

ParameterTypeDescription
keywordstringSearch term for company name, industry, or description
pageintegerPage number for pagination (starts at 1)
countrystringFilter by country name
worldwidebooleanShow only companies hiring worldwide
benefitsstringFilter by company benefits offered
tech_stackstringFilter by technologies used
sortstringSort order: relevant, recent, jobs, nameAToZ, nameZToA

get_companies - Browse remote-friendly companies with optional country/worldwide filters.

get_company_details - Get a full company profile including about section, founding year, employee count, tech stack, benefits, open positions, and social links.

How do I get remote job salary data?

get_salary_data - Get salary benchmarks for any remote job title. Returns minimum, median, and maximum salary in USD. Optionally filter by seniority level and country. Uses fuzzy matching on job titles.

ParameterTypeDescription
job_titlestringThe job title to look up (required)
senioritystringSeniority level filter (optional)
countrystringCountry filter (optional)

How do I get remote work market statistics?

get_remote_work_statistics - Get the top 30 entries for remote work statistics across four dimensions.

ParameterTypeDescription
recordstringWhat to count: "jobs" or "companies"
typestringDimension: "skills", "categories", "countries", or "industries"
countrystringOptional country filter

How do I search for remote talent?

search_talent - Search remote candidates on Himalayas. Returns candidate profiles with current roles, salary expectations, and search status. Public access, no authentication required.

ParameterTypeDescription
keywordstringSearch term for skills, roles, or technologies
countrystringFilter by country
pageintegerPage number for pagination
sortstringSort order

get_talent_profile - Get the full detailed profile for a candidate including bio, complete work history, education, tech stack, social links, and career goals. Use the talent_slug from search_talent results.

ParameterTypeDescription
talent_slugstringTalent slug from search_talent results (e.g., "john-doe")

For a complete walkthrough of hiring with AI — posting jobs, sourcing candidates, benchmarking salaries — see How to Hire Remote Talent with AI.

Other public tools

get_correct_country_name - Fuzzy-match a country name string to the correct format for filtering. Use this when the country name might be abbreviated or misspelled.

check_job_payment_status - Check the Stripe payment status for a job posting by session ID. Returns payment status, customer email, and job URL.

What authenticated tools are available for job seekers?

These tools require a free Himalayas account. On first use, your AI assistant will prompt you to log in through a secure OAuth flow.

How do I manage my profile through AI?

get_my_profile - View your complete Himalayas profile including name, email, location, career search status, work experience, education, and tech stack.

update_profile - Update your career and personal profile information.

ParameterTypeDescription
biostringShort bio
introstringIntroduction text
locationstringYour location
career_search_statusstring"actively_searching", "open_to_roles", or "closed_to_roles"
career_primary_rolestringPrimary role you're looking for
career_base_salaryintegerMinimum salary expectation
career_max_salaryintegerMaximum salary expectation
career_descriptionstringWhat you're looking for in your next role

add_experience - Add work experience to your profile with title, company, employment type, description, dates, and skills.

add_education - Add an education entry with school, degree, field of study, years, and description.

update_tech_stack - Set up to 5 technologies on your profile (e.g., React, Python, TypeScript). The server automatically matches common technology names.

How does the job application tracker work?

The application tracker is a kanban-style board for managing your job search pipeline.

save_job - Save a job to your tracker.

ParameterTypeDescription
titlestringJob title
company_namestringCompany name
statusstringPipeline stage: seen, saved, applied, interviewing, negotiation, hired, archived
base_salaryintegerOffered base salary
max_salaryintegerOffered max salary
currencystringSalary currency
excitementintegerYour excitement level (0-5)
notesstringPersonal notes
app_linkstringExternal application URL
himalayas_linkstringHimalayas job listing URL

get_saved_jobs - View all saved jobs grouped by status. Returns a formatted kanban-style list.

update_job_status - Update a saved job's status, excitement level, or notes. Use this to move jobs through your pipeline (e.g., saved → applied → interviewing).

remove_saved_job - Remove a job from your application tracker.

What authenticated tools are available for employers?

These tools require an employer account (a Himalayas account associated with a company).

How do I manage my company profile through AI?

get_company_profile - View your company's Himalayas profile including name, summary, about section, CEO, employee range, founding year, locations, social links, and open position count.

update_company_profile - Update company profile information including about section, summary, CEO name, employee range, founding year, locations, and social media links (Twitter, Facebook, LinkedIn, Instagram).

update_company_tech_stack - Update the technologies your company uses. Accepts technology names (e.g., "React", "Python", "PostgreSQL") and automatically resolves them to the Himalayas technology database via fuzzy matching.

How do I manage company perks and benefits?

get_company_perks - View your company's perks grouped by category.

add_company_perk - Add a perk or benefit to your company profile.

ParameterTypeDescription
titlestringPerk name (3-50 characters)
categorystringOne of the 30 benefit categories: 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
descriptionstringPerk description (15-450 characters)

remove_company_perk - Remove a perk from your company profile by ID.

How do I post and manage remote jobs through AI?

create_company_job - Post a new remote job on Himalayas.

ParameterTypeDescription
titlestringJob title (5-80 characters)
descriptionstringFull job description (350+ characters, HTML supported)
employment_typestringFull Time, Part Time, Contractor, Temporary, Intern, Volunteer, Other
senioritystring[]Entry-level, Mid-level, Senior, Manager, Director, Executive
app_link_or_emailstringApplication URL or email address
valid_throughstringExpiration date
base_salaryintegerBase salary
max_salaryintegerMaximum salary
salary_countrystringCountry for salary context
category_liststringJob categories (comma-separated)
skill_liststringRequired skills (comma-separated)
draftbooleanSave as draft (true) or submit for review (false)
screening_questionsarrayOptional screening questions (boolean, text, or multiple choice types)

Jobs are free to post and require admin approval. Optional paid extras are available:

  • Sticky placement ($199): Pin the job to the top of search results
  • Newsletter feature ($99): Include the job in the weekly email to subscribers

update_company_job - Update an existing job posting. Supports partial updates.

delete_company_job - Permanently delete a job posting.

list_company_jobs - List all your company's job postings with status, view count, click count, and expiration date.

show_company_job - Get full details of a specific job posting.

purchase_job_extras - Add paid extras (sticky, newsletter) to an existing job posting. Returns a Stripe checkout URL for payment.

How do I post a job without a Himalayas account?

post_job_public - Post a remote job without creating a Himalayas account. Provide your email, company name, company URL, and job details. The email domain must match the company URL domain. Payment is required via Stripe checkout.

How do I message candidates through AI?

These tools let employers start conversations with candidates and manage recruiting communications — all through AI conversation.

start_conversation - Start a conversation with a candidate by their talent slug. Optionally include an initial message. If a conversation already exists, returns it.

ParameterTypeDescription
talent_slugstringCandidate's talent slug from search_talent (required)
messagestringOptional initial message to send

send_message - Send a message in an existing conversation. Rate limit: 10 messages per minute.

ParameterTypeDescription
messagestringMessage text (required)
room_namestringConversation room name (optional)
talent_slugstringCandidate's talent slug (optional)

list_conversations - List all messaging conversations with last message preview and status (awaiting reply, new reply, read). No parameters required.

get_conversation - Get the full message history for a conversation. Provide either room_name or talent_slug.

ParameterTypeDescription
room_namestringConversation room name (optional)
talent_slugstringCandidate's talent slug (optional)

mark_message_read - Mark a message as read by its ID.

ParameterTypeDescription
message_idnumberMessage ID (required)
room_namestringConversation room name (optional)
talent_slugstringCandidate's talent slug (optional)

delete_conversation - Delete a conversation. Provide either room_name or talent_slug.

ParameterTypeDescription
room_namestringConversation room name (optional)
talent_slugstringCandidate's talent slug (optional)

For the complete recruiting workflow — sourcing, evaluating profiles, outreach, and follow-up — see How to Hire Remote Talent with AI.

How do I connect the MCP to Claude Desktop?

Go to Settings → Connectors → Add custom connector and paste:

https://mcp.himalayas.app/mcp

Public tools work immediately. For authenticated tools (profile, tracker, employer features), you'll be prompted to log in on first use.

How do I connect the MCP to Cursor?

There are two ways to add the Himalayas MCP to Cursor:

One-click install: Click the install button on the Himalayas MCP page.

Manual setup: Add to ~/.cursor/mcp.json (or .cursor/mcp.json in your project):

{
  "mcpServers": {
    "himalayas": {
      "url": "https://mcp.himalayas.app/mcp"
    }
  }
}

How do I connect the MCP to Windsurf?

Add the following to your Windsurf MCP configuration file at ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "himalayas": {
      "serverUrl": "https://mcp.himalayas.app/mcp"
    }
  }
}

Restart Windsurf after saving the configuration.

How does authentication work?

The Himalayas MCP uses OAuth 2.1 with PKCE for secure authentication. Here's how it works:

  1. Public tools work immediately without any login or API key
  2. When you call an authenticated tool for the first time, the MCP server returns a message asking you to connect your Himalayas account
  3. Your AI assistant opens a secure login page in your browser
  4. You log in with your Himalayas credentials (or create a free account)
  5. The MCP server receives a secure token and your session is established
  6. Tokens refresh automatically - you stay connected without re-authenticating

Employer tools require that your Himalayas account is associated with a company. If you're not linked to a company, you'll see a message explaining how to set one up.

What job data fields does the MCP return?

Job search results include these fields:

FieldDescription
titleJob title
excerptShort summary
companyNameHiring company name
companyLogoCompany logo URL
employmentTypeFull Time, Part Time, Contractor, Temporary, Intern, Volunteer, Other
minSalary / maxSalarySalary range (if provided)
seniorityExperience level
currencySalary currency
locationRestrictionsRequired countries
timezoneRestrictionsAccepted timezones
categoriesJob categories and skills
descriptionFull job description (HTML)
pubDatePublication date
expiryDateExpiration date
applicationLinkApplication URL

For detailed job views (via get_job_details), additional fields include screening questions, required skills, and the full company profile.

How do I map natural language to MCP tool calls?

User saysMCP toolParameters
"Find Python jobs"search_jobs{ keyword: "python" }
"Remote jobs in Canada"search_jobs{ country: "Canada" }
"Worldwide remote jobs"search_jobs{ worldwide: true }
"Senior React roles paying over $150k"search_jobs{ keyword: "react", experience: "senior", salary_min: 150000 }
"Part-time contractor positions"search_jobs{ type: "contractor" }
"Companies using TypeScript"search_companies{ tech_stack: "TypeScript" }
"What's the average salary for a product manager?"get_salary_data{ job_title: "product manager" }
"Remote work statistics for the US"get_remote_work_statistics{ record: "jobs", type: "categories", country: "United States" }
"Find React developers in Canada"search_talent{ keyword: "react", country: "Canada" }
"Show me this candidate's full profile"get_talent_profile{ talent_slug: "jane-doe" }
"Tell me about Stripe"get_company_details{ slug: "stripe" }
"Save this job to my tracker"save_job{ title: "...", company_name: "...", status: "saved" }
"Move that job to interviewing"update_job_status{ id: "...", status: "interviewing" }
"Update my profile to actively searching"update_profile{ career_search_status: "actively_searching" }
"Post a remote React developer job, $120-160k"create_company_job{ title: "React Developer", base_salary: 120000, max_salary: 160000, ... }
"Message this candidate about our React role"start_conversation{ talent_slug: "jane-doe", message: "Hi, we have a..." }
"Show my candidate conversations"list_conversations{}
"Reply to the candidate"send_message{ talent_slug: "jane-doe", message: "Thanks for..." }

How should an AI agent use the Himalayas MCP?

If you are building or configuring an AI agent, include these system instructions:

You have access to the Himalayas MCP server for remote jobs, career management, and employer tools.

Public tools (no auth required):
- search_jobs: Search remote jobs with filters for keyword, country, experience, type, salary, benefits, markets, companies, and sort order.
- get_jobs: Browse latest remote job listings.
- search_companies: Search companies by keyword, country, benefits, tech stack.
- get_companies: Browse remote-friendly companies.
- get_job_details: Full job description by company_slug and job_slug.
- get_company_details: Full company profile by slug.
- get_related_jobs: Similar jobs by skills, location, category.
- get_salary_data: Salary benchmarks by role, seniority, country (min/median/max USD).
- get_remote_work_statistics: Top skills, categories, countries, industries by job/company count.
- search_talent: Search remote candidates by keyword and country.
- get_talent_profile: Full candidate profile with bio, work history, education, tech stack, social links. Uses talent_slug from search_talent.
- get_correct_country_name: Fuzzy-match country names for filters.
- check_job_payment_status: Check Stripe payment status by session ID.

Authenticated tools (job seekers - requires Himalayas account):
- get_my_profile, update_profile, add_experience, add_education, update_tech_stack: Profile management.
- save_job, get_saved_jobs, update_job_status, remove_saved_job: Job application tracker.

Authenticated tools (employers - requires company account):
- get_company_profile, update_company_profile, update_company_tech_stack: Company profile.
- get_company_perks, add_company_perk, remove_company_perk: Perks management.
- create_company_job, update_company_job, delete_company_job, list_company_jobs, show_company_job: Job management.
- purchase_job_extras: Buy sticky ($199) or newsletter ($99) placement.
- list_conversations, get_conversation, start_conversation, send_message, mark_message_read, delete_conversation: Candidate messaging.

Public job posting (no account):
- post_job_public: Post a job with email and company details. Returns Stripe checkout URL.

Tips:
- Start broad, then narrow. Search with just a keyword first, then add filters.
- Country names should be full English names (e.g., "United States", not "US"). Use get_correct_country_name if unsure.
- Each job result includes an applicationLink - provide this so users can apply.
- For salary queries, use get_salary_data rather than guessing from job listings.
- For valid field values (employment types, seniority levels, currencies, benefit categories), reference: https://himalayas.app/docs/data-dictionary

What does an example tool call flow look like?

User: "Find me senior data science jobs in the US paying at least $150k, then check what the average salary is"

Agent calls:

search_jobs({ "keyword": "data science", "country": "United States", "experience": "senior", "salary_min": 150000 })

MCP returns: An array of matching job objects with title, company, salary, description, and applicationLink.

Agent then calls:

get_salary_data({ "job_title": "data scientist", "seniority": "senior", "country": "United States" })

MCP returns: { min: 125000, median: 165000, max: 220000 } in USD.

Agent responds: Summarizes the job results, compares them against the salary benchmark, and provides application links.

How does an AI agent handle empty results?

When no results match the query, the MCP server returns an empty results array. The agent should:

  1. Broaden the keyword: Try a more general term (e.g., "engineer" instead of "senior staff platform engineer")
  2. Remove the country filter: The job may be available worldwide but not restricted to the specified country
  3. Try worldwide: Set worldwide: true to find jobs open to all locations
  4. Adjust salary filters: The salary range may be too narrow for the market
  5. Check pagination: If previous pages had results, the user may have reached the end
  6. Use get_correct_country_name: The country name may not match the expected format

Is there a rate limit?

Yes, the MCP server has built-in rate limiting. The rate limit is generous for typical use - individual users searching for jobs and managing their profiles will not hit it. If you are building an automated tool that makes many requests, contact hi@himalayas.app to discuss your use case.

What are the attribution requirements?

If you build an application or tool that uses the Himalayas MCP server, include a mention of Himalayas as the data source and link back to himalayas.app where the data is displayed.

What is the difference between the MCP, JSON API, and RSS feed?

Himalayas offers three ways to access job data programmatically:

FeatureMCP ServerJSON APIRSS Feed
Best forAI assistants, chatbots, IDE integrationsApps, dashboards, databasesFeed readers, monitoring
Tools41 tools (search, details, salary, profiles, tracking, employer, messaging)Single endpoint, all jobsSingle feed, recent jobs
Data scopeJobs, companies, salary, statistics, talent, profilesJobs onlyJobs only
AuthenticationOptional OAuth 2.1 for profile/employer featuresNoneNone
FormatMCP protocol (JSON over HTTP/SSE)JSONAtom/XML
Real-timeYesUpdated every 24 hoursUpdated every 24 hours

For the JSON API, see Remote Jobs API. For the RSS feed, see Remote Jobs RSS Feed.

Where can I get help?

For MCP setup questions or integration support, email hi@himalayas.app.

For more documentation: