Skip to main content
Glama
kula-ai

@kula-ai/mcp-server

Official
by kula-ai

create_interview

Schedule an interview against a candidate's application. Calendar invites and conference links are provisioned asynchronously.

Instructions

Schedule an interview against an application. Calendar invites and conference URL are provisioned asynchronously — subscribe to the interview.event.created webhook to receive the fully-provisioned interview.

Typical workflow:

  1. Plan-driven: get_interview_plan → pick a stage_activity_idcheck_interviewers_availabilitycreate_interview with stage_activity_id (scorecard config inherits from the activity; pass scorecard_template_id only when stage_activity_id is NOT set).

  2. Ad-hoc: list_valid_organizers (organizer_id) → list_applications (application_id) → check_interviewers_availabilitycreate_interview.

Where to discover IDs:

  • application_idlist_applications

  • organizer_idlist_valid_organizers (filtered by job_id)

  • interviewer_idslist_users (any active user)

  • office_idlist_offices (required when location=onsite)

  • host_idlist_conference_hosts (required when location=zoom; must be in interviewer_ids)

  • stage_activity_idget_interview_plan

  • interviewer_template_id / candidate_template_idlist_email_templates

  • scorecard_template_idlist_scorecard_templates

Constraints:

  • start_time must be on a 15-minute boundary with zero seconds (e.g. 09:00:00, 09:15:00) and in the future

  • duration_minutes must be a multiple of 15 (15..1440)

  • kind: one_on_one requires exactly one entry in interviewer_ids

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
organizer_idYesID of the user who organizes the interview. Use list_valid_organizers to discover.
application_idYesID of the application (candidate's submission to a job — NOT a candidate id).
start_timeYesISO 8601 datetime, on 15-min boundary, in the future
duration_minutesYesLength in minutes — multiple of 15, between 15 and 1440
timezoneYesIANA timezone name (e.g., America/Los_Angeles)
kindYesType of interview: one_on_one | panel
locationYesLocation: onsite | phone | zoom | google_meet | microsoft_teams | hackerrank
interviewer_idsYesIDs of users participating in the interview
stage_activity_idNoInterview-plan activity ID (from get_interview_plan). When set, scorecard config inherits from the activity.
office_idNoRequired when location=onsite
host_idNoRequired when location=zoom; must be in interviewer_ids
hackerrank_template_idNoRequired when location=hackerrank
nameNoDisplay name for the interview
calendar_event_visibilityNoCalendar invite visibility
ai_note_taker_enabledNo
ai_scorecard_assist_enabledNo
interviewer_template_idNoEmail template ID for interviewer invite body
candidate_template_idNoEmail template ID for candidate invite body
scorecard_template_idNoScorecard template ID. Silently ignored when stage_activity_id is set.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral traits: asynchronous provisioning of calendar invites and conference URLs, webhook subscription, parameter interactions (e.g., scorecard_template_id ignored when stage_activity_id set), and future constraints on start_time. This is comprehensive and beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections (workflow, discovery, constraints) and front-loaded with the main purpose. Every sentence adds necessary information without redundancy. It is appropriately detailed for a complex tool with 19 parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (19 parameters, 8 required, no output schema), the description fully compensates by explaining workflows, ID discovery, constraints, and parameter interactions. It also highlights asynchronous behavior and webhook subscription, providing a complete picture for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 89%, but the description adds significant value: it explains the relationship between stage_activity_id and scorecard_template_id, provides discovery sources for each ID, and clarifies constraints like 'host_id required when location=zoom' and 'kind: one_on_one requires exactly one interviewer.' This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Schedule an interview against an application' and distinguishes from sibling tools like cancel_interview and update_interview. It provides specific verb+resource and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly details two typical workflows (plan-driven and ad-hoc), explains when to use stage_activity_id vs scorecard_template_id, and lists discovery methods for all IDs. It also includes constraints, offering clear guidance on when to use this tool and how to prepare.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kula-ai/kula-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server