Workopia — Job Search
Qué hace este MCP
Searches global job listings and supports saving jobs, tailoring resumes, and creating job-specific cover letters.
Herramientas
Esquema de entrada
{'type': 'object', 'properties': {'action': {'enum': ['prepare', 'save'], 'type': 'string', 'description': "Omit or 'prepare' = STEP 1 (server returns JD + background + instructions for you to write). 'save' = STEP 2 (pass cover_letter_text; server renders a PDF and saves it to the dashboard; requires sign-in)."}, 'job_id': {'type': 'string', 'description': "ID of a job from a prior search/refine result. Use the **Job Id** value from the prior search result's content text VERBATIM. Server fetches full JD from Mongo."}, 'company': {'type': 'string', 'description': 'Optional; used in the confirmation line.'}, 'job_title': {'type': 'string', 'description': "Optional; used in the 'for <role> at <company>' confirmation line."}, 'parameters': {'type': 'object', 'additionalProperties': True}, 'session_id': {'type': 'string'}, 'user_email': {'type': 'string', 'description': 'If provided, server fetches the full Workopia profile for the cover letter header + writes the generated cover letter back to profile.applications[jobId].coverLetter.'}, 'json_resume': {'type': 'object', 'description': 'Optional JSON Resume object (basics/work/skills). Takes precedence over resume_text when both present.', 'additionalProperties': True}, 'resume_text': {'type': 'string', 'description': "User's resume content (plain text or JSON Resume as string)."}, 'cover_letter': {'type': 'object', 'description': 'Optional wrapper containing the same fields above (legacy shape).', 'additionalProperties': True}, 'user_profile': {'type': 'object', 'description': 'Optional main-site profile object; used as a fallback source for summary/skills/experience and for the cover letter header (firstName, lastName, email, phone, city, country).', 'additionalProperties': True}, 'resume_content': {'type': 'string'}, 'job_description': {'type': 'string', 'description': 'Full JD text when the user pastes it directly (alternative to job_id).'}, 'cover_letter_text': {'type': 'string', 'description': 'STEP 2 only: the cover letter you wrote (plain text). The server renders it to PDF and stores it on profile.applications[job_id].coverLetter.'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'action': {'enum': ['list'], 'type': 'string'}, 'status_filter': {'enum': ['all', 'saved', 'tailored', 'applied'], 'type': 'string'}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'job_id': {'type': 'string', 'description': "The id from a prior search result's job_cards[].card.id. Required."}, 'parameters': {'type': 'object'}, 'user_email': {'type': 'string'}, 'get_job_detail': {'type': 'object', 'properties': {'job_id': {'type': 'string'}, 'user_email': {'type': 'string'}}}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'action': {'enum': ['search', 'refine', 'save'], 'type': 'string', 'description': 'Optional; omitted = search. refine = after results/feedback; save = bookmark a job for the signed-in user.'}, 'save_job': {'type': 'object', 'properties': {'job_id': {'type': 'string'}, 'company': {'type': 'string'}, 'job_url': {'type': 'string'}, 'job_title': {'type': 'string'}}, 'description': 'Save args. Required: job_id (from job_cards[].card.id in a prior search result). Optional: job_title, company, job_url.'}, 'parameters': {'type': 'object'}, 'search_jobs': {'type': 'object', 'properties': {'city': {'type': 'string', 'description': "Target city name. Use this exact key name — do NOT send 'location' or 'locations'."}, 'skills': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional. Skills the user has or wants in the role (e.g., ['Python', 'AWS'])."}, 'company': {'type': 'string', 'description': 'Optional. Target a specific company name.'}, 'workMode': {'enum': ['remote', 'onsite', 'hybrid'], 'type': 'string', 'description': "Optional. Pass only when the user explicitly says 'remote' / 'onsite' / 'hybrid'. Do NOT pass 'all' or any placeholder — omit entirely if unspecified."}, 'job_title': {'type': 'string', 'description': "Target role title. Use this exact key name — do NOT send 'title' or 'role'."}, 'employmentType': {'enum': ['fulltime', 'parttime', 'contract', 'internship', 'temporary', 'casual'], 'type': 'string', 'description': "Optional. Pass only when the user explicitly says 'full time' / 'part time' / 'contract' / 'internship' / 'temporary' / 'casual'."}, 'workModeStrict': {'type': 'boolean', 'description': "Optional. Set true only when the user says 'only remote' or similar absolute phrasing."}, 'sponsorship_only': {'type': 'boolean', 'description': "Optional. Set true when the user mentions 'visa sponsorship', 'sponsors visa', or 'H-1B' (or local equivalent)."}, 'posted_within_days': {'type': 'number', 'description': 'Optional. Limit to jobs posted within the last N days. Common values: 3, 7, 14, 30.'}}, 'description': 'Search args. Required: city. Optional filters surface only when the user explicitly mentions them — omit otherwise. job_title+city uses indexed snapshot; company+city (optional job_title) uses legacy DB match.'}, 'refine_recommendations': {'type': 'object', 'properties': {'city': {'type': 'string'}, 'job_title': {'type': 'string'}, 'session_id': {'type': 'string', 'description': "Prior response's session_id, for memory continuation."}, 'exclude_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Job Id strings from prior result to exclude from this round.'}, 'liked_indexes': {'type': 'array', 'items': {'type': 'number'}, 'description': "1-based positions from prior numbered list to use as seed (e.g. [1] = 'more like #1')."}, 'liked_job_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Job Id strings to use as seed (alternative to liked_indexes).'}, 'disliked_indexes': {'type': 'array', 'items': {'type': 'number'}, 'description': '1-based positions to suppress similar to.'}, 'disliked_job_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Job Id strings to suppress similar to.'}}, 'description': "Refine args. Pass exclude_ids (array of Job Id strings from prior result) and session_id always. For 'more like #N': pass liked_indexes=[N] or liked_job_ids=[<Job Id>]. For 'less like #N': pass disliked_indexes=[N] or disliked_job_ids=[<Job Id>]. job_title/city optional — auto-filled from prior search via session memory."}}, 'additionalProperties': True}
Esquema de entrada
{'type': 'object', 'properties': {'action': {'enum': ['prepare', 'save'], 'type': 'string', 'description': "Omit or 'prepare' = STEP 1 (server returns JD + resume + instructions for you to tailor). 'save' = STEP 2 (pass tailored_resume; server renders a PDF and saves it to the dashboard; requires sign-in)."}, 'job_id': {'type': 'string', 'description': "ID of a job from a prior search/refine result. Use the **Job Id** value from the prior search result's content text VERBATIM. Server fetches full JD from Mongo."}, 'company': {'type': 'string'}, 'job_title': {'type': 'string'}, 'parameters': {'type': 'object', 'additionalProperties': True}, 'session_id': {'type': 'string'}, 'user_email': {'type': 'string'}, 'resume_data': {'type': 'object', 'properties': {'skills': {'type': 'array', 'items': {'type': 'string'}}, 'profile': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'title': {'type': 'string'}, 'location': {'type': 'string'}}, 'additionalProperties': True}, 'summary': {'type': 'string'}, 'linkedin': {'type': 'string'}, 'education': {'type': 'array', 'items': {'type': 'object', 'properties': {'degree': {'type': 'string'}, 'bullets': {'type': 'array', 'items': {'type': 'string'}}, 'endDate': {'type': 'string'}, 'location': {'type': 'string'}, 'startDate': {'type': 'string'}, 'description': {'type': 'string'}, 'institution': {'type': 'string'}}, 'additionalProperties': True}}, 'languages': {'type': 'array', 'items': {'type': 'string'}}, 'experience': {'type': 'array', 'items': {'type': 'object', 'properties': {'title': {'type': 'string'}, 'bullets': {'type': 'array', 'items': {'type': 'string'}}, 'company': {'type': 'string'}, 'endDate': {'type': 'string'}, 'location': {'type': 'string'}, 'startDate': {'type': 'string'}, 'description': {'type': 'string'}}, 'additionalProperties': True}}, 'personalHighlights': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'PREFERRED shape — structured resume per utils/tailor/types.ts ResumeTree. Server, widget, and main-site PDF template all consume this exact shape. Collect these fields from the user before calling when possible.', 'additionalProperties': True}, 'resume_text': {'type': 'string', 'description': "User's resume content (plain text or JSON Resume as string). Fallback when resume_data is not provided."}, 'user_profile': {'type': 'object', 'description': 'Optional main-site profile object; used as a fallback source for name/title/contact/experience when resume_data and resume_text are both absent.', 'additionalProperties': True}, 'tailor_resume': {'type': 'object', 'description': 'Optional wrapper containing the same fields above (legacy shape).', 'additionalProperties': True}, 'resume_content': {'type': 'string'}, 'job_description': {'type': 'string', 'description': 'Full JD text when the user pastes it directly (alternative to job_id).'}, 'tailored_resume': {'type': 'object', 'description': 'STEP 2 only: the tailored resume you generated, as a JSON Resume object (or a JSON string). The server renders it to PDF and stores it on profile.applications[job_id].resumeTailor.', 'additionalProperties': True}, 'customization_level': {'enum': ['light', 'moderate', 'heavy'], 'type': 'string'}}, 'additionalProperties': True}
Cambios recientes en herramientas
Servidores MCP similares
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…