Organize job applications, interviews, offers and track companies for new openings
Manages your job search journey: track applications and interviews, record offers and negotiations, monitor companies for new roles, and organize recruiter emails. Connects to your Gmail to match job-related messages.
Try asking Muse: "Add the job I just applied for to my search board and set a reminder for the phone screen next Tuesday"
Source: Found in the official MCP Registry (co.getrefine/refine) · First listed September 24, 2026
Each bar is one check, every 15 minutes. Green means it answered. Last checked 3 h ago.
What Muse can see: It does not ask you to sign in, so it cannot see your accounts. It only sees what Muse sends it from your request.
Before it acts: Read what Muse plans to do before you approve it, and remove the app from Muse when you stop using it.
musedirectory.ai is not part of Meta. More about how Muse handles your information
Not in Muse's Connectors list yet, but Muse can still use it. Copy the request below and paste it into Muse. Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.
https://mcp.getrefine.co/mcpNot in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
Refine Job Search is a remote MCP server, so any assistant that can add a custom connector by link can use it. Same link, same tools.
In ChatGPT, open Settings, then Connectors (called Apps & Connectors on some accounts).
Under Advanced settings, switch on Developer mode. That is what lets you add a connector by link.
Choose Create, give it a name, paste the link as the MCP server URL, and save. If it needs a sign-in, ChatGPT asks for it here.
Start a chat, open the tools menu, pick the connector, and ask. ChatGPT asks before it runs a tool the first time.
Custom connectors need a paid ChatGPT plan, and on Team, Enterprise and Edu accounts only an admin can add them. Our "Working" label means the server answered us; it cannot tell whether your plan lets you add it. All connectors that work in ChatGPT
In Claude, open Settings, then Connectors.
Choose Add custom connector, give it a name, and paste the link.
If it needs a sign-in, Claude sends you to it. Then turn the connector on in a chat from the tools menu and ask.
Custom connectors are available on paid Claude plans; on Team and Enterprise accounts an admin may need to add them. Our "Working" label means the server answered us; it cannot tell whether your plan lets you add it. All connectors that work in Claude
https://mcp.getrefine.co/mcpResponse time at the last check: 304ms. Worked in 100% of checks over 30 days.
Screened, no issues found
Screening looks for known threats and hidden instructions at the time of the check, and runs again weekly and whenever the tool list changes. It cannot see the server's code, so only connect what you need and review what Muse asks to do. How screening works.
jobs.listList jobs in your journeyjobs.getGet details of a specific jobjobs.addAdd a new job to your journeyjobs.updateUpdate a job in your journeyjobs.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.jobs.refreshQueue a job posting to be re-scraped. The returned job may remain pending; use jobs.get later to inspect the refreshed state.jobs.mark_appliedMark a job as appliedjobs.archiveHide a job from the active board without recording a rejection or closing the applicationjobs.unarchiveRestore an archived job to the active boardjobs.interviews.addLog an interview for a jobjobs.interviews.updateUpdate an existing interviewjobs.interviews.deletePermanently delete an interview from a job. Confirm with the user first; it cannot be undone.jobs.offer.createRecord a job offer with compensation detailsjobs.offer.updateUpdate the offer recorded for a jobjobs.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.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.jobs.offer.declineDecline the offer for a job, a major state change; confirm with the user first. It does not email the employer.jobs.offer.add_negotiationLog a negotiation event on an offer (counter-offer, update, etc.)jobs.offer.delete_negotiationRemove a negotiation event from an offerfollowing.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.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 orfollowing.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.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.following.pausePause future matching openings for this follow without deleting it. This does not stop shared company indexing or pause other follows.following.resumeResume a paused company follow.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_coufollowing.openings.mark_readMark one Following row as read. Use the row id from following.openings.list, not nested opening.id.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.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.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.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 ocompanies.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 woopenings.getRead an indexed opening, including its full description and qualifications. Use opening.id from Search or Following, not a follow-opening row ID.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.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 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.crsearch.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.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.inbox.listList email conversations Refine matched to your job search (applications, interviews, recruiter outreach)inbox.getGet one inbox item with its related job and applicationhttps://mcp.getrefine.co/mcpNot in Muse's Connectors list yet, but Muse can still use it. Paste this into Muse: "Use Refine Job Search to help me. It is a free service with an MCP server at https://mcp.getrefine.co/mcp. It does not need an API key. Ask me before you share anything with it." Muse asks before it shares anything with the app's site. Meta does not review apps used this way, so only use ones you trust. We tested this in the Muse app on September 24, 2026: Muse used an app's link directly this way and returned a live answer.
At the last check (November 13, 2026, 14:16 UTC) the endpoint was working, answering in 304ms. Over the last 7 days it answered 100% of health checks. It is checked every 15 minutes.
It was screened on September 24, 2026 with the result "screened, no issues found". Screening checks the domain against threat feeds and reads the tools for hidden instructions and requests for passwords or card numbers. It cannot see the server's code, so grant only the access you need.
It exposes 40 tools, including jobs.list, jobs.get, jobs.add, jobs.update. For example, you could ask Muse: "Add the job I just applied for to my search board and set a reminder for the phone screen next Tuesday"
This listing was added from public sources (Found in the official MCP Registry (co.getrefine/refine)). If you build Refine Job Search, claim it to correct the details and get your badge.
Paste this on your site or README. It always shows the latest check.
<a href="https://musedirectory.ai/connector/refine-job-search"><img src="https://musedirectory.ai/badge/refine-job-search.svg" alt="Refine Job Search on musedirectory.ai" width="236" height="40"></a>