Skip to main content
Glama

Explore from My Selfie

explore_from_my_selfie
Read-only

Explore careers and further learning in either direction. From the person's learning: the occupations and program areas their statements (proposed ones too, with their affirmation shown), the phrases you name from their descriptions, or their words reach through the KSA Dictionary's link words, a page at a time. From a target they name or select: an occupation (SOC code), a certification (its id), a program (a CourseShelf program_id or a CIP code) or a Transitions destination (to_soc with its from_soc), by the identifier the service returned; no earlier interview answer is needed and a package is started when none is sent. Each answer gives the source, the ONET elements the person's statements share with it, questions to explore from every ONET branch (paged), learning areas or occupations it crosses to (paged), and keeps the possibility in the person's record with what prompted it. Exploration only: not a qualification, a score, a credit award or verified competence. A statement comes only from what the person then describes in their own words.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "explore_from_my_selfie"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoFrom the person's learning: connections per page (default 20, at most 50)
wordsNoWords the person used for work or study they have in mind
offsetNoFrom the person's learning: the next_offset of a previous answer
targetNoFrom a target: what the person names or selects, by the identifier its service returned
channelNoHow the person said it; text when omitted
packageNoThe package the last GoldSeam Selfie answer returned (goldribbon_package_v1 with its selfie_interview part). Keep it for the person and send it back whole; GoldSeam keeps no copy.
questionsNo{ limit, offset }: the page of questions to explore (default 20, at most 50)
prompted_byNoWhat prompted this exploration: statement_ids, description_ids, interest_id or explored_id the package holds
statement_idsNoFrom the person's learning: only these statements; every statement not set aside when omitted
interest_wordsNoThe person's own words naming this as something they want to explore; kept as an interest linked to the target
learning_areasNoFrom a target: { limit, offset } for the learning areas or occupations it crosses to
from_descriptionsNoFrom the person's learning: phrases you name from their recorded descriptions

Output Schema

NameRequiredDescriptionDefault
modeNofrom_learning or from_target
countNo
limitsNoWhat this answer could not do, each { code, statement }
offsetNo
statusNoWhat happened, or needs_attention with a problem
targetNoFrom a target: what was read, with its explored_id and the observation_id it was kept as
packageNoThe person's package with the interview; absent when the call could not use it
problemNoWhen status is needs_attention: code, statement, what_to_do
contractYes
statementYes
truncatedNo
how_to_useNo
connectionsNoFrom the person's learning: this page of connections, each with its explored_id and the observation_id it was kept as
next_offsetNo
prompted_byNo
next_actionsNo
total_matchingNo
interest_recordedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changed
    • addedInput schema / properties / channel
      Added value: +{
      +  "description": "How the person said it; text when omitted",
      +  "enum": [
      +    "text",
      +    "voice",
      +    "avatar"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / from_descriptions
      Added value: +{
      +  "description": "From the person's learning: phrases you name from their recorded descriptions",
      +  "items": {
      +    "properties": {
      +      "description_id": {
      +        "type": "string"
      +      },
      +      "phrases": {
      +        "description": "The words in their description that carry what they did",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      }
      +    },
      +    "required": [
      +      "description_id",
      +      "phrases"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / interest_words
      Added value: +{
      +  "description": "The person's own words naming this as something they want to explore; kept as an interest linked to the target",
      +  "type": "string"
      +}
    • addedInput schema / properties / learning_areas
      Added value: +{
      +  "description": "From a target: { limit, offset } for the learning areas or occupations it crosses to",
      +  "type": "object"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "From the person's learning: connections per page (default 20, at most 50)",
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "From the person's learning: the next_offset of a previous answer",
      +  "type": "integer"
      +}
    • addedInput schema / properties / prompted_by
      Added value: +{
      +  "description": "What prompted this exploration: statement_ids, description_ids, interest_id or explored_id the package holds",
      +  "type": "object"
      +}
    • addedInput schema / properties / questions
      Added value: +{
      +  "description": "{ limit, offset }: the page of questions to explore (default 20, at most 50)",
      +  "type": "object"
      +}
    • changedInput schema / properties / statement_ids / description
      Previous value: -"Only these statements; every statement not set aside when omitted"New value: +"From the person's learning: only these statements; every statement not set aside when omitted"
    • addedInput schema / properties / target
      Added value: +{
      +  "description": "From a target: what the person names or selects, by the identifier its service returned",
      +  "properties": {
      +    "code": {
      +      "description": "A SOC code, a certification id, a CourseShelf program_id or a CIP code, or a destination's to_soc",
      +      "type": "string"
      +    },
      +    "from_soc": {
      +      "description": "For a destination: the occupation find_transitions led from",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "enum": [
      +        "occupation",
      +        "certification",
      +        "program",
      +        "destination"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "kind",
      +    "code"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "package"
      -]
    • addedOutput schema / properties / connections / description
      Added value: +"From the person's learning: this page of connections, each with its explored_id and the observation_id it was kept as"
    • addedOutput schema / properties / count
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / interest_recorded
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / mode
      Added value: +{
      +  "description": "from_learning or from_target",
      +  "type": "string"
      +}
    • addedOutput schema / properties / next_offset
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / prompted_by
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / target
      Added value: +{
      +  "description": "From a target: what was read, with its explored_id and the observation_id it was kept as",
      +  "type": "object"
      +}
    • addedOutput schema / properties / total_matching
      Added value: +{
      +  "type": "integer"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "type": "boolean"
      +}
  2. Added

TDQS

A3.5/5.0
Behavior4/5

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

readOnlyHint is already supplied, and the description adds genuine context beyond it: paging behavior ('a page at a time', default 20, at most 50), the package lifecycle ('send it back whole; GoldSeam keeps no copy'), and the explicit disclaimer that results are exploration only, not verified competence. The phrase 'keeps the possibility in the person's record' reads as state mutation, but the package-return design externalizes that state to the caller, so it is not a direct contradiction of readOnlyHint.

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

Conciseness2/5

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

The first sentence is front-loaded and clear, but the body collapses into very long run-on clauses, e.g. the sentence listing occupations, program areas, phrases and KSA link words 'a page at a time', which is difficult to parse on first read. The content is substantive but the structure works against comprehension.

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

Completeness4/5

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

For a 12-parameter tool with nested objects, the description covers both entry modes, pagination, the package round-trip, and what each answer contains (source, shared O*NET elements, paged questions, crossings, recorded possibility). Since an output schema exists, the return-value summary is bonus rather than a gap, and the definition is close to complete.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter is already documented in the schema, including the 'From the person's learning' versus 'From a target' prefixes. The description reinforces which parameters belong to which direction but adds little semantic detail beyond that grouping, so the baseline 3 applies.

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

Purpose4/5

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

The opening sentence states a specific verb and resource ('Explore careers and further learning') and immediately splits the tool into two well-defined directions: from the person's learning, or from a named/selected target. The two-mode framing makes the tool distinguishable in concept, though it never names a sibling tool it replaces, so an agent must infer the boundary with find_transitions, find_pathways or compare_destinations on its own.

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

Usage Guidelines3/5

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

It gives real conditions for each mode ('no earlier interview answer is needed and a package is started when none is sent') and states that exploration is not a qualification, score or credit award. However, with dozens of sibling tools covering occupations, programs, certifications and transitions, there is no explicit statement of when to prefer this over find_transitions or find_pathways, so the routing guidance is implied rather than stated.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.