jobctl
Was dieses MCP kann
Tracks job applications, interviews, deadlines, notes, analyses, resumes, cover letters, and interview materials.
Tools
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'raw': {'type': 'string', 'description': 'Free-form line: "Company, Role, prio A|B|C, due <date>, remote|hybrid|onsite, via <source>, https://…, in <location>, applied <date>"'}, 'url': {'type': 'string', 'description': 'Link to the job posting'}, 'role': {'type': 'string'}, 'remote': {'enum': ['remote', 'hybrid', 'onsite', 'unknown'], 'type': 'string'}, 'source': {'type': 'string', 'description': 'LinkedIn, referral, recruiter, Easy Apply…'}, 'status': {'enum': ['started_apply', 'waiting_referral', 'applied', 'waiting', 'interview', 'offer', 'accepted', 'rejected', 'no_response', 'on_hold', 'withdrawn', 'archived'], 'type': 'string'}, 'company': {'type': 'string'}, 'location': {'type': 'string'}, 'priority': {'enum': ['A', 'B', 'C'], 'type': 'string', 'description': 'A = top priority'}, 'applied_at': {'type': 'string', 'description': 'ISO date YYYY-MM-DD'}, 'cv_variant': {'type': 'string', 'description': 'Which CV was sent: DE, EN, AI-focused…'}, 'match_notes': {'type': 'string', 'description': 'Markdown match assessment: why the candidate fits this role — strengths vs requirements, gaps, level/salary advice, process notes. Save your vacancy analysis here so it is not lost; shown as an expandable section in the dashboard.'}, 'next_action': {'type': 'string', 'description': 'e.g. "follow-up", "thank-you email"'}, 'remote_note': {'type': 'string', 'description': 'e.g. "2 days office"'}, 'salary_asked': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'What the candidate asked for — yearly gross EUR as a plain number, e.g. 110000'}, 'salary_range': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Posting salary range upper bound — yearly gross EUR, plain number'}, 'next_action_due': {'type': 'string', 'description': 'ISO date YYYY-MM-DD'}, 'salary_range_min': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Posting salary range lower bound — yearly gross EUR, plain number'}, 'next_interview_at': {'type': 'string', 'description': 'ISO datetime, e.g. 2026-07-20T14:00:00+02:00'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'text'], 'properties': {'text': {'type': 'string', 'minLength': 1}, 'application_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'markdown'], 'properties': {'markdown': {'type': 'string', 'minLength': 1, 'description': 'The analysis as markdown'}, 'application_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'kind', 'filename', 'data_base64'], 'properties': {'kind': {'enum': ['cv', 'cover_letter'], 'type': 'string'}, 'mime': {'type': 'string', 'description': 'Optional; inferred from the filename extension when omitted'}, 'filename': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'data_base64': {'type': 'string', 'minLength': 1, 'description': 'Base64-encoded file bytes'}, 'application_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'interview_id', 'filename', 'data_base64'], 'properties': {'mime': {'type': 'string', 'description': 'Optional; inferred from the filename extension when omitted'}, 'filename': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'data_base64': {'type': 'string', 'minLength': 1, 'description': 'Base64-encoded file bytes'}, 'interview_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'application_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'range': {'enum': ['today', 'tomorrow', 'week'], 'type': 'string', 'description': 'today (default), tomorrow, or week (today plus the next 6 days)'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': 'Search in company/role'}, 'view': {'enum': ['active', 'interviewing', 'waiting', 'archive', 'all'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'status': {'type': 'string', 'description': 'Comma-separated: started_apply, waiting_referral, applied, waiting, interview, offer, accepted, rejected, no_response, on_hold, withdrawn, archived'}, 'priority': {'enum': ['A', 'B', 'C'], 'type': 'string'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['application_id', 'scheduled_at'], 'properties': {'links': {'type': 'array', 'items': {'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string'}, 'label': {'type': 'string', 'description': 'e.g. "Prep materials", "Meeting link"'}}}, 'description': 'Related links: prep materials, meeting URL, docs'}, 'recap': {'type': 'string', 'description': 'Short recap of what was discussed'}, 'status': {'enum': ['planned', 'done'], 'type': 'string', 'description': 'planned (default) or done'}, 'attendees': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'url': {'type': 'string', 'description': 'Profile link, e.g. LinkedIn'}, 'name': {'type': 'string'}}}, 'description': 'Who attends, each with an optional profile link'}, 'scheduled_at': {'type': 'string', 'description': 'ISO datetime with offset, e.g. 2026-07-20T14:00:00+02:00'}, 'application_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'url': {'type': 'string', 'description': 'Link to the job posting'}, 'role': {'type': 'string'}, 'remote': {'enum': ['remote', 'hybrid', 'onsite', 'unknown'], 'type': 'string'}, 'source': {'type': 'string', 'description': 'LinkedIn, referral, recruiter, Easy Apply…'}, 'status': {'enum': ['started_apply', 'waiting_referral', 'applied', 'waiting', 'interview', 'offer', 'accepted', 'rejected', 'no_response', 'on_hold', 'withdrawn', 'archived'], 'type': 'string'}, 'company': {'type': 'string'}, 'location': {'type': 'string'}, 'priority': {'enum': ['A', 'B', 'C'], 'type': 'string', 'description': 'A = top priority'}, 'applied_at': {'type': 'string', 'description': 'ISO date YYYY-MM-DD'}, 'cv_variant': {'type': 'string', 'description': 'Which CV was sent: DE, EN, AI-focused…'}, 'match_notes': {'type': 'string', 'description': 'Markdown match assessment: why the candidate fits this role — strengths vs requirements, gaps, level/salary advice, process notes. Save your vacancy analysis here so it is not lost; shown as an expandable section in the dashboard.'}, 'next_action': {'type': 'string', 'description': 'e.g. "follow-up", "thank-you email"'}, 'remote_note': {'type': 'string', 'description': 'e.g. "2 days office"'}, 'salary_asked': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'What the candidate asked for — yearly gross EUR as a plain number, e.g. 110000'}, 'salary_range': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Posting salary range upper bound — yearly gross EUR, plain number'}, 'next_action_due': {'type': 'string', 'description': 'ISO date YYYY-MM-DD'}, 'salary_range_min': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Posting salary range lower bound — yearly gross EUR, plain number'}, 'next_interview_at': {'type': 'string', 'description': 'ISO datetime, e.g. 2026-07-20T14:00:00+02:00'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Calcgrid
Runs general-purpose calculators for loans, dates, lunar and solar terms, time zones, units, and a larger catalog of specialized …
Local MCP
Connects AI assistants to Mac email, calendars, reminders, notes, tasks, files, Microsoft 365, Todoist, spreadsheets, and daily b…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
hopi
Provides read-only calculators, converters, validators, text utilities, encoders, and generators for everyday and technical tasks.
mu
Supports personal and collaborative tasks including web browsing, app creation, blogs, bookmarks, discussions, and contact manage…
John's Essentials
Analyzes and converts documents, images, audio, video, archives, data files, and other media formats, with PDF chat and file insp…
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …