mcp server
JobMojito
Run AI interviews, manage candidates and read hiring analytics on JobMojito.
Description as published by the maintainer. Source
- version 1.0.0
- active
- analytics
active — Registry entry last updated 2026-07-30. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.
What this server can do
29 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
create_catalogue_directory(id, name, status, tags_sub, coach_plan, content_md, parent_tag, visibility, description, merchant_id, cover_image_url, mojito_language_code, tags_interview_set_filter)- [Coaching catalogue] Create a directory (page) in the coaching portal catalogue. A directory nests other directories (`tags_sub`), lists coaching sessions whose own `tags` match its `tags_interview_set_filter`, and can carry a fully custom Markdown page (`content_md`) with `[sessions]`, `[directory:…]`, `[session:…]` and `[plan-progress]` directives. Coaching-platform feature. Creates a directory (page) in the coaching portal catalogue. A directory nests other directories through `tags_sub`, lists coaching sessions through `tags_interview_set_filter`, and can replace the default grid with a custom Markdown page through `content_md`. The id you choose is the catalogue URL segment and cannot be changed afterwards. Required: id, name.
create_interview(code, name, tags, type, status, location, recording, visibility, description, is_embedded, merchant_id, result_view, max_duration, max_followups, custom_scoring, interview_tone, interview_type, cover_image_url, seniority_level, welcome_message, description_long, interview_length, interview_salary, thank_you_message, additional_context, hiring_for_company, interview_attempts, instructional_video, interview_department, mojito_language_code, recruiter_profile_id, interview_template_id, candidate_expectations, include_closing_prompt, pdf_export_auto_config, recording_full_session, required_pronunciation, knowledge_base_store_id, questions_random_subset, include_rapport_question, interview_available_till, use_enhanced_expectations, candidate_video_introduction, interview_conversation_speed, result_enable_edit_transcript, instructional_video_custom_text)- [Interviews] Create a new interview and auto-generate its question sequence from position data. The `interview_template_id` you pass also sets the modality (voice-only vs realtime/pre-recorded avatar) — see `list_avatars`. Creates a new interview / coaching / assessment definition, generates its description, questions and candidate expectations via AI, and provisions default steps. Optionally provisions an embed key. Required: name, location, interview_template_id, mojito_language_code, status, type, visibility.
create_interview_from_questions(code, name, tags, type, status, location, questions, recording, visibility, description, is_embedded, merchant_id, result_view, max_followups, custom_scoring, interview_tone, interview_type, cover_image_url, seniority_level, welcome_message, description_long, interview_salary, thank_you_message, additional_context, hiring_for_company, interview_attempts, instructional_video, interview_department, mojito_language_code, recruiter_profile_id, disable_deduplication, interview_template_id, candidate_expectations, pdf_export_auto_config, recording_full_session, required_pronunciation, knowledge_base_store_id, questions_random_subset, interview_available_till, candidate_expectations_json, candidate_video_introduction, interview_conversation_speed, result_enable_edit_transcript, instructional_video_custom_text)- [Interviews] Create a new interview from an explicit array of questions. Creates a new interview definition set from a caller-provided array of questions, builds its default and generated steps, optionally activates it, and optionally creates an embed key. Required: name, location, interview_template_id, mojito_language_code, description, status, type, visibility, questions.
create_persona(code, name, tags, portal, status, recording, visibility, description, is_embedded, merchant_id, result_view, max_duration, opening_line, cover_image_url, welcome_message, persona_role_user, thank_you_message, interview_attempts, interview_location, persona_role_avatar, mojito_language_code, recruiter_profile_id, interview_template_id, persona_avatar_who_is, candidate_expectations, recording_full_session, persona_avatar_progress, persona_avatar_knowledge, candidate_video_introduction, interview_conversation_speed, persona_avatar_end_conditions)- [Interviews] Create a role-play persona: an avatar that plays a defined role in a free-form conversation instead of a scored Q&A interview. Set `persona_role_avatar`/`persona_role_user` for the roles and `opening_line` for the avatar's first spoken line (defaults to a generic 'Hello'). Coaching-platform feature. FIRST DECIDE `portal`. This endpoint creates two different products and the default is NOT the recruiter one: - `portal: "interview"` — an INTERVIEW ROLE-PLAY. Use this whenever the goal is to ASSESS or SCREEN candidates: hiring, assessments, sales role-plays for job applicants, anything a recruiter runs. Candidates are invited through the normal invitation flow, results appear in the recruiter's result list, it is billed against merchant credits, and attempts are capped via `interview_attempts` — exactly like an interview. - `portal: "coaching"` (THE DEFAULT) — a coaching persona for practice/training on the coaching portal. Consumed against the mentee's own coaching credits, self-started from the catalogue, and its results are NOT visible to recruiters. Omitting `portal` gives you this one, so pass `portal: "interview"` explicitly for any recruiting/assessment use case. The conversation itself behaves identically in both. The avatar plays a defined role in a free-form conversation instead of running a scored Q&A interview. No AI question/description generation runs; the persona role fields ARE the configuration. The session runs as: a welcome message → the avatar's OPENING LINE (the first thing it says, set via `opening_line`) → the candidate replies and the free-form role-play begins → a closing message. Because there is no question list, `opening_line` is how the avatar starts the scene — set it to a concrete in-character line; if omitted it defaults to a generic "Hello". Set `welcome_message` and `thank_you_message` too — omitting them leaves the generic platform defaults. Also set `candidate_expectations`: it is the yardstick the session is scored against. The four avatar prompts divide up as: `persona_avatar_who_is` (identity and what drives it), `persona_avatar_knowledge` (the private facts it may use), `persona_avatar_progress` (how the conversation is allowed to move forward, and what gates the later personal details), and `persona_avatar_end_conditions` (when to stop). Without `persona_avatar_progress` the avatar has no defined arc and tends to either concede immediately or never concede at all. Provisions the default conversational steps and optionally an embed key. Required: name, interview_template_id, mojito_language_code, status, visibility, persona_role_avatar, persona_role_user.
generate_interview_report(store_file, export_type, interview_result_id, interview_result_ids, export_features_result)- [Results] Generate an interview result report (HTML/PDF/JSON) for a completed interview. The report is decision-support material for a human reviewer, not an automated hiring decision. Generates an interview result report as a PDF (returns a signed URL), raw HTML, or structured JSON. Provide either `interview_result_id` for a single result or `interview_result_ids` for a combined multi-result report. Required: export_type.
generate_interview_url(type, hide_menu, merchant_id, interview_id, interview_result_id, interview_profile_id)- [Interviews] Generate a signed public interview URL/token. Generates a public, token-signed URL for an existing interview, profile, or result. The required id fields depend on `type`. Required: type.
get_catalogue_directory(id, merchant_id)- [Coaching catalogue] Read one catalogue directory in full: its settings, its custom Markdown page (`content_md`), its resolved sub-directories, and the coaching sessions its tag filter currently matches — which is how you verify that a session's `tags` actually place it in this directory. Read before updating: `content_md`, `tags_sub` and `tags_interview_set_filter` are replaced wholesale, so you need the current value to extend it. Reads one catalogue directory in full: its settings, its custom Markdown page (`content_md`), the sub-directories it nests, and the coaching sessions its `tags_interview_set_filter` currently matches. Read a directory before updating it — `content_md`, `tags_sub` and `tags_interview_set_filter` are replaced wholesale by catalogue-tag-update, so you need the current value to extend rather than overwrite it. Required: id.
get_documentation(url, max_chars)- Fetch the full content of a single JobMojito documentation page. Accepts a URL returned by `search_documentation`. For developer docs the clean Markdown (.md) variant is fetched automatically. Only developer.jobmojito.com and help.jobmojito.com URLs are allowed. Required: url.
get_interview_definition(position_id)- [Interviews] Get the definition/configuration of an interview (position). Retrieves the interview definition for a given interview-definition id or position id. Returns the compiled `calc_definition_json` plus basic metadata. Access is subject to the caller's row-level security. Required: position_id.
get_interview_result_details(interview_result_id, get_signed_recordings)- [Results] Get full interview result details including transcript and scores. Scores are assistive output for a human reviewer. Returns an interview result with its full transcript and AI assessment. Optionally attaches signed recording URLs. Required: interview_result_id.
get_merchant_analytics(limit, offset, date_to, date_from, merchant_id, interview_id)- [Results] Get the merchant's daily event analytics. Daily event-count time-series for a merchant over a date range (the admin-portal analytics events graph), scoped to your token's merchant (or a merchant_id override). Optionally drilled to a single interview. Capped at 1000 records per page. Note: only day/event combinations with a non-zero count are returned — any day/event pair absent from the response should be treated as a count of 0 by the caller. Required: date_from, date_to.
get_merchant_credit_usage(limit, offset, merchant_id, interview_id)- [Results] Get the merchant's credit usage. Per-event credit-usage ledger for a merchant: every billable analytics event (interview, pre-screening, public avatar, simulation, …) that consumed credits, ordered most recent first. Scoped to your token's merchant, or a merchant_id override for admins / sub-merchant operators. The credits consumed by each event are in stats.credit_amount. Capped at 1000 records per page.
get_merchant_status(merchant_id)- [Admin] Get a merchant status snapshot: credit balances, subscription, pending-work counts, candidate/result totals, and invitation headroom. Status snapshot for a merchant: interview-credit balances, subscription type/status, pending-work counts (undecided / ongoing / uncredited interviews), candidate & result totals with 14-day history, and invitation headroom. Scoped to your token's merchant (or a merchant_id override for admins / sub-merchant operators). Also echoes the caller's profile_id and default_merchant_id from the token, plus the effective merchant_id.
jobmojito_configuration- Show the interactive JobMojito merchant picker (UI). ALWAYS call this when the user wants to choose, switch, or set a merchant, or when a tool needs a `merchant_id` and none is selected. It renders a searchable picker with clickable options. Do NOT list merchants as text or ask the user to type a name — render this picker instead. After calling it, STOP and wait for the user's selection; then pass `merchant_id=<chosen id>` on every JobMojito call (omit it for the user's own account).
list_avatars(type, limit, offset, status, filter_text, merchant_id, include_public, include_archived, mojito_language_code)- [Admin] List available avatar/voice templates. Each item's `type` decides the interview modality: `interactive_elevenlabs` = voice-only (no video avatar); `interactive_heygen` = realtime interactive avatar (video); `offline_heygen` = pre-recorded, non-interactive avatar. An item's `id` is the `interview_template_id` you pass to the create-interview tools, so pick the template whose type matches the experience you want. Note: `offline_elai` and `offline_synthesia` are legacy integrations that may still appear here but cannot be used to create new interviews. Paginated list of a merchant's avatar templates (the admin-portal avatars list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page.
list_candidates(tab, limit, offset, source, order_by, filter_text, merchant_id, filter_emoji)- [Candidates] List the merchant's candidates. Paginated list of a merchant's candidates (the admin-portal candidates list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page.
list_catalogue_directories(limit, offset, status, parent_tag, visibility, filter_text, merchant_id, include_public, mojito_language_code)- [Coaching catalogue] List the coaching-catalogue directories you can see (your merchant's own plus the platform-wide public ones). Start here to find a directory id, to pick a parent for a new one, or to walk the tree with `parent_tag`; `is_start_directory` marks the page the catalogue opens on. The custom Markdown page is not included — read it with get_catalogue_directory. Paginated list of the coaching-catalogue directories visible to you: your merchant's own, plus the platform-wide `public` ones unless you set include_public=false. Use it to find a directory id before updating one, to pick a `parent_tag`, or to walk the tree with `parent_tag`. The custom Markdown page is not included — fetch it per directory with catalogue-tag-get.
list_interview_results(tab, step, type, limit, risks, offset, order_by, filter_text, merchant_id, filter_emoji, interview_id, profile_interview_id)- [Results] List the merchant's interview results. Paginated list of a merchant's interview results (the admin-portal results list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page.
list_interviews(type, limit, offset, status, show_demo, filter_text, merchant_id, show_public, filter_emoji)- [Interviews] List the merchant's interview definitions. Paginated list of a merchant's interview definitions (the admin-portal interview list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page.
list_languages- [Admin] List supported platform (mojito) languages: the `code` to pass as `mojito_language_code`, English/local names, SVG flag URL, per-interface enablement flags, and Azure speech accents. Returns all supported platform (mojito) languages: the mojito language code, English and local names, and an SVG flag image URL. Use the `code` as `mojito_language_code` when creating interviews or personas.
list_my_merchants(search)- FALLBACK merchant list for clients WITHOUT UI support. Do NOT use this to choose or switch merchants when a UI is available — call `jobmojito_configuration` instead (it renders an interactive picker), and do not hand-format a merchant list as text. Use this tool only when the client cannot render MCP App UI. Returns the user's own account plus any sub-merchants; after a pick, pass `merchant_id=<chosen id>` on subsequent calls (OMIT for the own account).
list_sub_merchants(limit, offset, order_by, filter_text, merchant_id)- [Admin] List sub-merchants under the merchant account. Paginated list of the sub-merchants the caller administers (the admin-portal sub-merchants list). Visibility is enforced by row-level security. Capped at 1000 records per page.
register_users_for_interview(users, is_test, hide_menu, send_email, hide_iframe, merchant_id, interview_id)- [Interviews] Register users/candidates for a specific interview and return their personal interview links. Registers (or updates) one or more candidate profiles for an interview and returns a one-time interview URL for each. Accepts a Supabase user JWT (merchant/admin) or the service key (merchant_id then required). Required: users, interview_id.
request_another_interview_attempt(interview_result_id)- [Results] Re-open a submitted interview result so the candidate can retry. Marks a submitted (active + completed) interview result as unsuccessful so the candidate can retake it. Resets the result to draft and clears the recruiter decision. Required: interview_result_id.
search_documentation(limit, query, source)- Search ALL JobMojito documentation. This is the single entry point. One call searches both documentation sources in parallel and returns a merged, source-labeled list — you do not need to choose a source or call a separate tool: • "developer" — developer.jobmojito.com: API reference, request/response schemas, tables, webhooks, code examples, integration guides. • "help" — help.jobmojito.com: recruiter, candidate, and administrator product guides (how the platform behaves for end users). Use this whenever you need to understand how a feature, endpoint, field, or workflow works — including before calling an action tool you're unsure about. Then call `get_documentation(url)` with a returned URL to read the full page. Required: query.
set_interview_state(status, is_embedded, position_id)- [Interviews] Change the state of an interview/position (e.g. open, closed). Changes the lifecycle status of an interview or position (draft, active, archived, preparing, completed, deleted) and/or manages its embed key. Provide at least one of `status` or `is_embedded`. Required: position_id.
update_catalogue_directory(id, name, status, tags_sub, coach_plan, content_md, visibility, description, cover_image_url, mojito_language_code, tags_interview_set_filter)- [Coaching catalogue] Update a coaching catalogue directory: rename it, change which sessions it lists (`tags_interview_set_filter`), re-order its sub-directories (`tags_sub`), or author its custom Markdown page (`content_md`). Only the fields you send are changed. Coaching-platform feature. Updates a directory (page) of the coaching portal catalogue. Only the fields present in the request body are written — everything else keeps its current value, and sending null clears a nullable field. Use it to rename a directory, re-point which sessions it lists (`tags_interview_set_filter`), re-order or replace its sub-directories (`tags_sub`), or author its custom Markdown page (`content_md`). Required: id.
update_interview(code, name, tags, type, status, location, recording, coach_plan, visibility, description, position_id, result_view, type_credit, max_duration, max_followups, custom_scoring, interview_tone, interview_type, cover_image_url, seniority_level, description_long, interview_salary, hiring_for_company, interview_attempts, interview_department, recruiter_profile_id, interview_template_id, candidate_expectations, pdf_export_auto_config, recording_full_session, required_pronunciation, knowledge_base_store_id, questions_random_subset, interview_available_till, candidate_expectations_json, candidate_video_introduction, interview_conversation_speed, result_enable_edit_transcript)- [Interviews] Update the configuration of an existing interview/position: name, description, avatar template, recording, scoring, tags and the rest of the create-time settings. Only the fields you send are changed. The question list is NOT updated by this tool — nor are the welcome and thank-you messages, which are stored as questions, nor the language, which the existing questions are already written in. Use `tags` to place a coaching session into a catalogue directory. Updates the configuration of an existing interview (single-stage) or position (multi-stage). Only the fields present in the request body are written — everything else keeps its current value, and sending null clears a nullable field. The question list is out of scope: questions, and the welcome / thank-you messages that are stored as questions, are not changed by this endpoint. For the same reason `mojito_language_code` cannot be changed — the existing questions stay in the language they were written in — so create a new interview to change language. A multi-stage position only carries the shared identity fields (name, code, location, description, description_long, cover_image_url, department, salary, available_till, recruiter, status, visibility, hiring_for_company); sending an interview-only field for a position is a 422. Required: position_id.
upload_knowledge_base_document(file, name, merchant_id, knowledge_base_store_id)- [Knowledge base] Upload and process a knowledge base document (multipart form-data). Uploads a document to a knowledge base store and queues it for processing. Accepts the file either as multipart/form-data (binary `file`) or as application/json (base64 `file`). Required: knowledge_base_store_id, file.
Last successful function declaration observed on . Source: https://mcp.jobmojito.com/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.jobmojito.com/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 1.0.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-30 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-07-30 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 29 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.jobmojito.com | |
| mcp endpoint status | ok | The server listed 29 functions when asked. | as of probe | mcp.jobmojito.com |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json