← WebMCP Directory

Tool tree

interview-webmcp.vercel.app

Health & EducationTools verified
Website
An agent-native mock interview app. Ask ChatGPT to start an interview, then answer on the page.
Explore capabilities
    set_candidate_profileAction

    Set or update the candidate's field, target position, years of experience, and skills. Call this FIRST before starting an interview.

    View tool JSON
    {
      "name": "set_candidate_profile",
      "kind": "act",
      "impl": "imperative",
      "description": "Set or update the candidate's field, target position, years of experience, and skills. Call this FIRST before starting an interview.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Broad field, e.g. 'Software Engineering'."
          },
          "position": {
            "type": "string",
            "description": "Specific role, e.g. 'Senior Backend Engineer'."
          },
          "experienceYears": {
            "type": "number",
            "minimum": 0,
            "maximum": 50
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Concrete technologies/skills, e.g. ['Python','AWS','PostgreSQL']."
          },
          "focusAreas": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional weak spots the candidate wants to drill."
          }
        },
        "required": [
          "field",
          "position",
          "experienceYears",
          "skills"
        ],
        "additionalProperties": false
      }
    }
    start_interviewAction

    Begin the mock interview. YOU (the AI) must write ALL the interview questions yourself, right now, in this single call — there is no built-in question bank. Pass them as the `questions` array, each genuinely tailored to the candidate's profile (use their exact field/position/skills/experience — vary the type across behavioral, technical, situational, system_design, culture_fit). After this call, IMMEDIATELY call `run_interview` (no arguments) — that ONE call runs the entire ask/wait/evaluate loop for every question and blocks until the candidate finishes, returning the full transcript and final report at the end. Do not try to ask questions one at a time yourself.

    View tool JSON
    {
      "name": "start_interview",
      "kind": "act",
      "impl": "imperative",
      "description": "Begin the mock interview. YOU (the AI) must write ALL the interview questions yourself, right now, in this single call — there is no built-in question bank. Pass them as the `questions` array, each genuinely tailored to the candidate's profile (use their exact field/position/skills/experience — vary the type across behavioral, technical, situational, system_design, culture_fit). After this call, IMMEDIATELY call `run_interview` (no arguments) — that ONE call runs the entire ask/wait/evaluate loop for every question and blocks until the candidate finishes, returning the full transcript and final report at the end. Do not try to ask questions one at a time yourself.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "difficulty": {
            "type": "string",
            "enum": [
              "junior",
              "mid",
              "senior"
            ]
          },
          "questions": {
            "type": "array",
            "minItems": 3,
            "maxItems": 20,
            "description": "ALL the questions for this interview, in order, written by you and tailored to the candidate's profile. Vary the `type` across the list.",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string",
                  "description": "The exact question text."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "behavioral",
                    "technical",
                    "system_design",
                    "situational",
                    "culture_fit"
                  ]
                },
                "rubricPoints": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "2-4 bullet points describing what a strong answer covers."
                },
                "hint": {
                  "type": "string",
                  "description": "Optional short on-screen hint for the candidate."
                }
              },
              "required": [
                "text",
                "type"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "questions"
        ],
        "additionalProperties": false
      }
    }
    run_interviewAction

    Runs the full interview using the exact questions you passed to `start_interview`. For each one: displays it, WAITS for the candidate to type and submit their answer, evaluates it, and moves to the next — automatically, without any further tool calls from you. Returns once, at the very end, with every question/answer/evaluation and the final summary report. Call this immediately after `start_interview`.

    View tool JSON
    {
      "name": "run_interview",
      "kind": "act",
      "impl": "imperative",
      "description": "Runs the full interview using the exact questions you passed to `start_interview`. For each one: displays it, WAITS for the candidate to type and submit their answer, evaluates it, and moves to the next — automatically, without any further tool calls from you. Returns once, at the very end, with every question/answer/evaluation and the final summary report. Call this immediately after `start_interview`.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    get_transcriptAnswer

    Returns the full list of asked questions, given answers, and evaluations so far.

    View tool JSON
    {
      "name": "get_transcript",
      "kind": "answer",
      "impl": "imperative",
      "description": "Returns the full list of asked questions, given answers, and evaluations so far.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }
    end_interviewAction

    Ends the session and produces a final report: overall score, strengths, development areas, hire recommendation, and next steps. Only call this after `remaining_questions` reached 0 from `ask_question`, OR the candidate has explicitly asked to stop early. If questions are still remaining and the candidate hasn't asked to stop, this call will be REJECTED — call `ask_question` again instead.

    View tool JSON
    {
      "name": "end_interview",
      "kind": "act",
      "impl": "imperative",
      "description": "Ends the session and produces a final report: overall score, strengths, development areas, hire recommendation, and next steps. Only call this after `remaining_questions` reached 0 from `ask_question`, OR the candidate has explicitly asked to stop early. If questions are still remaining and the candidate hasn't asked to stop, this call will be REJECTED — call `ask_question` again instead.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "force": {
            "type": "boolean",
            "description": "Set true ONLY if the candidate explicitly asked to end early / skip remaining questions. Otherwise omit — ending with unanswered questions remaining is rejected by default."
          }
        },
        "additionalProperties": false
      }
    }
    reset_sessionAction

    Clear all state. Returns to the profile screen so a new interview can start.

    View tool JSON
    {
      "name": "reset_session",
      "kind": "act",
      "impl": "imperative",
      "description": "Clear all state. Returns to the profile screen so a new interview can start.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      }
    }