remoet-labs avatar

Remoet Mcp

remoet-labs/remoet-mcp

Connects your AI agent to Remoet's job platform with company-level tech stack data. You can search companies by actual technologies they use (Rails, React, Postgres), star the ones that match your preferences, pull jobs from that shortlist, and manage your developer profile and applications. Ships as both a local stdio server and a hosted HTTP endpoint at api.remoet.dev/mcp. The local package forwards calls to the hosted backend with your Bearer token. Supports OAuth for browser clients and direct API keys for CLI workflows. Free tier gives you the full tool catalog with rate limits. Reach for this when you want job search driven by real stack matches instead of keyword soup, or when you're building an agent that needs to track applications and company lists conversationally.

GitHub stars
1
tools
24
transport
HTTP
last updated
May 29, 2026

Install

From registry metadata
$ npx add-mcp https://api.remoet.dev/mcp/oauth --name remoet-mcp

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http remoet-mcp https://api.remoet.dev/mcp/oauth

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 24 tools

Verified live against the running server on Nov 6, 2026.

get_profileThe user's complete Remoet profile in one call: profile core (summary, links, location, avatar), workExperience, projects, and education (each section entry carries an id for update/delete) plus the current visibility setting. The ids it returns are the ones the save_* and del...

The user's complete Remoet profile in one call: profile core (summary, links, location, avatar), workExperience, projects, and education (each section entry carries an id for update/delete) plus the current visibility setting. The ids it returns are the ones the save_* and del...

No parameters. Call it with no arguments.

update_profileUpdate the user's Remoet profile core and/or their visibility. Only provide the fields you want to change. Omitted fields are left as-is; pass null to clear a field. If the source data (CV, website, etc.) is missing a field, ask the user rather than guessing. Never copy placeh...13 params

Update the user's Remoet profile core and/or their visibility. Only provide the fields you want to change. Omitted fields are left as-is; pass null to clear a field. If the source data (CV, website, etc.) is missing a field, ask the user rather than guessing. Never copy placeh...

Parameters* required
avatarUrlvalue
Your avatar/photo URL
facebookUrlvalue
Your Facebook profile URL
githubUrlvalue
Your GitHub profile URL
linkedinUrlvalue
Your LinkedIn profile URL
locationvalue
Your location
namevalue
Your full name
phonevalue
Your phone number
slugstring
Your public profile URL slug (must be unique)
summaryvalue
A brief professional summary or bio
twitterUrlvalue
Your Twitter/X profile URL
urlvalue
Your personal website URL
visibilitystring
Who can see the profile in company candidate lists: NONE (hidden), STARRED (only companies the user has starred, recommended), ALL (every company). Explain the trade-off before changing.one of ALL · STARRED · NONE
youtubeUrlvalue
Your YouTube channel URL
save_work_experienceAdd or update a work experience entry (upsert). Omit id to create a new entry (title and startDate are required); pass an id (from get_profile) to update an existing one, changing only the fields you send. Every description should cover WHAT was built, HOW (technologies), IMPA...10 params

Add or update a work experience entry (upsert). Omit id to create a new entry (title and startDate are required); pass an id (from get_profile) to update an existing one, changing only the fields you send. Every description should cover WHAT was built, HOW (technologies), IMPA...

Parameters* required
companyNamevalue
Company name
companyUrlvalue
Company website URL
descriptionvalue
Job description
endDatevalue
End date: a date, e.g. "2024-01-15". Omit it for a current role
idstring
Present: update this work-experience entry (only the fields you pass change). Omit: create a new one (title and startDate are required to create).
isCurrentboolean
Whether this is your current job (default false on create)
isRemoteboolean
Whether this job is remote (default false on create)
startDatestring
Start date: a date, e.g. "2024-01-15"
technologiesarray
Technologies used (e.g. ["React", "Node.js"]). They feed job matching
titlestring
Job title
save_projectAdd or update a portfolio project (upsert). Omit id to create (title and shortDescription are required); pass an id (from get_profile) to update, changing only the fields you send. Projects are the #1 differentiator for junior/mid developers. Help the user recognize work they...13 params

Add or update a portfolio project (upsert). Omit id to create (title and shortDescription are required); pass an id (from get_profile) to update, changing only the fields you send. Projects are the #1 differentiator for junior/mid developers. Help the user recognize work they...

Parameters* required
demoUrlvalue
Live demo URL
descriptionvalue
Full project description
endDatevalue
End date: a date, e.g. "2024-01-15"
idstring
Present: update this project (only the fields you pass change). Omit: create a new one (title and shortDescription are required to create).
isCurrentboolean
Whether this is an ongoing project (default false on create)
isOpenSourceboolean
Whether this is open source (default false on create)
isRemoteboolean
Whether this was remote work (default false on create)
repoUrlvalue
Repository URL
rolevalue
Your role in the project
shortDescriptionstring
A one-line summary of the project
startDatevalue
Start date: a date, e.g. "2024-01-15"
technologiesarray
Technologies used
titlestring
Project title
save_educationAdd or update an education entry (upsert). Omit id to create (institution is required); pass an id (from get_profile) to update, changing only the fields you send. Ask about degrees, bootcamps, and notable certifications. Confirm approximate dates with the user rather than gue...9 params

Add or update an education entry (upsert). Omit id to create (institution is required); pass an id (from get_profile) to update, changing only the fields you send. Ask about degrees, bootcamps, and notable certifications. Confirm approximate dates with the user rather than gue...

Parameters* required
descriptionvalue
Description of studies, achievements, etc.
endDatevalue
End date: a date, e.g. "2024-01-15"
fieldOfStudyvalue
Field of study (e.g. "Computer Science")
idstring
Present: update this education entry (only the fields you pass change). Omit: create a new one (institution is required to create).
institutionstring
Institution name (e.g. "MIT", "Lund University")
institutionUrlvalue
Institution website URL
isCurrentboolean
Whether you are currently studying here (default false on create)
startDatevalue
Start date: a date, e.g. "2024-01-15"
studyLevelvalue
Level of study: HIGH_SCHOOL, ASSOCIATE, BACHELOR, MASTER, DOCTORATE, BOOTCAMP, or OTHER
delete_profile_itemDelete a profile item: a work experience entry, a project, or an education entry (set type accordingly). Use this to clean up duplicates, placeholder/test entries, or clearly wrong data. Ids come from get_profile. Always confirm with the user before deleting anything that coul...2 params

Delete a profile item: a work experience entry, a project, or an education entry (set type accordingly). Use this to clean up duplicates, placeholder/test entries, or clearly wrong data. Ids come from get_profile. Always confirm with the user before deleting anything that coul...

Parameters* required
id*string
The ID of the item to delete (get its id from get_profile)
type*string
Which kind of profile item to deleteone of work_experience · project · education
search_listingsWorks without a Remoet account, except starred: true. Search companies on Remoet, or list the user's starred companies (starred: true). Returns a summary per result. Full detail (description, perks, URLs) is on get_listing, by slug. Job boards and aggregators are excluded; tal...8 params

Works without a Remoet account, except starred: true. Search companies on Remoet, or list the user's starred companies (starred: true). Returns a summary per result. Full detail (description, perks, URLs) is on get_listing, by slug. Job boards and aggregators are excluded; tal...

Parameters* required
experienceLevelarray
Only companies with at least one open role at any of these seniorities (e.g. ["junior"] for entry-level-friendly companies). Each result's experienceLevels field shows its per-seniority role counts...
pageinteger
Page number, starting from 1 (default: 1). Without a Remoet account the first 10 pages are available.
pageSizeinteger
Results per page, max 20 without a Remoet account (default: 20)
searchQuerystring
Search keyword: matches company name, description, and about text
sortBystring
Sort results by: stars (most popular), jobCount (most active hiring), or name (alphabetical). Default: relevance when searching/filtering, stars when browsingone of stars · jobCount · name
starredboolean
Set true to list the user's STARRED companies instead of searching the full catalog. In this mode searchQuery/experienceLevel/sort/pagination are ignored; pass techStack to get a matchedTechStack p...
techStackarray
Filter by technologies (e.g. ["React", "Node.js", "TypeScript"]). Each result's matchedTechStack shows which matched. Technologies are auto-normalized.
techStackMatchstring
How techStack combines: "any" (default, at least one technology) or "all" (every technology required; use for must-have stacks)one of any · all
get_listingWorks without a Remoet account. Get detailed information about a specific company listing by its slug. Use this to review a company before deciding whether to star it. Returns the company's full description, perks, job count, and URLs. hiringStats shows how often the company o...2 params

Works without a Remoet account. Get detailed information about a specific company listing by its slug. Use this to review a company before deciding whether to star it. Returns the company's full description, perks, job count, and URLs. hiringStats shows how often the company o...

Parameters* required
checkTechStackarray
Technologies to verify against the company's full stack (auto-normalized, max 50); matches are returned in matchedTechStack
slug*string
The URL slug of the listing (e.g. "digital-ocean", "stripe")
star_listingStar/save a company listing. Starring subscribes you to their job postings. Starred company jobs appear in get_starred_jobs. Starring also unlocks the company's FULL tech stack (unstarred listings only show a small preview). Starring is FREE. It does not consume budget. Howeve...1 params

Star/save a company listing. Starring subscribes you to their job postings. Starred company jobs appear in get_starred_jobs. Starring also unlocks the company's FULL tech stack (unstarred listings only show a small preview). Starring is FREE. It does not consume budget. Howeve...

Parameters* required
listingId*string
The ID of the listing to star
unstar_listingRemove a star from a company listing. WARNING: Unstarring consumes from your unstar budget (per 30-day period), EXCEPT when the user is over their star cap (then trimming back to the limit is free). This prevents unlimited cycling of stars. The remaining unstar budget is repor...1 params

Remove a star from a company listing. WARNING: Unstarring consumes from your unstar budget (per 30-day period), EXCEPT when the user is over their star cap (then trimming back to the limit is free). This prevents unlimited cycling of stars. The remaining unstar budget is repor...

Parameters* required
listingId*string
The ID of the listing to unstar
search_jobsWorks without a Remoet account. Search Remoet's PUBLIC job catalogue: every role on the open board at remoet.dev/jobs, across all companies, not just the ones the user has starred. No star is needed and none is consumed. Use this to answer "what is out there" for any technolog...12 params

Works without a Remoet account. Search Remoet's PUBLIC job catalogue: every role on the open board at remoet.dev/jobs, across all companies, not just the ones the user has starred. No star is needed and none is consumed. Use this to answer "what is out there" for any technolog...

Parameters* required
companySlugstring
Restrict to one company by its Remoet slug (the same slug get_listing takes, e.g. "stripe"). An unknown or delisted company returns an empty page, not an error.
experienceLevelarray
Match roles at ANY of these experience levels: "junior", "mid" or "senior" (max 5).
locationarray
Match roles in ANY of these places (max 5), e.g. ["Berlin"] or ["Germany", "Netherlands"]. Matched against the canonical place names Remoet stores per role, not the free-text location string, so a...
pageinteger
Page number, starting from 1 (default: 1). Without a Remoet account the first 10 pages are available; connect an account to page deeper.
pageSizeinteger
Results per page, max 20 without a Remoet account (default: 20)
remotePolicyarray
Match roles with ANY of these remote policies: "remote", "hybrid", "onsite" or "remote-restricted" (max 5).
salaryMinnumber
Minimum salary, against the role's normalized salaryEnriched.from. Roles Remoet holds no numeric salary for are EXCLUDED by this filter, so a floor narrows the board to the ~55% of roles that publi...
searchQuerystring
Free text, matched against the job title, Remoet's own summary of the role and its tech stack. Comma-separate keywords to require ALL of them (e.g. "react, typescript").
sortBystring
Sort field: "newest" (default) or "salary". Under "salary", roles with no known salary sort LAST whichever direction is asked for, so they never head the list.one of newest · salary
sortOrderstring
Sort direction (default: desc)one of asc · desc
techStackarray
Match roles carrying ANY of these technologies (e.g. ["React", "Go"]), or EVERY one of them under techStackMatch: "all". Matched case-insensitively against the exact stored technology, so use whole...
techStackMatchstring
How techStack combines: "any" (default, at least one technology) or "all" (every technology required ON THE SAME ROLE; use for a must-have stack). Spelling variants stay grouped per technology, so...one of any · all
get_starred_jobsGet job postings from the user's starred companies. This is the user's own curated feed. If the user has no stars, this returns nothing. In that case, use search_jobs instead: it reads the public catalogue. Supports filtering by search query, location, tech stack, remote polic...11 params

Get job postings from the user's starred companies. This is the user's own curated feed. If the user has no stars, this returns nothing. In that case, use search_jobs instead: it reads the public catalogue. Supports filtering by search query, location, tech stack, remote polic...

Parameters* required
experienceLevelarray
Filter by experience level: "junior", "mid", or "senior"
locationQuerystring
Filter by location or remote restrictions
pageinteger
Page number, starting from 1
pageSizeinteger
Results per page (max 50, default 20)
remotePolicyarray
Filter by remote policy: "remote", "hybrid", "onsite", or "remote-restricted"
salaryMinnumber
Minimum salary filter
searchQuerystring
Search keywords for job title, summary, or tech stack
sortBystring
Sort field (default: createdAt)one of createdAt · remotePolicy · salaryEnriched.from · experienceLevel
sortOrderstring
Sort direction (default: desc)one of asc · desc
techStackarray
Filter by technologies (e.g. ["React", "Node.js"])
techStackMatchstring
How techStack combines: "any" (default, at least one technology) or "all" (every technology required)one of any · all
save_jobSave a job to the user's list for later. Supports both AI-extracted jobs (from search_jobs or get_starred_jobs) and internal partner jobs. This gives the agent memory across sessions. Saved jobs persist so the user doesn't lose track of interesting roles. Optionally attach a n...3 params

Save a job to the user's list for later. Supports both AI-extracted jobs (from search_jobs or get_starred_jobs) and internal partner jobs. This gives the agent memory across sessions. Saved jobs persist so the user doesn't lose track of interesting roles. Optionally attach a n...

Parameters* required
jobId*string
The ID of the job to save
jobTypestring
Type of job: "ai_job" (from search_jobs or get_starred_jobs, default) or "listing_job" (internal partner job)one of ai_job · listing_job
notevalue
Optional note about why this job is interesting
get_saved_jobsGet the user's saved jobs list. This is the user's job search memory: shows all jobs they've bookmarked across sessions, with notes and job details. Includes both AI-extracted jobs and internal partner jobs (see jobType field). It shows the user's existing pipeline, so jobs th...2 params

Get the user's saved jobs list. This is the user's job search memory: shows all jobs they've bookmarked across sessions, with notes and job details. Includes both AI-extracted jobs and internal partner jobs (see jobType field). It shows the user's existing pipeline, so jobs th...

Parameters* required
pageinteger
Page number, starting from 1 (default: 1)
pageSizeinteger
Results per page, max 50 (default: 20)
update_saved_job_noteUpdate the note on a saved job. Use this to add context, track application status, or record follow-up reminders. Pass null to clear the note.2 params

Update the note on a saved job. Use this to add context, track application status, or record follow-up reminders. Pass null to clear the note.

Parameters* required
note*value
Updated note, or null to clear
savedJobId*string
The ID of the saved job entry (not the job ID)
unsave_jobRemove a job from the user's saved list. Saved job ids come from get_saved_jobs. Confirm with the user before removing.1 params

Remove a job from the user's saved list. Saved job ids come from get_saved_jobs. Confirm with the user before removing.

Parameters* required
savedJobId*string
The ID of the saved job entry to remove
get_feedThe user's dashboard feed as ONE composed stream, chronological newest first. Each entry has a kind: 'item' (per-company job items from their starred companies - the company, when it landed, role snapshots with job id/title/application URL/salary/remote policy/experience level...2 params

The user's dashboard feed as ONE composed stream, chronological newest first. Each entry has a kind: 'item' (per-company job items from their starred companies - the company, when it landed, role snapshots with job id/title/application URL/salary/remote policy/experience level...

Parameters* required
cursorstring
nextCursor from the previous page. Omit for the newest page.
pageSizeinteger
Items per page (default 20, max 50).
get_digestsHISTORICAL ONLY: the user's archived job digests, the email summaries Remoet used to send about new jobs from their starred companies. No new digest has been generated since 2026-07-06, when the feed roundup replaced that pipeline, so this returns nothing at all for an account...1 params

HISTORICAL ONLY: the user's archived job digests, the email summaries Remoet used to send about new jobs from their starred companies. No new digest has been generated since 2026-07-06, when the feed roundup replaced that pipeline, so this returns nothing at all for an account...

Parameters* required
idstring
Fetch one digest in full by id. Omit to list recent digests.
get_appsList approved apps built on the Remoet platform. These are community and official apps that extend Remoet's functionality. Each app has a repo URL for deployment and a demo URL to try it out. Use this to help users discover tools that complement their Remoet workflow, e.g. por...4 params

List approved apps built on the Remoet platform. These are community and official apps that extend Remoet's functionality. Each app has a repo URL for deployment and a demo URL to try it out. Use this to help users discover tools that complement their Remoet workflow, e.g. por...

Parameters* required
categorystring
Filter by category
pageinteger
Page number, starting from 1 (default: 1)
pageSizenumber
Results per page, max 50 (default: 20)
tagstring
Filter by tag
get_linktreesThe user's link tree pages: shareable single-page URLs for a CV, email signature, or job application, with per-link view/click tracking so recruiter engagement is measurable. Without a slug: all of the user's link trees (each with its id and slug). With a slug: that page's con...1 params

The user's link tree pages: shareable single-page URLs for a CV, email signature, or job application, with per-link view/click tracking so recruiter engagement is measurable. Without a slug: all of the user's link trees (each with its id and slug). With a slug: that page's con...

Parameters* required
slugstring
Fetch one link tree in full by its public slug (with engagement data). Omit to list all of the user's link trees.
create_linktreeCreate a link tree page: a shareable page with the user's links (social media, portfolio, GitHub, etc.). Each account can create up to 10. The slug becomes the public URL. Slug rules: 5-20 characters, lowercase letters, numbers, and hyphens only, cannot start/end with a hyphen...4 params

Create a link tree page: a shareable page with the user's links (social media, portfolio, GitHub, etc.). Each account can create up to 10. The slug becomes the public URL. Slug rules: 5-20 characters, lowercase letters, numbers, and hyphens only, cannot start/end with a hyphen...

Parameters* required
description*value
Short description for the page
links*array
Array of links to display on the page (max 50)
slug*string
URL slug (5-20 chars, lowercase, hyphens allowed, must be unique)
title*string
Page title (e.g. "Carl Igelström: Links")
delete_linktreeDelete a link tree page. Link tree ids come from get_linktrees. Confirm with the user before deleting.1 params

Delete a link tree page. Link tree ids come from get_linktrees. Confirm with the user before deleting.

Parameters* required
id*string
The ID of the link tree to delete
apply_to_jobApply to a job on behalf of the user, or get its application link. Two outcomes by job type: internal jobs (posted directly through Remoet's partner system) are applied to end-to-end and return the created application; scraped jobs (most of the platform) return applicationType...1 params

Apply to a job on behalf of the user, or get its application link. Two outcomes by job type: internal jobs (posted directly through Remoet's partner system) are applied to end-to-end and return the created application; scraped jobs (most of the platform) return applicationType...

Parameters* required
jobId*string
The ID of the job to apply to
get_accountThe user's account status in one call: every budget the platform enforces (active stars vs cap, unstars used vs the 30-day unstar budget, MCP requests today vs daily cap, REST API requests today vs daily cap, each with a resetsAt), the remaining limits (link-tree cap), and any...

The user's account status in one call: every budget the platform enforces (active stars vs cap, unstars used vs the 30-day unstar budget, MCP requests today vs daily cap, REST API requests today vs daily cap, each with a resetsAt), the remaining limits (link-tree cap), and any...

No parameters. Call it with no arguments.

Sponsors

Readme

Remoet MCP server

Track tech jobs from companies you love, by asking your AI agent. No account needed to start.

claude mcp add --transport http --scope user remoet https://api.remoet.dev/mcp

What it will and will not do

  • It searches the public job board and, with a free account, keeps your starred companies and saved jobs on file.
  • Every write is a tool call your agent makes. The server does not enforce consent: write tools carry annotations your client can use to ask you first, and apply_to_job tells the agent to get your consent before submitting. For scraped roles (most of the board) it only returns the employer's link, and you apply there.
  • Your profile (name, photo, summary, location, links) and the work, project and education entries you save are public: the profile page shows the profile, work and projects, and education is returned by the public profile API. visibility (NONE, STARRED or ALL) separately controls which companies can see you as a candidate.

Try this first:

I work in Rails, React, and Postgres. Find open roles that use that stack and tell me which companies are hiring for it.


View the full README on GitHub

Details

Repository
github.com/remoet-labs/remoet-mcp
Website
remoet.dev
Transport
HTTP
Registry
MCP registry, active
Prompts
5
Tools verified
Nov 6, 2026