live.alpic.openjobs-3168f222/openjobs
Official6 toolsOpenJob
Find jobs in your own words and apply on the company website — no detours.
Search and apply for jobs directly through company websites.
Captured live from the server via tools/list.
get_app_intro
Friendly introduction to OpenJob for job seekers. Use when the user is new or asks how this works. Return plain language only.
No parameters.
explain_filters
Plain-language search tips for job seekers. Use when the user asks how to search or what they can filter. No technical jargon in the reply.
No parameters.
explain_data_source
Where job listings come from, licensing, and links to the data provider. Use only when the user asks about data source, Feashliaa, license, attribution, or who built OpenJob.
No parameters.
get_index_status
How much of the job board is loaded and whether search is ready. Explain to the user in simple terms, not technical sync jargon.
No parameters.
search_jobs
Search open company job listings. Map the user's natural language to filters. Always set search_mode on search_jobs and get_job_details: keyword_search when the user only describes a role, place, or filters; resume_match when they upload a resume/CV or ask to match jobs to their background or memory. Never show parameter names (role_cluster, skill_level, search_mode, etc.) to the user — speak like a career coach. Do not mention data sources or licenses unless the user asks — use explain_data_source for that. Every job has url and apply_url (company careers page). When you list jobs in a table, bullets, or prose, each row must include at least one clickable markdown link to that url — e.g. linked title [Title](url), linked company name, or a separate Apply / View posting link. Never list a job with no way to click through. After search_jobs, add a structured follow-up in the user's language — the widget shows cards; your text adds coaching. Include: (1) a markdown table Role | Company | Fit (use resume/memory when available; otherwise one-line highlight per row); (2) a numbered priority list for applying (top 3–5 with brief rationale); (3) if the user shared background, one CV positioning sentence they can reuse; (4) related title search variants as inline tags (e.g. Entrepreneur in Residence, Venture Development, GTM Associate, Chief of Staff). When the user has a resume or detailed background, call get_job_details on the best 5–8 urls before ranking. Do not invent match percentages. search_jobs live-checks up to 8 Greenhouse/Ashby/Lever listings per search and drops roles confirmed closed on the company site. For deeper advice on a shortlist, call get_job_details on the best urls (batch up to 10) to load full posting text. Use verifiable_only=true when the user wants only listings we can double-check live (~30% of the board). When the user uploads a resume (curriculum vitae) or asks to match jobs to their background (or ChatGPT memory): (1) extract target titles, seniority, locations, remote preference, title keywords, exclusions; (2) if missing both a role and a place, ask one short question; (3) run 2–4 search_jobs calls with varied strategies and search_mode resume_match; (4) for the best 5–10 results call get_job_details with their urls (batch up to 10) and search_mode resume_match; (5) dedupe, rank using description_text when status is ok, explain top picks in plain language with apply links; do not invent percentage match scores. For role families (founder/founder's/founders associate, chief of staff, product manager) pass the user's words in title — OpenJob normalizes spelling variants automatically; role_cluster is optional. hide_recruiters defaults true (skip recruiting agencies).
Parameters (16)
- search_modestringrequired
keyword_search = role/location/filters only; resume_match = user uploaded a resume (CV) or asked to match jobs to their background or ChatGPT memory.
- titlestring
Job title keywords from the user's words.
- role_clusterstring
Internal preset when user wants a role family: founder_associate | chief_of_staff | product_manager
- companystring
Company name.
- locationstring
City, region, or country.
- atsstring
Career-site type if user asks, e.g. greenhouse, lever, ashby
- verify_liveboolean
Live-check Greenhouse/Ashby/Lever and drop listings confirmed closed; default true
- verifiable_onlyboolean
Only Greenhouse, Ashby, and Lever (~30% of board) — listings we can live-verify
- skill_levelstring
Seniority if user says junior, senior, etc.
- remote_onlyboolean
- hide_recruitersboolean
Exclude recruiting-agency posts; default true
- min_salarynumber
- include_keywordsstring
Comma-separated words that must appear in title
- exclude_keywordsstring
Comma-separated words to exclude from title
- limitinteger
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
get_job_details
Fetch full posting text for job urls from search_jobs. Set search_mode resume_match when fetching postings to compare against the user's resume or background; keyword_search otherwise. Greenhouse (including embedded careers pages), Ashby, and Lever are supported; other career sites may return unsupported_ats. Closed roles are cached about 24 hours; open postings about 14 days (posting text only, not user resumes). Use description_text to compare against the user's resume or stated background.
Parameters (4)
- search_modestring
keyword_search = role/location/filters only; resume_match = user uploaded a resume (CV) or asked to match jobs to their background or ChatGPT memory.
- urlstring
Single job url from search_jobs results.
- urlsarray
Up to 10 job urls — preferred after resume match.
- user_intentstring
A concise summary of what the user is trying to accomplish, derived from their message or the conversation context that triggered this tool call. This is used to understand the user's intent and context to improve the overall user experience. - For short, self-contained prompts (e.g. "I want new shoes"), copy the user message as-is. - For longer conversations or detailed requests, summarize the core goal and any relevant context in 1-2 sentences. Focus on intent, constraints, and preferences - not the full dialogue. Before sending, strip all personally identifiable information (PII), including but not limited to: - Names (first, last, usernames, handles) - Email addresses - Phone numbers - Physical addresses (street, city, zip/postal code, country when tied to an individual) - Dates of birth or exact ages - Government-issued ID numbers (SSN, passport, driver's license, etc.) - Payment or financial information (card numbers, bank accounts, etc.) - IP addresses or device identifiers - Account credentials (passwords, tokens, API keys) - Health or biometric data - Any other information that could identify a specific individual Replace stripped values with a generic placeholder (e.g. "[name]", "[email]", "[address]"). Examples: User: "I want red running shoes under $100" -> "I want red running shoes under $100" User: "Hi, I'm John Smith, john@example.com, and I'm looking for flights from Paris to Tokyo for 2 adults departing around mid-June, budget around EUR2000 total" -> "Looking for flights from Paris to Tokyo for 2 adults, mid-June, budget ~EUR2000" User: "I need help resetting my password for account ID acct_12345" -> "I need help resetting my password for account ID [account_id]"
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"openjobs": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://openjobs-3168f222.alpic.live"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.