Interview portal configuration
Generates the document imported by Configuration → Branding & Configuration → Import configuration → Interview portal. The interview portal is the candidate-facing side: the public job list and position pages, the apply flow, and the screens a candidate sees around an interview. It is a different product from the coaching portal and has its own languages and content. Every field is optional: omitted fields keep their current value, and so donull and empty strings (an import cannot clear a field). Languages are only ever added, never removed. Every pages[].language is enabled too, even when languages does not list it.
The import dialog checks the document first (a dry run) and lists what will change. Apply then saves everything at once: the portal fields straight to the portal, the built-in page texts as drafts. Apply is blocked while Branding & Configuration has unsaved changes of its own. The same document can also be sent through the API or MCP.
Since the Pages editor (Configuration → Interview portal, named Career page on a career portal), the support, application-tracking and interview-completed texts are built-in pages. This import still accepts them, but writes them into those pages’ drafts (see Where each field goes). To build full pages, a menu, a site footer or a theme, use the portal pages import instead.
Document
kind is optional, but when present it must be "interview-portal"; a document declaring another kind is refused.
Fields
public_interviews_disabled and disable_easy_apply are stored per language: set them in every pages[] entry that should behave the same.
Where each field goes
The document touches two places, and they behave differently:The classic home page
hero_box, about_box, quote, the read-more block, public_avatar_id and discover_id make up the portal’s classic home page. They show only while the home page has not been customised in Pages. Once the operator presses Customise home page, those sections become editable blocks of the page and the page wins: importing these fields afterwards changes nothing a candidate sees (only public_interviews_disabled still hides the Jobs menu link). For a customised home page, import the page itself (slug "") with the portal pages import.
The read-more block
readmore_text, readmore_link and readmore_button are one unit. Supply all three or none: a partial set renders a block with a missing label or a button that goes nowhere.
Ids
public_avatar_id and discover_id are database ids. Never invent them. If you do not have a confirmed id, emit null or omit the field. A fabricated id produces a broken page rather than a validation error, because the importer cannot check ids that live in another table.
Markdown
Rendered with a restricted renderer: headings, bold, italic, lists, links. Inhero_box, wrapping a word in _underscores_ renders it as the italic accent word.
Keep interview_completed_box short: it is read once, by someone who has just finished an interview and wants to know what happens next. Say what happens and when.
Not in this document
Set by hand in Branding & Configuration, Interview portal tab (named Career page on a career portal): Portal type (interview portal or career page; a career page shows positions as job ads and calls them “Positions” in the admin), Scheduling, Blogs, the SMS / WhatsApp sender, and the candidate e-mail flow. Pages, the site footer, the menu and the theme CSS come from the portal pages import.Import through the API or MCP
Send the document indocuments of POST /portal-configuration-update with "kind": "interview-portal", first with "dry_run": true to see what would change, then with false to apply. GET /portal-configuration-get?sections=interview-portal returns the current document to edit and send back. It leaves out the built-in page texts: read and change _support, _tracking and _completion in the interview-pages document instead, with the portal pages import. The MCP tools are get_portal_configuration and update_portal_configuration. publish does not apply here: the built-in page drafts are never published by an import. The request fields and a curl example are on the Branding page.
Rules
- Put the primary language first in
pages[]. - Write candidate-facing copy in second person (“your application”), not third (“the candidate’s application”).
- Do not set
public_interviews_disabled: trueon a portal whose whole purpose is a public careers page; check before emitting it. - Tell the operator that the support, tracking and completion texts land as drafts in Pages and need publishing there.