What this MCP does
Tracks job applications, interviews, deadlines, notes, analyses, resumes, cover letters, and interview materials.
Tools
Input schema
{'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'}}}
Input schema
{'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)$'}}}
Input schema
{'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)$'}}}
Input schema
{'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)$'}}}
Input schema
{'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)$'}}}
Input schema
{'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)$'}}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'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)'}}}
Input schema
{'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'}}}
Input schema
{'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)$'}}}
Input schema
{'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'}}}
Recent tool changes
Similar MCP servers
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 …