Skip to main content
The coaching catalogue is what a learner browses on the coaching portal. It is a tree of directories; each directory is one page at /catalogue/<id> on your coaching domain, and it can hold two things:
  • Sub-directories — listed explicitly in the directory’s tags_sub.
  • Coaching sessionsnot listed explicitly. A session appears because its own tags match the directory’s tags_interview_set_filter.
That indirection is the whole design: you tag a session once, and it shows up in every directory whose filter it satisfies. Nothing has to be re-linked when you add a session.
Coaching-platform feature. Directories only render on a coaching portal; they have no effect on the recruiting/interview portal.

The mental model

How a session gets into a directory

A session is listed when all of these are true:
The tag filter is an AND, not an OR. A directory filtering on ["sales", "objection-handling"] lists only sessions carrying both tags. A session may carry extra tags — that is what lets one session appear in several directories.
Two edge cases are worth knowing:
  • tags_interview_set_filter: [] (empty array) matches every tagged session — a useful “everything” directory, and an easy accident.
  • tags_interview_set_filter: null matches nothing. A brand-new directory created without the field lists no sessions until you set it.

Walkthrough

1

See what already exists

Start from the root and walk down, rather than guessing ids.
include_public=true (the default) also returns the platform-wide directories shared across merchants. Set it to false to see only your own.
2

Create the directory

The id is the URL segment and cannot be changed later — other directories reference it in their tags_sub. Use lowercase letters, digits and single -/_ separators, and end it with the language code by convention.
parent_tag appends the new id to that directory’s tags_sub, so the page is reachable immediately. Omit it and the directory exists but is only reachable by direct link until you add it to a parent.The response returns catalogue_url — the live page — when your merchant has a coaching domain configured.
3

Tag the sessions

A new session takes its tags on create. All three creation endpoints accept tags:
An existing session is re-tagged with update_interview. tags is replaced wholesale, so read the current value first and send the extended list:
persona-create defaults to portal: "coaching", which is the variant that belongs in a catalogue. A persona created with portal: "interview" is stored as persona_interview and is never listed in the catalogue — it goes through the recruiting invitation flow instead. See Create an interview.
4

Verify the mapping

Do not assume the tags matched. get_catalogue_directory returns the sessions the directory actually lists, applying exactly the rules the live portal applies:
An empty matched_sessions almost always means one of four things: the session is still draft, its visibility is merchant_invite/merchant_unlisted, its type is not coaching/persona, or its tags are missing one of the filter’s tags.
5

Author a custom page (optional)

By default a directory renders as a plain grid: sub-directories, then sessions. Set content_md and your Markdown takes over the layout instead.
Directives must sit alone on their own line — one on a line with other text renders as ordinary text:
content_md is replaced wholesale. Read the current page with get_catalogue_directory and send the edited whole — not a fragment. Sending null removes the custom page and restores the default grid.
A directive can only show sessions the directory already lists. If [sessions:filter=…] renders nothing, check matched_sessions first — the filter narrows that set, it does not widen it.

One directory per language

The catalogue groups directories by mojito_language_code, and the portal’s directory switcher only offers directories in the visitor’s language. A bilingual catalogue is therefore two parallel trees — sales-coaching-en and sales-coaching-de — each nested under its own language’s root, each with its own sessions. Tags themselves are language-neutral, so the same tag can serve both trees if the sessions are language-specific.

Coaching plans

coach_plan marks a directory (or a session) as a stage of a guided plan — demo, screening, 2nd, 3rd, closing, job-specific, other. Learners then see their progress through those stages wherever a page carries the [plan-progress] directive. Leave it null for anything that is not part of a plan.

Gotchas

Next steps

Create an interview

Create the coaching sessions and role-play personas the catalogue lists.

Review results

Read transcripts and feedback once learners complete a session.