MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Communication & messaging

Refine Job Search

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

Checks passed
13 / 22

1 failed · 8 not measured

Median response
158 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
62

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 158 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name refine.

  • Pass
    Lists tools

    tools/list returned 62 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 158 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 158 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    176 of 210 parameters have a description (84%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-22T03:06:14.562764Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Refine Job Search

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

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

Capabilities

Tools 62

account.agenda

Get upcoming interviews and action items

Discovered
companies.submissions.create

Submit 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.

Discovered
companies.submissions.get

Read 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.

Discovered
following.digest.get

Read the user-wide Following email digest schedule. data is null if no schedule is configured. Company match filters are managed separately with following.update.

Discovered
following.digest.update

Set 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.

Discovered
following.follow

Follow 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.

Discovered
following.list

List 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.

Discovered
following.openings.list

Read 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.

Discovered
following.openings.mark_all_read

Mark 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.

Discovered
following.openings.mark_read

Mark one Following row as read. Use the row id from following.openings.list, not nested opening.id.

Discovered
following.pause

Pause future matching openings for this follow without deleting it. This does not stop shared company indexing or pause other follows.

Discovered
following.resume

Resume a paused company follow.

Discovered
following.unfollow

Unfollow 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.

Discovered
following.update

Replace 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.

Discovered
inbox.acknowledge

Keep auto-applied inbox items as-is and finalize the automatic action. Confirm the specific items with the user first.

Discovered
inbox.apply_suggestion

Apply 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.

Discovered
inbox.decline

Queue 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.

Discovered
inbox.dismiss

Dismiss inbox items you are not acting on (also marks the mail read in Gmail)

Discovered
inbox.draft_reply

Generate an AI reply draft for an inbox item. Returns HTML for review; it does not send anything.

Discovered
inbox.get

Get one inbox item with its related job and application

Discovered
inbox.get_thread

Fetch the full email thread for an inbox item

Discovered
inbox.list

List email conversations Refine matched to your job search (applications, interviews, recruiter outreach)

Discovered
inbox.mark_read

Clear an inbox item's unread-reply flag

Discovered
inbox.refresh

Check Gmail for new mail now; returns per-account sync status

Discovered
inbox.send_reply

Send 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.

Discovered
inbox.sync_status

Per-account Gmail synchronization status, including current progress and last sync time

Discovered
inbox.undo

Undo an auto-applied inbox action. This can delete a board record that the automatic action created, so confirm with the user first.

Discovered
inbox.unsubscribe

Unsubscribe 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.

Discovered
integrations.connect_google

Get 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.

Discovered
integrations.list

List connected Google accounts and their grant status. To connect a new account, use integrations.connect_google.

Discovered
jobs.add

Add a new job to your journey

Discovered
jobs.archive

Hide a job from the active board without recording a rejection or closing the application

Discovered
jobs.delete

Permanently 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.

Discovered
jobs.get

Get details of a specific job

Discovered
jobs.interviews.add

Log an interview for a job

Discovered
jobs.interviews.delete

Permanently delete an interview from a job. Confirm with the user first; it cannot be undone.

Discovered
jobs.interviews.update

Update an existing interview

Discovered
jobs.list

List jobs in your journey

Discovered
jobs.mark_applied

Mark a job as applied

Discovered
jobs.offer.accept

Accept 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.

Discovered
jobs.offer.add_negotiation

Log a negotiation event on an offer (counter-offer, update, etc.)

Discovered
jobs.offer.create

Record a job offer with compensation details

Discovered
jobs.offer.decline

Decline the offer for a job, a major state change; confirm with the user first. It does not email the employer.

Discovered
jobs.offer.delete

Permanently 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.

Discovered
jobs.offer.delete_negotiation

Remove a negotiation event from an offer

Discovered
jobs.offer.update

Update the offer recorded for a job

Discovered
jobs.refresh

Queue a job posting to be re-scraped. The returned job may remain pending; use jobs.get later to inspect the refreshed state.

Discovered
jobs.unarchive

Restore an archived job to the active board

Discovered
jobs.update

Update a job in your journey

Discovered
openings.add_to_board

Add 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.

Discovered
openings.get

Read an indexed opening, including its full description and qualifications. Use opening.id from Search or Following, not a follow-opening row ID.

Discovered
persona.get

Get the user's persona: inferred job-search preferences and traits with an understanding score. Use it to tailor advice and searches.

Discovered
recommendations.block

Dismiss a recommended company and block it from future recommendations

Discovered
recommendations.dismiss

Dismiss a recommended company

Discovered
recommendations.feedback

Record 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.

Discovered
recommendations.get

Get one recommended company with sources and persona fit

Discovered
recommendations.list

Discover 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.

Discovered
recommendations.restore

Restore a dismissed or blocked recommendation

Discovered
search.company_openings

Read 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.

Discovered
search.create

Search 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.

Discovered
search.get

Read 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.

Discovered
search.update

Update 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.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected158 ms62