Skip to main content

Refine Job Search

co.getrefine/refineVersion 0.6.0

Job search management: applications, interviews, offers, recruiter email, and company openings.

Status

Responds424 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:43 UTC
Latency
424 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://mcp.getrefine.co/mcpResponds424 ms
No sign-in

Claude Code

claude mcp add --transport http refine https://mcp.getrefine.co/mcp

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: refine
Remote MCP server URL: https://mcp.getrefine.co/mcp

Cursor

{
  "mcpServers": {
    "refine": {
      "url": "https://mcp.getrefine.co/mcp"
    }
  }
}

VS Code

code --add-mcp '{"name":"refine","type":"http","url":"https://mcp.getrefine.co/mcp"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

62 tools

Tools of Refine Job Search
Read-only
Idempotent
Open world
account.agendaGet upcoming interviews and action itemsNoYesYesNo
companies.submissions.createSubmit a missing company using its public HTTPS careers URL, supplied or confirmed by the user. Refine detects supported sources and processes openings asynchronously. This adds to the shared index, not to Following. Use companies.submissions.get for progress; follow separately once company.id is available.NoNoYesYes
companies.submissions.getRead company submission progress. queued/detecting/processing means wait; ready means search again using the company name. unsupported means the careers source is not supported; failed means processing failed. Do not claim the company was added or invent jobs while it is still working.NoYesYesNo
following.digest.getRead the user-wide Following email digest schedule. data is null if no schedule is configured. Company match filters are managed separately with following.update.NoYesYesNo
following.digest.updateSet the user-wide Following email digest schedule after the user requests it. Requires Plus or Student. For a new schedule supply frequency, hour (0–23), timezone (IANA), and weekday (Sunday=0) when weekly. Existing schedules can be patched.NoNoYesYes
following.followFollow an indexed company for future matching openings and company recommendations. Get company_id from Search, a ready submission, or a recommendation candidate_company.id. Specify at least one match; [{}] follows all new openings. This does not submit an unknown careers page or collect historical matches.NoNoNoNo
following.listList all followed companies, their filters, state, and unread counts. Returns the full list without pagination. Following delivers future matching openings; use Search to browse jobs already in the index.NoYesYesNo
following.openings.listRead matching openings from followed companies. tab defaults to unread. Use the row id for marking read and nested opening.id for opening details or adding to the board. meta.unread_count/read_count cover the selected follow or all companies before view filters; meta.filtered_count covers the current filtered tab.NoYesYesNo
following.openings.mark_all_readMark all unread openings as read for one follow, or every followed company if follow_id is omitted. Includes every page and openings hidden by view filters. Confirm the scope with the user first. The API returns no affected count; do not invent one.NoNoYesNo
following.openings.mark_readMark one Following row as read. Use the row id from following.openings.list, not nested opening.id.NoNoYesNo
following.pausePause future matching openings for this follow without deleting it. This does not stop shared company indexing or pause other follows.NoNoYesNo
following.resumeResume a paused company follow.NoNoYesNo
following.unfollowUnfollow a company and remove its Following feed and recommendation source. Confirm with the user first. Board jobs remain. To pause temporarily instead, use following.pause.YesNoYesNo
following.updateReplace all match filters for a followed company. Other follow settings are unchanged. Pass [{}] for all new openings. Pending means the new filters are being applied; old unread counts may change.NoNoYesNo
inbox.acknowledgeKeep auto-applied inbox items as-is and finalize the automatic action. Confirm the specific items with the user first.YesNoYesNo
inbox.apply_suggestionApply an inbox item's suggested action, such as adding an application to the board or recording a rejection. Confirm the specific action with the user first.YesNoYesNo
inbox.declineQueue decline replies to recruiter outreach. Depending on the user's preference this SENDS email from their address. Only call after the user explicitly approved declining these specific conversations.YesNoNoYes
inbox.dismissDismiss inbox items you are not acting on (also marks the mail read in Gmail)YesNoYesYes
inbox.draft_replyGenerate an AI reply draft for an inbox item. Returns HTML for review; it does not send anything.NoYesYesNo
inbox.getGet one inbox item with its related job and applicationNoYesYesNo
inbox.get_threadFetch the full email thread for an inbox itemNoYesYesYes
inbox.listList email conversations Refine matched to your job search (applications, interviews, recruiter outreach)NoYesYesNo
inbox.mark_readClear an inbox item's unread-reply flagNoNoYesNo
inbox.refreshCheck Gmail for new mail now; returns per-account sync statusNoNoNoYes
inbox.send_replySend an email reply through the user's Gmail. This emails a real person from the user's address. Only call after the user has seen the exact message body and explicitly approved sending it.YesNoNoYes
inbox.sync_statusPer-account Gmail synchronization status, including current progress and last sync timeNoYesYesNo
inbox.undoUndo an auto-applied inbox action. This can delete a board record that the automatic action created, so confirm with the user first.YesNoYesNo
inbox.unsubscribeUnsubscribe the user from this sender's mailing list via one-click list-unsubscribe. This changes the user's real email subscriptions; confirm with them before calling. Use it for unwanted bulk senders, not for a person you can simply decline.YesNoNoYes
integrations.connect_googleGet a link for the user to connect Gmail to Refine or approve a missing Gmail permission. Refine selects the permission needed for the connected account. The connection happens in the browser with no Refine sign-in required. Share the link only with the owner of this Refine account.NoNoNoYes
integrations.listList connected Google accounts and their grant status. To connect a new account, use integrations.connect_google.NoYesYesNo
jobs.addAdd a new job to your journeyNoNoNoYes
jobs.archiveHide a job from the active board without recording a rejection or closing the applicationNoNoYesNo
jobs.deletePermanently delete a job and its application from the board. Confirm with the user first; it cannot be undone. To hide a job without recording a rejection or closure, use jobs.archive instead.YesNoYesNo
jobs.getGet details of a specific jobNoYesYesNo
jobs.interviews.addLog an interview for a jobNoNoNoNo
jobs.interviews.deletePermanently delete an interview from a job. Confirm with the user first; it cannot be undone.YesNoYesNo
jobs.interviews.updateUpdate an existing interviewNoNoYesNo
jobs.listList jobs in your journeyNoYesYesNo
jobs.mark_appliedMark a job as appliedYesNoYesNo
jobs.offer.acceptAccept the offer for a job. This is a major state change that closes out the search for this role; confirm with the user before calling. It does not email the employer.YesNoYesNo
jobs.offer.add_negotiationLog a negotiation event on an offer (counter-offer, update, etc.)NoNoNoNo
jobs.offer.createRecord a job offer with compensation detailsNoNoNoNo
jobs.offer.declineDecline the offer for a job, a major state change; confirm with the user first. It does not email the employer.YesNoYesNo
jobs.offer.deletePermanently delete the offer recorded for a job (the job stays). Use only to fix a mistake, and confirm with the user first; it cannot be undone.YesNoYesNo
jobs.offer.delete_negotiationRemove a negotiation event from an offerYesNoYesNo
jobs.offer.updateUpdate the offer recorded for a jobNoNoYesNo
jobs.refreshQueue a job posting to be re-scraped. The returned job may remain pending; use jobs.get later to inspect the refreshed state.NoNoNoYes
jobs.unarchiveRestore an archived job to the active boardNoNoYesNo
jobs.updateUpdate a job in your journeyNoNoYesYes
openings.add_to_boardAdd an indexed opening to the board after the user chooses it. Uses opening.id, not the Following row ID. Returns the existing board job if already added. This does not apply to the employer or send email; it also marks any matching Following item as read.NoNoYesNo
openings.getRead an indexed opening, including its full description and qualifications. Use opening.id from Search or Following, not a follow-opening row ID.NoYesYesNo
persona.getGet the user's persona: inferred job-search preferences and traits with an understanding score. Use it to tailor advice and searches.NoYesYesNo
recommendations.blockDismiss a recommended company and block it from future recommendationsNoNoYesNo
recommendations.dismissDismiss a recommended companyNoNoYesNo
recommendations.feedbackRecord recommendation feedback to improve future suggestions. The historical feedback tag "watched" records that a company was followed; it does not create a follow. Use following.follow first. Dismiss/block/restore actions are separate tools.NoNoNoNo
recommendations.getGet one recommended company with sources and persona fitNoYesYesNo
recommendations.listDiscover companies recommended from the companies you follow. Optionally filter by source_company_id (company.id from following.list, not a follow ID). Returns one flat list plus per-source counts. To follow a recommendation, use following.follow with candidate_company.id and your chosen filters.NoYesYesNo
recommendations.restoreRestore a dismissed or blocked recommendationNoNoYesNo
search.company_openingsRead all matching jobs for a company in a ready search, not just its three preview jobs. Continue with data.next_page until null. Use company.id from the search results.NoYesYesNo
search.createSearch indexed jobs or companies. Supply input OR query, not both. Natural-language searches return a search ID and processing state: use search.get later, without rapid polling. Keep the ID to paginate or update this same search. Empty query {} is All openings, currently sorted by newest without persona personalization.NoNoNoNo
search.getRead a search and its results, switch jobs/companies view, or fetch results.next_page. Pending/interpreting/processing means it is still working: do not create another search or poll rapidly. If missing_company_name is set, ask for its careers URL and use companies.submissions.create. Company rows contain samples, not all matching jobs.NoYesYesNo
search.updateUpdate the existing search instead of creating another. Supply input OR the complete replacement query; omitted filters are cleared. Wait until the current search is ready or failed before updating it.NoNoNoNo

Details

Registry status
Active
Published
Oct 22, 2026
Updated
Oct 22, 2026
Repository
Not given
Categories (suggested)
CommunicationSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing