Eightfold MCP Tools
Tools offered by Eightfold MCP
Select scopes...
{"versions": ["1.0.0", "0.1.0"], "tools_data": [{"name": "career_interests", "description": "Manage the current user's career interests - the skills they want to learn (skill interests / skill goals) and the roles they want to grow into (role interests / role goals). Career interests are aspirations, not what the user already has on their profile: use the profile_skills tool for the skills already on the profile.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['view_career_interests', 'add_skill_interest', 'remove_skill_interest', 'add_role_interest', 'remove_role_interest']\n\nSUBTOOLS:\n- view_career_interests: List the current user's career interests - the skills they want to learn and the roles they want to grow into. Check before adding or removing an interest; also the way to get a role_id to remove.\n- add_skill_interest: Add one skill the current user is interested in learning (a skill interest / skill goal). One per call; a skill already in the interests is a no-op.\n- remove_skill_interest: Remove one skill from the current user's skill interests (skill goals). One per call; a skill that is not an interest is a no-op.\n- add_role_interest: Add one role the current user is interested in growing into (a role interest / role goal). One per call; a role already in the interests is a no-op. Search roles first to get the role_id.\n- remove_role_interest: Remove one role from the current user's role interests (role goals). One per call; a role that is not an interest is a no-op. Use view_career_interests to get the role_id.\n\nRESPONSE FORMATS:\n- view_career_interests: {\n 'skill_interests': List of skill names the user wants to learn\n 'role_interests': List of {'role_id': int, 'title': str} the user wants to grow into\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"NoParams": {"properties": {"discriminator": {"const": "view_career_interests", "description": "REQUIRED: Must be 'view_career_interests' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "NoParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__1": {"properties": {"role_id": {"description": "ID of the role to add to or remove from the user's role interests. Use the roles tool to look up a role ID by title.", "title": "Role Id", "type": "integer"}, "discriminator": {"const": "add_role_interest", "description": "REQUIRED: Must be 'add_role_interest' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "RoleInterestParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__2": {"properties": {"role_id": {"description": "ID of the role to add to or remove from the user's role interests. Use the roles tool to look up a role ID by title.", "title": "Role Id", "type": "integer"}, "discriminator": {"const": "remove_role_interest", "description": "REQUIRED: Must be 'remove_role_interest' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "RoleInterestParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__1": {"properties": {"skill_name": {"description": "Name of the skill to add to or remove from the user's skill interests.", "title": "Skill Name", "type": "string"}, "discriminator": {"const": "add_skill_interest", "description": "REQUIRED: Must be 'add_skill_interest' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "discriminator"], "title": "SkillInterestParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__2": {"properties": {"skill_name": {"description": "Name of the skill to add to or remove from the user's skill interests.", "title": "Skill Name", "type": "string"}, "discriminator": {"const": "remove_skill_interest", "description": "REQUIRED: Must be 'remove_skill_interest' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "discriminator"], "title": "SkillInterestParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"add_role_interest": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__1", "add_skill_interest": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__1", "remove_role_interest": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__2", "remove_skill_interest": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__2", "view_career_interests": "#/$defs/NoParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/NoParams"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__1"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__SkillInterestParams__2"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__1"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleInterestParams__2"}], "title": "Params"}}, "required": ["params"], "title": "career_interestsArguments", "type": "object"}}, {"name": "career_paths", "description": "Get career paths for the user - current role, potential next roles\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['get_career_paths']\n\nSUBTOOLS:\n- get_career_paths: Get career paths for the user - current role, potential next roles. Use this tool when a user asks about switching or exploring different roles or expresses interest in a specific role.", "version_spec": ">=1.0.0", "parameters": {"$defs": {"GetCareerPathsParams": {"properties": {"discriminator": {"const": "get_career_paths", "description": "REQUIRED: Must be 'get_career_paths' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "GetCareerPathsParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"get_career_paths": "#/$defs/GetCareerPathsParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/GetCareerPathsParams"}], "title": "Params"}}, "required": ["params"], "title": "career_pathsArguments", "type": "object"}}, {"name": "connections", "description": "\nComprehensive tool for managing mentorship, networking connections, profile preferences and searching for people.\n\nWhat is a mentorship connection?\n- Mentorship: A structured, goal-oriented relationship focused on growth and guidance. Typically includes a cadence\n (e.g., weekly, bi-weekly, monthly), defined skills or topics, and a duration (e.g., 3-6 months).\n- Basic networking: A lighter-weight connection such as a coffee chat or one-off intro intended for networking,\n discovery, or getting quick help.\n\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_people', 'create_connection', 'get_connection', 'list_connections', 'update_connection', 'get_mentorship_preferences', 'update_mentorship_preferences', 'get_networking_preferences', 'update_networking_preferences']\n\nSUBTOOLS:\n- search_people: Search people/profiles with filtering. Returns people profiles and available filters for refinement.\n\nUsage:\n- Initial search: provide only the *query* parameter (e.g., name, skills, title)\n- Refinement search: use *filters* parameter with *facet_value* from available_filters\n\nOnly use filter keys returned in *available_filters* from a prior search; do not guess filter names, since available filters vary by tenant.\n\nTo refine results:\n1. Run an initial search (query only) to obtain *available_filters*\n2. From *available_filters*, extract the category name (key) and facet_value (not display_value)\n3. Construct filters as {'category': ['facet_value1', 'facet_value2']}\n4. Pass this dictionary to narrow down results\n- create_connection: Send a request for a professional networking connection (mentorship or basic networking). Use 'mentorship' for formal, structured relationships with regular meetings to discuss career growth, skills development, and mentorship. Use 'basic' for informal connections like coffee chats or professional networking.\n- get_connection: Get details for a specific connection by connection ID. Shows status, messages, skills, topics, and other connection details\n- list_connections: List all mentorship and networking connections for the current user. Shows both active and past connections including mentorships and coffee chats.\n- update_connection: Update an existing connection by taking actions or modifying details. Actions include: accept, decline, request_intro_meeting, cancel, end, update_details.\n- get_mentorship_preferences: Get mentorship preferences including bio, topics, and availability for a user profile\n- update_mentorship_preferences: Update mentorship preferences for the current user, including bio and topics they can help with\n- get_networking_preferences: Get networking preferences including availability for mentoring and coffee chats\n- update_networking_preferences: Update networking preferences for the current user, including availability for mentoring and coffee chats\n\nEXAMPLES:\n- search_people: Examples:\n1. Initial search by text: query='Python developer'\n2. Search by name: query='Jane Smith'\n3. Refine only with a filter present in available_filters: if available_filters shows {\"filter_skills\": [{\"facet_value\": \"Python\", \"display_value\": \"Python\"}]}, use filters={'filter_skills': ['Python']} (use facet_value, not display_value).\n- create_connection: \n> \"Send a mentorship request to John Doe\" \u2192 use connection_type \"mentorship\" and include the profile_enc_id for John Doe\n> \"Ask Jane Smith for networking over a coffee chat\" \u2192 use connection_type \"basic\" and include the profile_enc_id for Jane Smith\n- get_connection: \n> Get my connection details with Sarah\n> Check if my coffee chat request with John was accepted\n- list_connections: \n> Show my networking connections\n> Who are my mentors?\n> How many people am I mentoring\n- update_connection: \n> Accept networking request from John Doe \u2192 use action \"accept\" and include the existing connection_id for John Doe\n> Update mentoring skills for Jane Smith to include \"Python\" and \"Leadership\" \u2192 use action \"update_details\" and include the existing connection_id for Jane Smith\n> Update mentoring frequency for Jane Smith to \"bi-weekly\" \u2192 use action \"update_details\" and include the existing connection_id for Jane Smith\n- get_mentorship_preferences: \n> Get my mentorship preferences\n> Show Sarah's mentorship topics and bio\n- update_mentorship_preferences: \n> Update my mentorship bio to \"I'm a senior engineer with 10 years of experience\"\n> Add \"Python\" and \"Machine Learning\" to my mentorship topics\n\nRESPONSE FORMATS:\n- search_people: {\n \"results\": [...],\n \"available_filters\": {...},\n \"total_count\": int\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"ConnectionAction": {"enum": ["accept", "decline", "request_intro_meeting", "cancel", "end", "update_details"], "title": "ConnectionAction", "type": "string"}, "ConnectionType": {"enum": ["mentorship", "basic"], "title": "ConnectionType", "type": "string"}, "CreateConnectionParams": {"properties": {"connection_type": {"$ref": "#/$defs/ConnectionType", "description": "Type of connection to create. \"mentorship\" - formal, structured mentorship relationships. \"basic\" - informal connections like coffee chats, networking meetings, casual conversations, or one-time knowledge sharing sessions."}, "message": {"description": "Personalized message explaining the purpose of the connection request", "title": "Message", "type": "string"}, "profile_enc_id": {"description": "Encoded profile ID of the target person to connect with", "title": "Profile Enc Id", "type": "string"}, "skills": {"description": "List of skills that will be the focus of the relationship. Particularly relevant for mentorship; for coffee chats, include at least one relevant skill. Examples: [\"Python\", \"Machine Learning\", \"Leadership\", \"Product Management\", \"Data Science\"].", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "topics": {"description": "List of specific topics or areas of discussion. Particularly relevant for mentorship. Examples: [\"Career Growth\", \"Technical Skills\", \"Industry Trends\", \"Leadership Development\", \"Interview Preparation\", \"Project Management\"]..", "items": {"type": "string"}, "title": "Topics", "type": "array"}, "duration_month": {"default": null, "description": "Expected duration of the mentorship in months (e.g., 3, 6, 12). Most relevant for mentorship.", "title": "Duration Month", "type": "integer"}, "frequency": {"default": null, "description": "Expected frequency of meetings or interactions. Common values: \"weekly\", \"bi-weekly\", \"monthly\", \"quarterly\", \"as-needed\". Most relevant for mentorship.", "title": "Frequency", "type": "string"}, "discriminator": {"const": "create_connection", "description": "REQUIRED: Must be 'create_connection' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["connection_type", "message", "profile_enc_id", "skills", "discriminator"], "title": "CreateConnectionParams", "type": "object"}, "GetConnectionParams": {"properties": {"connection_id": {"description": "The unique identifier of the connection. Required for get operation. Use when user references a specific connection by ID.", "title": "Connection Id", "type": "integer"}, "discriminator": {"const": "get_connection", "description": "REQUIRED: Must be 'get_connection' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["connection_id", "discriminator"], "title": "GetConnectionParams", "type": "object"}, "GetMentorshipPreferencesParams": {"properties": {"profile_enc_id": {"default": null, "description": "Encoded profile ID to fetch mentorship preferences for. If not provided, uses current user's profile.", "title": "Profile Enc Id", "type": "string"}, "discriminator": {"const": "get_mentorship_preferences", "description": "REQUIRED: Must be 'get_mentorship_preferences' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "GetMentorshipPreferencesParams", "type": "object"}, "GetNetworkingPreferencesParams": {"properties": {"profile_enc_id": {"default": null, "description": "Encoded profile ID to fetch networking preferences for. If not provided, uses current user's profile.", "title": "Profile Enc Id", "type": "string"}, "discriminator": {"const": "get_networking_preferences", "description": "REQUIRED: Must be 'get_networking_preferences' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "GetNetworkingPreferencesParams", "type": "object"}, "ListConnectionsParams": {"properties": {"discriminator": {"const": "list_connections", "description": "REQUIRED: Must be 'list_connections' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "ListConnectionsParams", "type": "object"}, "PeopleSearchParams": {"properties": {"query": {"default": "", "description": "Text query for searching people/profiles. Examples: \"Python developer\", \"Jane Smith\", \"Machine Learning expert\".", "title": "Query", "type": "string"}, "filters": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object"}, {"type": "null"}], "default": null, "description": "Dictionary of filters keyed by facet category, using facet_value from available_filters. Only use filter keys returned in available_filters from a prior search; available filters are configured per tenant and vary, so do not guess or hardcode filter names.", "title": "Filters"}, "page_size": {"default": 5, "description": "Number of people to return", "minimum": 1, "title": "Page Size", "type": "integer"}, "start": {"default": 0, "description": "Start index for pagination", "minimum": 0, "title": "Start", "type": "integer"}, "discriminator": {"const": "search_people", "description": "REQUIRED: Must be 'search_people' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "PeopleSearchParams", "type": "object"}, "UpdateConnectionParams": {"properties": {"connection_id": {"description": "The unique identifier of the connection. Required for update operation. Use when user references a specific connection by ID or when you need to modify a particular connection.", "title": "Connection Id", "type": "integer"}, "action": {"$ref": "#/$defs/ConnectionAction", "description": "Action to take on the connection. Choose: \"accept\", \"decline\", \"request_intro_meeting\", \"cancel\", \"end\", \"update_details\"."}, "message": {"default": null, "description": "Personalized message providing context for the action (e.g., why accepting/declining, what changes you want)", "title": "Message", "type": "string"}, "skills": {"description": "List of skills to update for the relationship. Examples: [\"Python\", \"Machine Learning\", \"Leadership\"]", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "topics": {"description": "List of specific topics to update for the relationship. Examples: [\"Career Growth\", \"Technical Skills\"]", "items": {"type": "string"}, "title": "Topics", "type": "array"}, "duration_month": {"default": null, "description": "Expected duration of the mentorship in months to update", "title": "Duration Month", "type": "integer"}, "frequency": {"default": null, "description": "Expected frequency of meetings or interactions to update. Common values: \"weekly\", \"bi-weekly\", \"monthly\", \"quarterly\", \"as-needed\"", "title": "Frequency", "type": "string"}, "discriminator": {"const": "update_connection", "description": "REQUIRED: Must be 'update_connection' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["connection_id", "action", "discriminator"], "title": "UpdateConnectionParams", "type": "object"}, "UpdateMentorshipPreferencesParams": {"properties": {"bio": {"default": null, "description": "Text describing the user's background, experience, and expertise as a mentor.", "title": "Bio", "type": "string"}, "topics": {"default": null, "description": "List of specific topics the user can help with as a mentor. Use get_mentorship_preferences to see available topics.", "items": {"type": "string"}, "title": "Topics", "type": "array"}, "discriminator": {"const": "update_mentorship_preferences", "description": "REQUIRED: Must be 'update_mentorship_preferences' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "UpdateMentorshipPreferencesParams", "type": "object"}, "UpdateNetworkingPreferencesParams": {"properties": {"open_to_mentoring": {"default": null, "description": "Set to true to indicate profile is available for mentoring, false to be unavailable.", "title": "Open To Mentoring", "type": "boolean"}, "open_to_coffee_chats": {"default": null, "description": "Set to true to indicate profile is available for coffee chats, false to be unavailable.", "title": "Open To Coffee Chats", "type": "boolean"}, "discriminator": {"const": "update_networking_preferences", "description": "REQUIRED: Must be 'update_networking_preferences' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "UpdateNetworkingPreferencesParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"create_connection": "#/$defs/CreateConnectionParams", "get_connection": "#/$defs/GetConnectionParams", "get_mentorship_preferences": "#/$defs/GetMentorshipPreferencesParams", "get_networking_preferences": "#/$defs/GetNetworkingPreferencesParams", "list_connections": "#/$defs/ListConnectionsParams", "search_people": "#/$defs/PeopleSearchParams", "update_connection": "#/$defs/UpdateConnectionParams", "update_mentorship_preferences": "#/$defs/UpdateMentorshipPreferencesParams", "update_networking_preferences": "#/$defs/UpdateNetworkingPreferencesParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/PeopleSearchParams"}, {"$ref": "#/$defs/CreateConnectionParams"}, {"$ref": "#/$defs/GetConnectionParams"}, {"$ref": "#/$defs/ListConnectionsParams"}, {"$ref": "#/$defs/UpdateConnectionParams"}, {"$ref": "#/$defs/GetMentorshipPreferencesParams"}, {"$ref": "#/$defs/UpdateMentorshipPreferencesParams"}, {"$ref": "#/$defs/GetNetworkingPreferencesParams"}, {"$ref": "#/$defs/UpdateNetworkingPreferencesParams"}], "title": "Params"}}, "required": ["params"], "title": "connectionsArguments", "type": "object"}}, {"name": "course_search", "description": "Search for courses or learning opportunities for the user, optionally personalized to a target role or upskilling plan.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_courses']\n\nSUBTOOLS:\n- search_courses: Search for courses or learning opportunities matching a query, optionally filtered or personalized to a target role or upskilling plan. Call without filters first to surface available filter options for refinement. Present course title, description, skills, difficulty, and provider when present, and surface its course link (explore_course_url, plus course_url when configured) in results. If no results, suggest changing the query or filters using the available options.\n\nEXAMPLES:\n- search_courses: User: \"Show me courses I can add to my upskilling plan\" -> upskilling_plan_id=1234567890\nUser: \"Show me courses that can help me move to X role\" -> role_id=1234567890\n\nRESPONSE FORMATS:\n- search_courses: {\n \"pagination\": {\"start\": int, \"page_size\": int, \"total\": int},\n \"results\": {\n \"data\": [{\n \"entity_id\": str,\n \"explore_course_url\": str,\n \"title\": str | null,\n \"description\": str | null,\n \"course_skills\": [str] | null,\n \"difficulty\": str | null,\n \"provider\": str | null,\n \"course_url\": str | null\n }],\n \"filters\": [{\"name\": str, \"values\": [{\"id\": str, \"display_name\": str}]}]\n }\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"CourseSearchParams": {"properties": {"search_query": {"default": "", "description": "Free text search query. This is strictly keyword based search on course content like title, description, skills etc.", "title": "Search Query", "type": "string"}, "filters": {"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "description": "\n Field level search filters. Available filters can be found in the filters field returned by calling this tool without filters.\n The filters are a dictionary of filter name to list of values. For example, {\"skills\": [\"Python\", \"Java\"]}\n Common search filters include skills, courseCategory, courseDurationRange, courseProvider, etc.\n The courseDurationRange filter is a range of hours. For example, '0,10' means courses with duration between 0 and 10 hours.\n Others will take a list of values for available options.\n ", "title": "Filters", "type": "object"}, "recommended": {"default": false, "description": "Set this if the user is asking for courses/learning opportunities suited for them. By default the tool will search all available courses with basic ordering for user.", "title": "Recommended", "type": "boolean"}, "role_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Role ID to search for courses recommended for a target role that are personalized for the user", "title": "Role Id"}, "upskilling_plan_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Upskilling plan ID to search for courses to add to the plan. If provided, the tool will search for courses that are relevant to the upskilling plan", "title": "Upskilling Plan Id"}, "start": {"default": 0, "description": "Start index of the results. Use this to paginate through the results. Skip this parameter unless you want to paginate.", "title": "Start", "type": "integer"}, "page_size": {"default": 5, "description": "Number of results to return. Skip this parameter unless you want to paginate.", "title": "Page Size", "type": "integer"}, "discriminator": {"const": "search_courses", "description": "REQUIRED: Must be 'search_courses' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "CourseSearchParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"search_courses": "#/$defs/CourseSearchParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/CourseSearchParams"}], "title": "Params"}}, "required": ["params"], "title": "course_searchArguments", "type": "object"}}, {"name": "demand", "description": "\nCareer Hub demands that match the signed-in employee's own profile.\n\nUse this tool to show the open Resource Management demands (staffing requisitions) that match the\ncurrent employee's profile, ranked by match score -- including 'top N' and location-aware requests.\nOnly the caller's own matches are returned; it cannot look up another employee's matches.\n\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['get_demands']\n\nSUBTOOLS:\n- get_demands: List the open resource-management demands (staffing requisitions) that match the current user's OWN employee profile, ranked by match score (highest first). Use when the user asks which demands or staffing opportunities match their profile, including 'top N' requests. Matches are location-aware by default (ranked for the employee's own location); set ignore_location=true to search globally, and use 'limit' to cap how many are returned (e.g. the top 5). Optionally narrow by location, program_id, project_id, start_after (epoch seconds), and end_before (epoch seconds); all filters are AND'd. Only the caller's own matches are returned; this cannot look up another employee's matches.\n\nEXAMPLES:\n- get_demands: > \"What open demands match my profile?\" -> (no arguments)\n> \"Show the top 5 demands matching me, ignoring location\" -> limit=5, ignore_location=true\n> \"Only show me strong matches (4 stars and up)\" -> min_star_threshold=4.0\n> \"Demands matching me in London\" -> location=\"London\"\n> \"Demands on program 42 starting after Mar 1, 2026\" -> program_id=42, start_after=1772841600\n\nRESPONSE FORMATS:\n- get_demands: {\"demands\": [{\"demand_id\": 123, \"ext_demand_id\": \"REQ-9\", \"title\": \"Senior SWE\", \"location\": \"London\", \"match_score\": 4.0, \"skill_score_relevance\": 3.5, \"title_score_relevance\": 4.0, \"validated_skills\": [\"python\"], \"missing_skills\": [\"go\"]}], \"returned\": 1, \"total\": 12, \"page\": 0, \"has_more\": false} // ranked by match_score (0-5, highest first); any field may be null when unset; request the next page (page+1) while 'has_more' is true", "version_spec": ">=1.0.0", "parameters": {"$defs": {"GetDemandsParams": {"properties": {"page": {"default": 0, "description": "Zero-based page of results.", "minimum": 0, "title": "Page", "type": "integer"}, "limit": {"default": 20, "description": "Number of demands to return per page (1-100).", "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer"}, "ignore_location": {"default": false, "description": "When true, ignore the employee's location when matching (search globally). Defaults to false, which restricts matches to the employee's location.", "title": "Ignore Location", "type": "boolean"}, "min_star_threshold": {"anyOf": [{"maximum": 5.0, "minimum": 1.0, "type": "number"}, {"type": "null"}], "default": null, "description": "Minimum match-score threshold (1.0-5.0); only demands at or above this score are returned. Defaults to the platform default (3.5) when omitted.", "title": "Min Star Threshold"}, "location": {"default": "", "description": "Filter to demands in this location (e.g. a city or country). Empty means no location filter.", "maxLength": 200, "title": "Location", "type": "string"}, "program_id": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Filter to demands associated with this program id. Leave unset for no program filter.", "title": "Program Id"}, "project_id": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Filter to demands associated with this project id. Leave unset for no project filter.", "title": "Project Id"}, "start_after": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Only demands that start on or after this epoch timestamp (in seconds). Leave unset for no start-date filter.", "title": "Start After"}, "end_before": {"anyOf": [{"exclusiveMinimum": 0, "type": "integer"}, {"type": "null"}], "default": null, "description": "Only demands that end on or before this epoch timestamp (in seconds). Leave unset for no end-date filter.", "title": "End Before"}, "discriminator": {"const": "get_demands", "description": "REQUIRED: Must be 'get_demands' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "GetDemandsParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"get_demands": "#/$defs/GetDemandsParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/GetDemandsParams"}], "title": "Params"}}, "required": ["params"], "title": "demandArguments", "type": "object"}}, {"name": "employee_propose", "description": "\nEmployee self-application to open Resource Management demands.\n\nUse this tool to submit the signed-in employee's application to one or more open demands\n(staffing requisitions). Only the caller's own profile is submitted; this cannot apply\nanother employee to a demand.\n\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['propose_myself_for_demand', 'propose_myself_for_demands']\n\nSUBTOOLS:\n- propose_myself_for_demand: Submit the signed-in employee's application to one open Resource Management demand (staffing requisition), identified by its external demand id. Only the caller's own profile is submitted; this cannot apply another employee. Use when the user asks to propose, nominate, or apply themselves to a specific demand.\n- propose_myself_for_demands: Submit the signed-in employee's application to 1-25 open Resource Management demands in one call. Each demand is processed independently and per-demand outcomes are reported, so a partial failure does not abort the batch. Only the caller's own profile is submitted. Use for bulk self-application (e.g. top-N matches).\n\nEXAMPLES:\n- propose_myself_for_demand: > \"Propose myself for demand REQ-9\" -> ext_demand_id=\"REQ-9\"\n- propose_myself_for_demands: > \"Propose myself for demands REQ-9 and REQ-12\" -> ext_demand_ids=[\"REQ-9\", \"REQ-12\"]\n\nRESPONSE FORMATS:\n- propose_myself_for_demand: {\"ext_demand_id\": \"REQ-9\", \"message\": \"Success\"}\n- propose_myself_for_demands: {\"requested\": 2, \"succeeded_count\": 1, \"failed_count\": 1, \"succeeded\": [{\"ext_demand_id\": \"REQ-9\", \"message\": \"Success\"}], \"failed\": [{\"ext_demand_id\": \"REQ-12\", \"error\": \"...\"}]}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"ProposeMyselfForDemandParams": {"properties": {"ext_demand_id": {"description": "External demand id (ATS job id) to submit the application to.", "maxLength": 200, "minLength": 1, "title": "Ext Demand Id", "type": "string"}, "discriminator": {"const": "propose_myself_for_demand", "description": "REQUIRED: Must be 'propose_myself_for_demand' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["ext_demand_id", "discriminator"], "title": "ProposeMyselfForDemandParams", "type": "object"}, "ProposeMyselfForDemandsParams": {"properties": {"ext_demand_ids": {"description": "External demand ids (ATS job ids); 1-25 per call, deduplicated server-side.", "items": {"type": "string"}, "maxItems": 25, "minItems": 1, "title": "Ext Demand Ids", "type": "array"}, "discriminator": {"const": "propose_myself_for_demands", "description": "REQUIRED: Must be 'propose_myself_for_demands' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["ext_demand_ids", "discriminator"], "title": "ProposeMyselfForDemandsParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"propose_myself_for_demand": "#/$defs/ProposeMyselfForDemandParams", "propose_myself_for_demands": "#/$defs/ProposeMyselfForDemandsParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/ProposeMyselfForDemandParams"}, {"$ref": "#/$defs/ProposeMyselfForDemandsParams"}], "title": "Params"}}, "required": ["params"], "title": "employee_proposeArguments", "type": "object"}}, {"name": "job_alerts", "description": "Manage job alert subscriptions with customizable filters. For frequency adjustments, always employ the correct tool to modify without the need for deletion and recreation.\nFor creation of job alerts, always fetch the available job filters and notification frequency options using the appropriate tools before calling the create_job_alert subtool and present them in detailed manner to user for selection.Before deleting job alert, always fetch the available job alerts to know the exact saved alerts available.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['create_job_alert', 'view_job_alerts', 'delete_job_alert']\n\nSUBTOOLS:\n- create_job_alert: Create a new job alert with user-defined filters and notification frequency.\n Workflow:\n - Before calling this tool, you MUST fetch:\n - Available job filters (skills, locations, departments, etc.) using the appropriate tool.\n - Notification frequency options using the appropriate notification tools.\n - ALWAYS present these options to the user to select their preferred filters and notification frequency.\n - DO NOT CALL THIS TOOL until user has provided their CONFIRMED filter and frequency choices.\n - All filters should use BOTH 'displayValue' and 'facetValue' as specified by source tools.\n - The 'frequency' parameter MUST be one of the supported values fetched from notification settings tool.\n - ALWAYS confirm the parameters with the user before calling this tool.\n- view_job_alerts: Display all saved job alerts for the user, facilitating easy selection for deletion or review.\n\n- delete_job_alert: Delete a specific job alert for the user using the hash of the saved search. Confirm with user before deleting.\n\n", "version_spec": ">=1.0.0", "parameters": {"$defs": {"CreateJobAlertParams": {"properties": {"query": {"default": "", "description": "Job search query (e.g., \"software engineer\"). Use only when no filters available.", "title": "Query", "type": "string"}, "filters": {"anyOf": [{"type": "object"}, {"type": "null"}], "default": null, "description": "Job filters object with facet categories as keys (e.g., \"skills\", \"experience\", \"department\", etc.) and arrays of filter objects(containing BOTH displayValue and facetValue) as values.Example: {\"skills\":[{\"displayValue\":\"Python\",\"facetValue\":\"python\"}]}.IMPORTANT: Both \"displayValue\" and \"facetValue\" fields are mandatory for each filter object. Use {} for no filters.", "title": "Filters"}, "location": {"default": "", "description": "Job location (e.g., \"New York\", \"Remote\")", "title": "Location", "type": "string"}, "frequency": {"default": 7, "description": "Frequency value for the notification. MUST be one of the values from the available frequencies list obtained by calling appropriate tool. Common values: -1 (Off), 1 (Daily/On), 7 (Weekly), 30 (Monthly). ", "title": "Frequency", "type": "integer"}, "discriminator": {"const": "create_job_alert", "description": "REQUIRED: Must be 'create_job_alert' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "CreateJobAlertParams", "type": "object"}, "DeleteJobAlertParams": {"properties": {"saved_search_hash": {"description": "Hash of the saved search to delete.", "title": "Saved Search Hash", "type": "string"}, "discriminator": {"const": "delete_job_alert", "description": "REQUIRED: Must be 'delete_job_alert' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["saved_search_hash", "discriminator"], "title": "DeleteJobAlertParams", "type": "object"}, "ViewJobAlertsParams": {"properties": {"discriminator": {"const": "view_job_alerts", "description": "REQUIRED: Must be 'view_job_alerts' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "ViewJobAlertsParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"create_job_alert": "#/$defs/CreateJobAlertParams", "delete_job_alert": "#/$defs/DeleteJobAlertParams", "view_job_alerts": "#/$defs/ViewJobAlertsParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/CreateJobAlertParams"}, {"$ref": "#/$defs/ViewJobAlertsParams"}, {"$ref": "#/$defs/DeleteJobAlertParams"}], "title": "Params"}}, "required": ["params"], "title": "job_alertsArguments", "type": "object"}}, {"name": "jobs_search", "description": "Search for internal job positions that employees can apply to.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_jobs']\n\nSUBTOOLS:\n- search_jobs: Search for internal job positions employees can apply to. Call with an empty query to surface available filter options in the 'facets' response. Present job title, department, and location when present, and always surface its job link (explore_job_url) in results.\n\nEXAMPLES:\n- search_jobs: query=\"software engineer\"; filters={\"locations\": [\"Remote\"]}; recommended=True for personalized recommendations.\n\nRESPONSE FORMATS:\n- search_jobs: {\n \"pagination\": {\"start\": int, \"page_size\": int, \"total_count\": int, \"page_count\": int},\n \"facets\": {...},\n \"results\": [{\n \"entity_id\": str,\n \"explore_job_url\": str,\n \"title\": str | null,\n \"department\": str | null,\n \"locations\": [str] | null,\n \"matched_skills\": [str] | null,\n \"posted_date\": str | null\n }],\n \"search_results_metadata\": {...},\n \"recommended\": bool,\n \"selected_filters\": {...}\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"JobSearchParams": {"properties": {"query": {"default": "", "description": "Text query for searching jobs. Examples: \"software engineer\", \"python developer\". Leave empty for personalized recommendations.", "title": "Query", "type": "string"}, "filters": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object"}, {"type": "null"}], "default": null, "description": "Filter job results. Examples: {\"locations\": [\"New York\", \"Remote\"]}, {\"skills\": [\"Python\"]}. Use {} for no filters.", "title": "Filters"}, "page_size": {"default": 5, "description": "Number of jobs to return. Default: 5.", "title": "Page Size", "type": "integer"}, "start": {"default": 0, "description": "Starting position for pagination. Use 0 for first page, 5 for second page (if page_size=5), etc. Default: 0.", "title": "Start", "type": "integer"}, "recommended": {"default": false, "description": "Set to true for personalized job recommendations based on user profile. Use true when user asks for \"recommended jobs\" or \"jobs for me\". Default: false.", "title": "Recommended", "type": "boolean"}, "discriminator": {"const": "search_jobs", "description": "REQUIRED: Must be 'search_jobs' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "JobSearchParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"search_jobs": "#/$defs/JobSearchParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/JobSearchParams"}], "title": "Params"}}, "required": ["params"], "title": "jobs_searchArguments", "type": "object"}}, {"name": "notification_settings", "description": "Manage notification settings\n\nUSAGE PATTERN: Always get notification settings first to see available frequency options, then update with valid values.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['get_notification_settings', 'update_notification_setting']\n\nSUBTOOLS:\n- get_notification_settings: Get notification settings for the user. Shows current frequencies and available frequency options for each notification. Use this BEFORE updating any notification to see valid frequency values.\n- update_notification_setting: Update the frequency of a specific notification for the current authenticated user. Note: For saved search notifications (job alerts), use the base notification key: saved_search_notification-{hash}. IMPORTANT: Always check available frequencies first using the get operation before updating.\n\nEXAMPLES:\n- get_notification_settings: Examples:\n- \"How are my notifications configured?\"\n- \"What frequency options are available for job notifications?\"\n- \"Show me notification settings before I update them\" \n- \"What frequency options are available for saved search job alerts?\" \n- update_notification_setting: Examples:\n- \"Set weekly notifications for job recommendations\" \u2192 use frequency value 7 for weekly\n- \"Turn off project notifications\" \u2192 use frequency value -1 to turn off\n- \"Update job alert frequency to daily\" \u2192 use notification_key: \"saved_search_notification-{hash}\" and frequency_value: 1", "version_spec": ">=1.0.0", "parameters": {"$defs": {"NotificationSettingsGetParams": {"properties": {"discriminator": {"const": "get_notification_settings", "description": "REQUIRED: Must be 'get_notification_settings' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "NotificationSettingsGetParams", "type": "object"}, "NotificationSettingsUpdateParams": {"properties": {"notification_key": {"description": "The notification key to update (e.g., \"position_notification\")", "title": "Notification Key", "type": "string"}, "frequency": {"description": "Frequency value for the notification. MUST be one of the values from the available_frequencies list obtained by calling get notification settings first. Common values: -1 (Off), 1 (Daily/On), 7 (Weekly), 30 (Monthly). Each notification supports different frequency options - always check first!", "title": "Frequency", "type": "integer"}, "discriminator": {"const": "update_notification_setting", "description": "REQUIRED: Must be 'update_notification_setting' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["notification_key", "frequency", "discriminator"], "title": "NotificationSettingsUpdateParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"get_notification_settings": "#/$defs/NotificationSettingsGetParams", "update_notification_setting": "#/$defs/NotificationSettingsUpdateParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/NotificationSettingsGetParams"}, {"$ref": "#/$defs/NotificationSettingsUpdateParams"}], "title": "Params"}}, "required": ["params"], "title": "notification_settingsArguments", "type": "object"}}, {"name": "profile_skills", "description": "Manage the skills on the current user's profile - view, add, remove, and highlight profile skills.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['view_profile_skills', 'add_profile_skill', 'remove_profile_skill', 'highlight_profile_skill']\n\nSUBTOOLS:\n- view_profile_skills: List the current user's profile skills and which are highlighted (top skills). Check before add/remove/highlight.\n- add_profile_skill: Add one skill to the current user's profile (one per call; duplicate is a no-op).\n- remove_profile_skill: Remove one skill from the current user's profile (one per call; missing skill is a no-op).\n- highlight_profile_skill: Highlight one skill as a top skill on the current user's profile (highlighted=false to remove). Highlighting a skill not yet on the profile also adds it. One per call.\n\nRESPONSE FORMATS:\n- view_profile_skills: {\n 'skills': List of skill names on the profile\n 'highlighted_skills': List of skill names that are highlighted (a subset of 'skills')\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"AddProfileSkillParams": {"properties": {"skill_name": {"description": "Name of the skill to add to the profile.", "title": "Skill Name", "type": "string"}, "discriminator": {"const": "add_profile_skill", "description": "REQUIRED: Must be 'add_profile_skill' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "discriminator"], "title": "AddProfileSkillParams", "type": "object"}, "HighlightProfileSkillParams": {"properties": {"skill_name": {"description": "Name of the skill to highlight or un-highlight.", "title": "Skill Name", "type": "string"}, "highlighted": {"default": true, "description": "True to mark the skill as highlighted (a top skill), False to remove the highlight.", "title": "Highlighted", "type": "boolean"}, "discriminator": {"const": "highlight_profile_skill", "description": "REQUIRED: Must be 'highlight_profile_skill' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "discriminator"], "title": "HighlightProfileSkillParams", "type": "object"}, "NoParams": {"properties": {"discriminator": {"const": "view_profile_skills", "description": "REQUIRED: Must be 'view_profile_skills' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "NoParams", "type": "object"}, "RemoveProfileSkillParams": {"properties": {"skill_name": {"description": "Name of the skill to remove from the profile.", "title": "Skill Name", "type": "string"}, "discriminator": {"const": "remove_profile_skill", "description": "REQUIRED: Must be 'remove_profile_skill' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "discriminator"], "title": "RemoveProfileSkillParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"add_profile_skill": "#/$defs/AddProfileSkillParams", "highlight_profile_skill": "#/$defs/HighlightProfileSkillParams", "remove_profile_skill": "#/$defs/RemoveProfileSkillParams", "view_profile_skills": "#/$defs/NoParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/NoParams"}, {"$ref": "#/$defs/AddProfileSkillParams"}, {"$ref": "#/$defs/RemoveProfileSkillParams"}, {"$ref": "#/$defs/HighlightProfileSkillParams"}], "title": "Params"}}, "required": ["params"], "title": "profile_skillsArguments", "type": "object"}}, {"name": "projects", "description": "Manage projects - search & view project information.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_projects']\n\nSUBTOOLS:\n- search_projects: Search projects with filtering. Returns projects and available filters for refinement.\n\nUsage:\n- Initial search: provide only the *query* parameter\n- Refinement search: use *filters* parameter with *facet_value* from available_filters\n\nTo refine results:\n1. From *available_filters*, extract the category name (key) and facet_value (not display_value)\n2. Construct filters as {'category': ['facet_value1', 'facet_value2']}\n3. Pass this dictionary to narrow down results\n\nEXAMPLES:\n- search_projects: If available_filters shows {\"weeklyhours\": [{\"facet_value\": \"0_15\", \"display_value\": \"< 15 Hours/Week\"}]}, use filters={'weeklyhours': ['0_15']} (not the display_value).\n\nRESPONSE FORMATS:\n- search_projects: {\n \"results\": [...],\n \"available_filters\": {...},\n \"total_count\": int\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"ProjectSearchParams": {"properties": {"query": {"default": "", "description": "Text query for searching projects.", "title": "Query", "type": "string"}, "filters": {"anyOf": [{"additionalProperties": {"items": {"type": "string"}, "type": "array"}, "type": "object"}, {"type": "null"}], "default": null, "description": "Dictionary of filters using facet_value from available_filters.", "title": "Filters"}, "recommended": {"default": false, "description": "Whether to return only projects that are personalized and relevant to the user's profile and skills", "title": "Recommended", "type": "boolean"}, "page_size": {"default": 5, "description": "Number of projects to return", "minimum": 1, "title": "Page Size", "type": "integer"}, "start": {"default": 0, "description": "Start index for pagination", "minimum": 0, "title": "Start", "type": "integer"}, "discriminator": {"const": "search_projects", "description": "REQUIRED: Must be 'search_projects' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "ProjectSearchParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"search_projects": "#/$defs/ProjectSearchParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/ProjectSearchParams"}], "title": "Params"}}, "required": ["params"], "title": "projectsArguments", "type": "object"}}, {"name": "roles", "description": "\nRole is a high level entity that covers seniority, skills, and other attributes.\nA role has multiple associated jobs and employees.\n\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_roles', 'get_recommended_courses_for_role', 'get_recommended_mentors_for_role', 'get_recommended_projects_for_role', 'start_role_readiness_assessment', 'get_role_readiness_assessment_details']\n\nSUBTOOLS:\n- search_roles: When user asks for roles, use this tool to search for roles by text.\n- get_recommended_courses_for_role: Get recommended courses for a specific role\n- get_recommended_mentors_for_role: Get recommended mentors for a specific role\n- get_recommended_projects_for_role: Get recommended projects for a specific role\n- start_role_readiness_assessment: Start a role readiness assessment (AI interview) for a specific role. Returns an interview URL. The caller MUST surface this URL verbatim to the user in the response that announces the assessment was started \u2014 the user cannot take the assessment without it. After the interview ends, feedback generation takes about 15-20 minutes; \n- get_role_readiness_assessment_details: Get the status and feedback for latest role readiness assessment for a role. Returns {status, feedback}.\n- status is null: no assessment exists, start a new roel readiness assessment using appropriate tool.\n- status is 'feedback_generated': assessment complete; feedback is the result\n- any other status: assessment/feedback generation in progress; feedback generation takes ~15-20 minutes after the interview ends, so retry later.\n\nEXAMPLES:\n- search_roles: > \"Search for data analyst roles\" \u2192 use text=\"data analyst\"\n> \"Find roles that need Python skills\" \u2192 use text=\"Python\"\n", "version_spec": ">=1.0.0", "parameters": {"$defs": {"GetRecommendedCoursesForRoleParams": {"properties": {"role_id": {"description": "The ID of the role to get recommended courses for.", "title": "Role Id", "type": "integer"}, "limit": {"default": 5, "description": "Maximum number of courses to return", "title": "Limit", "type": "integer"}, "discriminator": {"const": "get_recommended_courses_for_role", "description": "REQUIRED: Must be 'get_recommended_courses_for_role' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "GetRecommendedCoursesForRoleParams", "type": "object"}, "GetRecommendedMentorsForRoleParams": {"properties": {"role_id": {"description": "The ID of the role to get recommended mentors for.", "title": "Role Id", "type": "integer"}, "limit": {"default": 5, "description": "Maximum number of mentors to return", "title": "Limit", "type": "integer"}, "discriminator": {"const": "get_recommended_mentors_for_role", "description": "REQUIRED: Must be 'get_recommended_mentors_for_role' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "GetRecommendedMentorsForRoleParams", "type": "object"}, "GetRecommendedProjectsForRoleParams": {"properties": {"role_id": {"description": "The ID of the role to get recommended projects for.", "title": "Role Id", "type": "integer"}, "limit": {"default": 5, "description": "Maximum number of projects to return", "title": "Limit", "type": "integer"}, "discriminator": {"const": "get_recommended_projects_for_role", "description": "REQUIRED: Must be 'get_recommended_projects_for_role' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "GetRecommendedProjectsForRoleParams", "type": "object"}, "SearchRolesParams": {"properties": {"text": {"description": "Search query for role title, ID, skills, or description. Examples: \"Data Analyst\", \"Python\", \"senior engineer\"", "title": "Text", "type": "string"}, "limit": {"default": 3, "description": "Maximum number of roles to return", "title": "Limit", "type": "integer"}, "discriminator": {"const": "search_roles", "description": "REQUIRED: Must be 'search_roles' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["text", "discriminator"], "title": "SearchRolesParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__1": {"properties": {"role_id": {"description": "The ID of the role.", "title": "Role Id", "type": "integer"}, "discriminator": {"const": "start_role_readiness_assessment", "description": "REQUIRED: Must be 'start_role_readiness_assessment' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "RoleReadinessParams", "type": "object"}, "services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__2": {"properties": {"role_id": {"description": "The ID of the role.", "title": "Role Id", "type": "integer"}, "discriminator": {"const": "get_role_readiness_assessment_details", "description": "REQUIRED: Must be 'get_role_readiness_assessment_details' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["role_id", "discriminator"], "title": "RoleReadinessParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"get_recommended_courses_for_role": "#/$defs/GetRecommendedCoursesForRoleParams", "get_recommended_mentors_for_role": "#/$defs/GetRecommendedMentorsForRoleParams", "get_recommended_projects_for_role": "#/$defs/GetRecommendedProjectsForRoleParams", "get_role_readiness_assessment_details": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__2", "search_roles": "#/$defs/SearchRolesParams", "start_role_readiness_assessment": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__1"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/SearchRolesParams"}, {"$ref": "#/$defs/GetRecommendedCoursesForRoleParams"}, {"$ref": "#/$defs/GetRecommendedMentorsForRoleParams"}, {"$ref": "#/$defs/GetRecommendedProjectsForRoleParams"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__1"}, {"$ref": "#/$defs/services__mcp__server__artifacts__builders__tool_builder__RoleReadinessParams__2"}], "title": "Params"}}, "required": ["params"], "title": "rolesArguments", "type": "object"}}, {"name": "search_manager_reports", "description": "\nRetrieve information about direct reports and skip-level reports for a manager.\n\nThis tool can be used in two ways:\n1. View your own team: Call without manager_profile_id (default behavior)\n2. View any manager's team: Provide manager_profile_id to see team members reporting to that specific manager\n\nUse cases:\n- Get your own team: call without manager_profile_id\n- Get someone else's team: provide their manager_profile_id\n- Search within a specific team: combine manager_profile_id with query parameter\n- Get team statistics: set include_stats=True (default)\n\nPagination:\n To get all results when total_count > page_size:\n 1. First call: start=0\n 2. Check pagination.total_count in response\n 3. Make additional calls with start = previous_start + page_size\n 4. Stop when start >= total_count\n\n Example: page_size=10, total_count=25 \u2192 start=0, start=10, start=20\n\nReturns:\n Dictionary with:\n - results: Employee profiles array (max page_size items)\n - pagination: Total count, page count, start index, page size\n - displayDetails: Display metadata\n - stats: Team statistics (if include_stats=true)\n", "version_spec": ">=1.0.0", "parameters": {"$defs": {"MyTeamStatsKey": {"enum": ["all_reports", "without_self_skill_assessment", "without_manager_skill_assessment", "overdue_manager_skill_assessment", "without_upskilling_plan", "without_succession_plan_v2", "without_promotion_readiness", "with_availability", "without_risk_of_loss", "without_impact_of_loss", "is_unclaimed_profile", "without_role_goals"], "title": "MyTeamStatsKey", "type": "string"}}, "properties": {"query": {"default": "", "description": "Search by name, skills, job title. Empty returns all.", "title": "Query", "type": "string"}, "page_size": {"default": 10, "description": "Number of results per page (1-100). Use 0 for stats only.", "title": "Page Size", "type": "integer"}, "start": {"default": 0, "description": "Starting index for pagination. For page 1 use 0, page 2 use page_size, page 3 use 2*page_size, etc.", "title": "Start", "type": "integer"}, "highlight_filter": {"$ref": "#/$defs/MyTeamStatsKey", "default": "all_reports", "description": "Apply a predefined filter to highlight specific team segments. Available filters: all_reports (Show all team members), without_self_skill_assessment (Team members who haven't completed their self skill assessment), without_manager_skill_assessment (Team members who haven't received a manager's skill assessment), overdue_manager_skill_assessment (Team members with overdue manager skill assessments), without_upskilling_plan (Team members without an upskilling plan), without_succession_plan_v2 (Team members without a succession plan), without_promotion_readiness (Team members without promotion ready tag), with_availability (Team members with availability), without_risk_of_loss (Team members missing retention risk), without_impact_of_loss (Team members missing impact of loss), is_unclaimed_profile (Team members who haven't onboarded/claimed their profile), without_role_goals (Team members without any role interests)"}, "include_stats": {"default": true, "description": "Include team statistics. Set to False for profile data only.", "title": "Include Stats", "type": "boolean"}, "manager_profile_id": {"default": null, "description": "Profile enc_id or entity_id of a specific manager whose team to fetch. When provided, returns team members reporting to that manager. When not provided (default), returns team members reporting to the current user. Use this parameter to view any manager's team structure, not just your own.", "title": "Manager Profile Id", "type": "string"}}, "title": "search_manager_reportsArguments", "type": "object"}}, {"name": "skill_proficiencies", "description": "Manage skill proficiencies - view, edit, and get proficiency scale information.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['view_skill_proficiencies', 'edit_skill_proficiency', 'get_skill_proficiency_scale']\n\nSUBTOOLS:\n- view_skill_proficiencies: Retrieves comprehensive skill proficiencies data including role-specific, other, and specialised skills. Supports viewing ratings from either 'self' perspective (self-ratings) or 'manager' perspective (manager-provided ratings). Can retrieve skill proficiencies for the current user or for any reportee by providing their assessee_profile_id.\n- edit_skill_proficiency: Updates a skill proficiency rating for either the current user (self-assessment) or a reportee (manager assessment). Use for one-skill updates only; do not batch multiple skills in one call. The rating must be within the valid proficiency scale range for the organization.\n- get_skill_proficiency_scale: Get the proficiency scale configuration including min, max, and step values for skill ratings. Use this to inform users about the valid range and granularity when updating skill proficiencies.\n\nRESPONSE FORMATS:\n- view_skill_proficiencies: {\n 'role': The person's primary role/title\n 'role_skills': List of role-specific skills with names and ratings from the specified assessor\n 'other_skills': List of additional skills with names and ratings from the specified assessor\n 'specialised_skills': List of specialised skills with names and ratings from the specified assessor\n 'manager_added_skills': List of manager added skills with names and ratings from the specified assessor\n}\n- get_skill_proficiency_scale: {\n 'min': Minimum value for skill proficiency rating\n 'max': Maximum value for skill proficiency rating\n 'step': Step/increment value for ratings (e.g., 0.5 for half-point increments, 1 for whole numbers)\n}", "version_spec": ">=1.0.0", "parameters": {"$defs": {"SkillProficienciesViewParams": {"properties": {"assessor": {"default": "self", "description": "The assessor perspective to retrieve ratings from. 'self' returns self-evaluation ratings, 'manager' returns manager-provided ratings for the user's skills.", "enum": ["self", "manager"], "title": "Assessor", "type": "string"}, "assessee_profile_id": {"default": null, "description": "Profile enc_id of the person whose skill proficiencies to retrieve. When not provided, defaults to the current user.", "title": "Assessee Profile Id", "type": "string"}, "discriminator": {"const": "view_skill_proficiencies", "description": "REQUIRED: Must be 'view_skill_proficiencies' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "SkillProficienciesViewParams", "type": "object"}, "SkillProficiencyEditParams": {"properties": {"skill_name": {"description": "Name of the skill to update proficiency for.", "title": "Skill Name", "type": "string"}, "rating": {"description": "Proficiency rating for the skill. Must be within the valid range for this organization.", "title": "Rating", "type": "number"}, "assessee_profile_id": {"default": null, "description": "Profile enc_id of the person whose skill proficiency to update. When not provided, defaults to the current user (self-assessment).", "title": "Assessee Profile Id", "type": "string"}, "discriminator": {"const": "edit_skill_proficiency", "description": "REQUIRED: Must be 'edit_skill_proficiency' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["skill_name", "rating", "discriminator"], "title": "SkillProficiencyEditParams", "type": "object"}, "SkillProficiencyScaleParams": {"properties": {"discriminator": {"const": "get_skill_proficiency_scale", "description": "REQUIRED: Must be 'get_skill_proficiency_scale' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "SkillProficiencyScaleParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"edit_skill_proficiency": "#/$defs/SkillProficiencyEditParams", "get_skill_proficiency_scale": "#/$defs/SkillProficiencyScaleParams", "view_skill_proficiencies": "#/$defs/SkillProficienciesViewParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/SkillProficienciesViewParams"}, {"$ref": "#/$defs/SkillProficiencyEditParams"}, {"$ref": "#/$defs/SkillProficiencyScaleParams"}], "title": "Params"}}, "required": ["params"], "title": "skill_proficienciesArguments", "type": "object"}}, {"name": "tm_employee", "description": "\nEmployees in Talent Management.\n\nUse this tool for an employee's own Career Hub data: list_matched_positions returns the jobs Career Hub \nrecommends to the employee, and update_contact_consent changes the employee's contact consent.\n\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['list_matched_positions', 'update_contact_consent']\n\nSUBTOOLS:\n- list_matched_positions: An employee's recommended jobs, as the Career Hub 'Recommended jobs' feed shows them: the tenant's Career Hub visibility rules, the employee's job preferences and location, and dismissed jobs all apply, best match first, as a paginated {data, meta} envelope. A caller can only request their own recommendations. The employee needs Career Hub enabled, and the tenant must show a Recommended jobs feed on the Career Hub home page; otherwise the call fails. An empty list means the feed has no recommendations. Each row carries the match score and the skills that matched or are missing.\n- update_contact_consent: Set the caller's own Career Hub contact consent: the setting whether recruiters may contact them about internal roles (opting in or out of internal mobility). The value must be one their Career Hub settings offer, usually all (any role) or applied_only (only roles they applied to); any other value fails with the allowed values. Sending the value they already have leaves the setting unchanged but still re-saves the employee record, so do not call it again to confirm.\n\nEXAMPLES:\n- list_matched_positions: > \"Which jobs are recommended for me?\" -> employeeId=\"e4f5g6\", limit=5\n> \"Show me other relevant jobs too\" -> employeeId=\"e4f5g6\", limit=5, fallback=true\n- update_contact_consent: > \"Opt me in to internal mobility\" -> contact_consent=\"all\"\n> \"Only let recruiters contact me about roles I applied to\" -> contact_consent=\"applied_only\"\n\nRESPONSE FORMATS:\n- list_matched_positions: {\"data\": [{\"position\": {\"positionId\": 12345, \"title\": \"...\"}, \"finalScore\": 4.2, \"validatedSkills\": [...], \"missingSkills\": [...]}], \"meta\": {\"totalCount\": 12, \"pageStartIndex\": 0, \"pageTotalCount\": 5}}\n- update_contact_consent: The caller's employee record, as Get Employee returns it, with contactConsent set to the saved value: {\"profileId\": \"e4f5g6\", \"email\": \"...\", \"contactConsent\": \"all\", ...}. A value the settings page does not offer, or a caller who cannot change it, fails with the reason.", "version_spec": ">=1.0.0", "parameters": {"$defs": {"ListMatchedPositionsParams": {"additionalProperties": false, "properties": {"employeeId": {"description": "The employee's Eightfold profile id, or their employee id from the HR system. Must be the caller's own.", "title": "Employeeid", "type": "string"}, "limit": {"default": 5, "description": "Max positions to return.", "title": "Limit", "type": "integer"}, "start": {"default": 0, "description": "Pagination offset.", "title": "Start", "type": "integer"}, "validatedSkills": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "Include the matched and missing skill lists on every row. Defaults to true.", "title": "Validatedskills"}, "fallback": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "default": null, "description": "When the feed is empty, return the Career Hub fallback rows ('Showing other relevant jobs') if the tenant enables them. Defaults to false.", "title": "Fallback"}, "discriminator": {"const": "list_matched_positions", "description": "REQUIRED: Must be 'list_matched_positions' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["employeeId", "discriminator"], "title": "ListMatchedPositionsParams", "type": "object"}, "UpdateContactConsentParams": {"additionalProperties": false, "properties": {"contact_consent": {"description": "The new value: one the caller's Career Hub settings page offers, usually all or applied_only.", "title": "Contact Consent", "type": "string"}, "user_confirmed": {"default": false, "description": "Set true only after the user confirmed the previewed action; first call must be false.", "title": "User Confirmed", "type": "boolean"}, "discriminator": {"const": "update_contact_consent", "description": "REQUIRED: Must be 'update_contact_consent' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["contact_consent", "discriminator"], "title": "UpdateContactConsentParams", "type": "object"}}, "properties": {"params": {"discriminator": {"mapping": {"list_matched_positions": "#/$defs/ListMatchedPositionsParams", "update_contact_consent": "#/$defs/UpdateContactConsentParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/ListMatchedPositionsParams"}, {"$ref": "#/$defs/UpdateContactConsentParams"}], "title": "Params"}}, "required": ["params"], "title": "tm_employeeArguments", "type": "object"}}, {"name": "upskilling_plan", "description": "Manage upskilling plans for users. Users may refer to these as \"development plans\" or \"personal growth plans\"\nThis tool supports all use cases for managing plan templates as well as individual upskilling plans. Individual plans could be created directly or from a template.\nPlans can be created, deleted, or its content and metadata can be updated.\nContent of the plan can also be managed by this tool.\nA well defined plan will include content that is appropriate for the role and skills tied to the plan, organized into sections (with meaningful section names) with each section including courses and tasks. Projects may also be included for individual plans if supported by the organization.\n## Business use case\n- Template plans are general plans that can be curated by template managers. These plans can be assigned to users or users may enroll in them based on their interests.\n- Individual plans can be created by users themselves - either from a template or from scratch. The assigned user can view the plan, navigate through the content and manage progress on the plan.\n\nIMPORTANT: This tool contains multiple subtools. You MUST include the 'discriminator' parameter in your request to specify which subtool to use. Valid discriminator values: ['search_individual_plans', 'search_published_plan_templates', 'search_managed_plan_templates', 'create_individual_plan', 'create_plan_template', 'update_individual_plan', 'update_plan_template', 'delete_plan']\n\nSUBTOOLS:\n- search_individual_plans: Use this tool to search for individual upskilling plans.\nIndividual plans are plans assigned to a user or where the user is a collaborator.\nYou can search by assignee, plan status, plan name, or general search terms.\nA result with `contents_included: false` is only a summary; search again with its `plan_id` to see the plan's tasks, courses and projects.\n- search_published_plan_templates: Use this tool to search for published plan templates on the marketplace.\nYou can search by plan ID, filters, or general search terms.\nYou can also search for recommended templates.\n- search_managed_plan_templates: Use this tool to search for managed plan templates.\nManaged templates are templates that are owned or collaboratively managed by the user.\nYou can search by plan status or general search terms.\n- create_individual_plan: Create a new individual upskilling plan.\n - Provide required fields such as `title`, `description`, `duration`, `roles`, and any relevant skills\n - To create a plan from a template, set the `template_id` field to the desired template's ID. The plan will be initialized with the template's structure and can be further customized.\n - Specify the assignee if the plan is meant for another user.\n- create_plan_template: Create a new upskilling plan template.\n - Provide required fields such as `title`, `description`, `duration`, `roles`, and any relevant skills\n - Specify the `plan_subtype` if applicable (e.g. ROLE_BASED, SKILL_BASED).\n- update_individual_plan: Update an existing individual upskilling plan (assigned to a specific employee).\n - Provide only the fields you wish to update (e.g., `title`, `description`, `skills`, `collaborators`, `status`, etc.).\n - The `assignee` parameter is optional - if not provided, defaults to the current user.\n\n- update_plan_template: Update an existing upskilling plan template.\n - Provide only the fields you wish to update (e.g., `title`, `description`, `skills`, `collaborators`, `status`, etc.).\n\n- delete_plan: Delete an existing upskilling plan.\n - The plan will be permanently removed.", "version_spec": ">=1.0.0", "parameters": {"$defs": {"Collaborator": {"description": "Collaborator model for upskilling plan operations", "properties": {"profile_id": {"anyOf": [{"type": "integer"}, {"type": "string"}], "default": null, "description": "Profile ID or email of the collaborator", "title": "Profile Id"}, "access_mode": {"$ref": "#/$defs/UpskillingPlanAccessMode", "default": "view", "description": "Access mode for the collaborator"}}, "title": "Collaborator", "type": "object"}, "CreateIndividualPlanParams": {"properties": {"title": {"default": null, "description": "Plan title", "title": "Title", "type": "string"}, "description": {"default": null, "description": "Plan description", "title": "Description", "type": "string"}, "duration": {"default": null, "description": "Plan duration in weeks", "title": "Duration", "type": "integer"}, "roles": {"description": "List of role IDs associated with the plan", "items": {"type": "integer"}, "title": "Roles", "type": "array"}, "skills": {"description": "List of skill names associated with the plan", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "add_role_goals": {"default": false, "description": "Whether to automatically add the plan's associated roles to the user's career interest role goals.", "title": "Add Role Goals", "type": "boolean"}, "business_units": {"description": "List of business unit IDs associated with the plan", "items": {"type": "integer"}, "title": "Business Units", "type": "array"}, "job_functions": {"description": "List of job function IDs associated with the plan", "items": {"type": "integer"}, "title": "Job Functions", "type": "array"}, "locations": {"description": "List of location IDs associated with the plan", "items": {"type": "integer"}, "title": "Locations", "type": "array"}, "template_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "Plan ID of the template to assign as an individual plan. Do not provide this field if the plan is to be created from scratch.", "title": "Template Id"}, "assignee": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Email or profile ID (encoded ID) of the assignee. Do not provide this field if the plan is to be created for the current user.", "title": "Assignee"}, "add_skill_goals": {"default": false, "description": "Whether to add the plan's skills to the user's career interest skill goals. Only for the user's own, self-created plan; fails when the user's skill interests limit would be exceeded. Ask the user before setting it.", "title": "Add Skill Goals", "type": "boolean"}, "discriminator": {"const": "create_individual_plan", "description": "REQUIRED: Must be 'create_individual_plan' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "CreateIndividualPlanParams", "type": "object"}, "CreatePlanTemplateParams": {"properties": {"title": {"default": null, "description": "Plan title", "title": "Title", "type": "string"}, "description": {"default": null, "description": "Plan description", "title": "Description", "type": "string"}, "duration": {"default": null, "description": "Plan duration in weeks", "title": "Duration", "type": "integer"}, "roles": {"description": "List of role IDs associated with the plan", "items": {"type": "integer"}, "title": "Roles", "type": "array"}, "skills": {"description": "List of skill names associated with the plan", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "add_role_goals": {"default": false, "description": "Whether to automatically add the plan's associated roles to the user's career interest role goals.", "title": "Add Role Goals", "type": "boolean"}, "business_units": {"description": "List of business unit IDs associated with the plan", "items": {"type": "integer"}, "title": "Business Units", "type": "array"}, "job_functions": {"description": "List of job function IDs associated with the plan", "items": {"type": "integer"}, "title": "Job Functions", "type": "array"}, "locations": {"description": "List of location IDs associated with the plan", "items": {"type": "integer"}, "title": "Locations", "type": "array"}, "plan_subtype": {"$ref": "#/$defs/UpskillingPlanSubtype", "default": null, "description": "Plan subtype. Plans created for role or skill should set appropriate subtype."}, "discriminator": {"const": "create_plan_template", "description": "REQUIRED: Must be 'create_plan_template' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "CreatePlanTemplateParams", "type": "object"}, "DeleteUpskillingPlanParams": {"properties": {"plan_id": {"description": "Plan ID.", "title": "Plan Id", "type": "integer"}, "assignee": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Email or profile ID (encoded ID) of the assignee", "title": "Assignee"}, "discriminator": {"const": "delete_plan", "description": "REQUIRED: Must be 'delete_plan' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["plan_id", "discriminator"], "title": "DeleteUpskillingPlanParams", "type": "object"}, "EntityProgress": {"description": "Entity progress for upskilling plan operations", "properties": {"entity_type": {"description": "Type of the entity: task, course or project", "title": "Entity Type", "type": "string"}, "entity_id": {"anyOf": [{"type": "integer"}, {"type": "string"}, {"type": "null"}], "default": null, "description": "ID of the entity, from the plan's entities. Provide this or entity_title.", "title": "Entity Id"}, "entity_title": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Exact title of the entity as the plan shows it, when you don't have its ID", "title": "Entity Title"}, "entity_progress": {"$ref": "#/$defs/UpskillingPlanEntityProgress", "description": "Progress of the entity"}}, "required": ["entity_type", "entity_progress"], "title": "EntityProgress", "type": "object"}, "IndividualPlansSearchQuery": {"properties": {"start": {"default": 0, "description": "Start index of the results. Use this to paginate through the results", "title": "Start", "type": "integer"}, "page_size": {"default": 5, "description": "Number of results to return", "title": "Page Size", "type": "integer"}, "search_terms": {"default": null, "description": "Query terms to search within plans. This will perform a keyword based search on plan data including name, description and skills.", "title": "Search Terms", "type": "string"}, "assignee": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Profile ID or email of the employee to fetch the assigned plans. If not provided, plans assigned to the authenticated user will be returned.", "title": "Assignee"}, "plan_status": {"description": "Filters for plans with any of the given plan statuses. If not provided, plans from all statuses will be returned.", "items": {"$ref": "#/$defs/UpskillingPlanAssignmentStatus"}, "title": "Plan Status", "type": "array"}, "plan_name": {"default": null, "description": "Search for plans with the given name. The given parameter value must be a substring of the plan name, case insensitive", "title": "Plan Name", "type": "string"}, "plan_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of a plan from an earlier result. Returns the plan with its tasks, courses and projects (entities) and their progress.", "title": "Plan Id"}, "discriminator": {"const": "search_individual_plans", "description": "REQUIRED: Must be 'search_individual_plans' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "IndividualPlansSearchQuery", "type": "object"}, "ListOperation": {"description": "Enum for list operations (set, add, remove)", "enum": ["set", "add", "remove", "merge"], "title": "ListOperation", "type": "string"}, "ManagedPlanTemplatesSearchQuery": {"properties": {"start": {"default": 0, "description": "Start index of the results. Use this to paginate through the results", "title": "Start", "type": "integer"}, "page_size": {"default": 5, "description": "Number of results to return", "title": "Page Size", "type": "integer"}, "search_terms": {"default": null, "description": "Filters for managed plans by applying keyword search on plan name, description and skills", "title": "Search Terms", "type": "string"}, "plan_status": {"$ref": "#/$defs/UpskillingPlanStatus", "default": null, "description": "Filters for specific status of the plan"}, "discriminator": {"const": "search_managed_plan_templates", "description": "REQUIRED: Must be 'search_managed_plan_templates' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "ManagedPlanTemplatesSearchQuery", "type": "object"}, "Note": {"description": "Note model for upskilling plan operations", "properties": {"note_id": {"default": null, "description": "Note ID. Required unless action is create.", "title": "Note Id", "type": "integer"}, "content": {"description": "Note content to save", "title": "Content", "type": "string"}}, "required": ["content"], "title": "Note", "type": "object"}, "PublishedPlanTemplateFilters": {"properties": {"skills": {"description": "Filters templates that include one or more of the given skills", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "business_units": {"description": "Filters templates that include one or more of the given business units", "items": {"type": "string"}, "title": "Business Units", "type": "array"}, "job_functions": {"description": "Filters templates that include one or more of the given job functions", "items": {"type": "string"}, "title": "Job Functions", "type": "array"}, "locations": {"description": "Filters templates that include one or more of the given locations", "items": {"type": "string"}, "title": "Locations", "type": "array"}, "plan_subtype": {"$ref": "#/$defs/UpskillingPlanSubtype", "default": null, "description": "Filters templates of the given subtype"}, "duration": {"default": null, "description": "Filters templates within the given duration range in weeks. The range is inclusive and represented as underscore separated string. Example: '0_4' for 0-4 weeks", "title": "Duration", "type": "string"}}, "title": "PublishedPlanTemplateFilters", "type": "object"}, "PublishedPlanTemplatesSearchQuery": {"properties": {"start": {"default": 0, "description": "Start index of the results. Use this to paginate through the results", "title": "Start", "type": "integer"}, "page_size": {"default": 5, "description": "Number of results to return", "title": "Page Size", "type": "integer"}, "search_terms": {"default": null, "description": "Query terms to search within template plans. Use this for keyword based search on course content like title, description, skills etc.", "title": "Search Terms", "type": "string"}, "recommended": {"default": false, "description": "Whether to search for recommended template plans for the user", "title": "Recommended", "type": "boolean"}, "plan_id": {"anyOf": [{"type": "integer"}, {"type": "null"}], "default": null, "description": "ID of the plan to search for", "title": "Plan Id"}, "filters": {"$ref": "#/$defs/PublishedPlanTemplateFilters", "default": null, "description": "Filters for template plans"}, "discriminator": {"const": "search_published_plan_templates", "description": "REQUIRED: Must be 'search_published_plan_templates' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["discriminator"], "title": "PublishedPlanTemplatesSearchQuery", "type": "object"}, "Task": {"properties": {"entity_id": {"default": null, "description": "ID of the task to update. A new task will be created if this is not provided.", "title": "Entity Id", "type": "integer"}, "title": {"description": "Title of the task", "title": "Title", "type": "string"}, "description": {"description": "Description of the task", "title": "Description", "type": "string"}, "skills": {"description": "Skills required for the task", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "attachments": {"description": "Attachments for the task", "items": {"$ref": "#/$defs/TaskAttachment"}, "title": "Attachments", "type": "array"}}, "required": ["title", "description"], "title": "Task", "type": "object"}, "TaskAttachment": {"description": "Task attachment model for upskilling plan operations", "properties": {"filename": {"description": "Filename of the attachment", "title": "Filename", "type": "string"}, "content": {"description": "Base64 encoded content of the attachment", "title": "Content", "type": "string"}}, "required": ["filename", "content"], "title": "TaskAttachment", "type": "object"}, "UpdateContent": {"description": "Add, update or remove content of the plan.", "properties": {"section_id": {"default": null, "description": "Section ID. Skipping this field will create a new section.", "title": "Section Id", "type": "string"}, "section_name": {"default": null, "description": "Display name of the section. Set this when creating a new section or updating the section name of an existing section.", "title": "Section Name", "type": "string"}, "add_course": {"default": null, "description": "Entity ID of the course to add", "title": "Add Course", "type": "integer"}, "remove_course": {"default": null, "description": "Entity ID of the course to remove", "title": "Remove Course", "type": "integer"}, "add_project": {"default": null, "description": "Entity ID of the project to add", "title": "Add Project", "type": "integer"}, "remove_project": {"default": null, "description": "Entity ID of the project to remove", "title": "Remove Project", "type": "integer"}, "add_task": {"$ref": "#/$defs/Task", "default": null, "description": "Task to add to the plan"}, "update_task": {"$ref": "#/$defs/Task", "default": null, "description": "Update for an existing task."}, "remove_task": {"default": null, "description": "ID of the task to remove", "title": "Remove Task", "type": "integer"}}, "title": "UpdateContent", "type": "object"}, "UpdateIndividualPlanParams": {"properties": {"title": {"default": null, "description": "Plan title", "title": "Title", "type": "string"}, "description": {"default": null, "description": "Plan description", "title": "Description", "type": "string"}, "duration": {"default": null, "description": "Plan duration in weeks", "title": "Duration", "type": "integer"}, "roles": {"description": "List of role IDs associated with the plan", "items": {"type": "integer"}, "title": "Roles", "type": "array"}, "skills": {"description": "List of skill names associated with the plan", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "add_role_goals": {"default": false, "description": "Whether to automatically add the plan's associated roles to the user's career interest role goals.", "title": "Add Role Goals", "type": "boolean"}, "plan_id": {"description": "Plan ID.", "title": "Plan Id", "type": "integer"}, "plan_subtype": {"$ref": "#/$defs/UpskillingPlanSubtype", "default": null, "description": "Plan subtype. Plans created for role or skill should set appropriate subtype."}, "skills_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on skills"}, "business_units": {"description": "List of business units to update", "items": {"type": "string"}, "title": "Business Units", "type": "array"}, "business_units_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on business units"}, "job_functions": {"description": "List of job functions to update", "items": {"type": "string"}, "title": "Job Functions", "type": "array"}, "job_functions_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on job functions"}, "locations": {"description": "List of locations to update", "items": {"type": "string"}, "title": "Locations", "type": "array"}, "locations_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on locations"}, "status": {"$ref": "#/$defs/UpskillingPlanStatus", "default": null, "description": "Publish status of the plan itself: draft, published or archived. Not the progress of a task, course or project; use entity_progress for that."}, "collaborators": {"description": "List of collaborators to update", "items": {"$ref": "#/$defs/Collaborator"}, "title": "Collaborators", "type": "array"}, "collaborators_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on collaborators"}, "notes": {"description": "List of notes to update", "items": {"$ref": "#/$defs/Note"}, "title": "Notes", "type": "array"}, "notes_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on notes"}, "update_content": {"$ref": "#/$defs/UpdateContent", "default": null, "description": "Contains the content to update the plan"}, "assignee": {"anyOf": [{"type": "string"}, {"type": "null"}], "default": null, "description": "Email or profile ID (encoded ID) of the assignee. If not provided, defaults to the current user. Must be provided when the plan is to be assigned to someone else.", "title": "Assignee"}, "entity_progress": {"$ref": "#/$defs/EntityProgress", "default": null, "description": "Marks one task, course or project in the plan as not started, in progress or completed"}, "add_skill_goals": {"default": false, "description": "Whether to add the plan's skills to the user's career interest skill goals. Only for the user's own, self-created plan; fails when the user's skill interests limit would be exceeded. Ask the user before setting it.", "title": "Add Skill Goals", "type": "boolean"}, "discriminator": {"const": "update_individual_plan", "description": "REQUIRED: Must be 'update_individual_plan' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["plan_id", "discriminator"], "title": "UpdateIndividualPlanParams", "type": "object"}, "UpdatePlanTemplateParams": {"properties": {"title": {"default": null, "description": "Plan title", "title": "Title", "type": "string"}, "description": {"default": null, "description": "Plan description", "title": "Description", "type": "string"}, "duration": {"default": null, "description": "Plan duration in weeks", "title": "Duration", "type": "integer"}, "roles": {"description": "List of role IDs associated with the plan", "items": {"type": "integer"}, "title": "Roles", "type": "array"}, "skills": {"description": "List of skill names associated with the plan", "items": {"type": "string"}, "title": "Skills", "type": "array"}, "add_role_goals": {"default": false, "description": "Whether to automatically add the plan's associated roles to the user's career interest role goals.", "title": "Add Role Goals", "type": "boolean"}, "plan_id": {"description": "Plan ID.", "title": "Plan Id", "type": "integer"}, "plan_subtype": {"$ref": "#/$defs/UpskillingPlanSubtype", "default": null, "description": "Plan subtype. Plans created for role or skill should set appropriate subtype."}, "skills_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on skills"}, "business_units": {"description": "List of business units to update", "items": {"type": "string"}, "title": "Business Units", "type": "array"}, "business_units_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on business units"}, "job_functions": {"description": "List of job functions to update", "items": {"type": "string"}, "title": "Job Functions", "type": "array"}, "job_functions_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on job functions"}, "locations": {"description": "List of locations to update", "items": {"type": "string"}, "title": "Locations", "type": "array"}, "locations_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on locations"}, "status": {"$ref": "#/$defs/UpskillingPlanStatus", "default": null, "description": "Publish status of the plan itself: draft, published or archived. Not the progress of a task, course or project; use entity_progress for that."}, "collaborators": {"description": "List of collaborators to update", "items": {"$ref": "#/$defs/Collaborator"}, "title": "Collaborators", "type": "array"}, "collaborators_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on collaborators"}, "notes": {"description": "List of notes to update", "items": {"$ref": "#/$defs/Note"}, "title": "Notes", "type": "array"}, "notes_operation": {"$ref": "#/$defs/ListOperation", "default": "add", "description": "Operation to perform on notes"}, "update_content": {"$ref": "#/$defs/UpdateContent", "default": null, "description": "Contains the content to update the plan"}, "discriminator": {"const": "update_plan_template", "description": "REQUIRED: Must be 'update_plan_template' to use this subtool.", "title": "Discriminator", "type": "string"}}, "required": ["plan_id", "discriminator"], "title": "UpdatePlanTemplateParams", "type": "object"}, "UpskillingPlanAccessMode": {"description": "Used for both upskilling plans and upskilling plan assignments", "enum": ["view", "track", "edit"], "title": "UpskillingPlanAccessMode", "type": "string"}, "UpskillingPlanAssignmentStatus": {"enum": ["invited", "in_progress", "completed", "archived"], "title": "UpskillingPlanAssignmentStatus", "type": "string"}, "UpskillingPlanEntityProgress": {"enum": ["not_started", "in_progress", "completed"], "title": "UpskillingPlanEntityProgress", "type": "string"}, "UpskillingPlanStatus": {"enum": ["draft", "published", "archived"], "title": "UpskillingPlanStatus", "type": "string"}, "UpskillingPlanSubtype": {"enum": ["general", "role", "skill", "campaign"], "title": "UpskillingPlanSubtype", "type": "string"}}, "properties": {"params": {"discriminator": {"mapping": {"create_individual_plan": "#/$defs/CreateIndividualPlanParams", "create_plan_template": "#/$defs/CreatePlanTemplateParams", "delete_plan": "#/$defs/DeleteUpskillingPlanParams", "search_individual_plans": "#/$defs/IndividualPlansSearchQuery", "search_managed_plan_templates": "#/$defs/ManagedPlanTemplatesSearchQuery", "search_published_plan_templates": "#/$defs/PublishedPlanTemplatesSearchQuery", "update_individual_plan": "#/$defs/UpdateIndividualPlanParams", "update_plan_template": "#/$defs/UpdatePlanTemplateParams"}, "propertyName": "discriminator"}, "oneOf": [{"$ref": "#/$defs/IndividualPlansSearchQuery"}, {"$ref": "#/$defs/PublishedPlanTemplatesSearchQuery"}, {"$ref": "#/$defs/ManagedPlanTemplatesSearchQuery"}, {"$ref": "#/$defs/CreateIndividualPlanParams"}, {"$ref": "#/$defs/CreatePlanTemplateParams"}, {"$ref": "#/$defs/UpdateIndividualPlanParams"}, {"$ref": "#/$defs/UpdatePlanTemplateParams"}, {"$ref": "#/$defs/DeleteUpskillingPlanParams"}], "title": "Params"}}, "required": ["params"], "title": "upskilling_planArguments", "type": "object"}}], "scopes": ["analytics", "analytics:read_only", "resource_management", "resource_management:read_only", "talent_acquisition", "talent_acquisition:ai_interview", "talent_acquisition:ai_interview:read_only", "talent_acquisition:read_only", "talent_management", "talent_management:career_interest", "talent_management:career_interest:read_only", "talent_management:career_navigator", "talent_management:career_navigator:read_only", "talent_management:courses", "talent_management:courses:read_only", "talent_management:demand", "talent_management:demand:read_only", "talent_management:mentorship", "talent_management:mentorship:read_only", "talent_management:my_team", "talent_management:my_team:read_only", "talent_management:positions", "talent_management:positions:read_only", "talent_management:profile_skill", "talent_management:profile_skill:read_only", "talent_management:projects", "talent_management:projects:read_only", "talent_management:read_only", "talent_management:skill_proficiency", "talent_management:skill_proficiency:read_only", "talent_management:upskilling", "talent_management:upskilling:read_only", "talent_management:user_settings", "talent_management:user_settings:read_only"]}