> ## Documentation Index
> Fetch the complete documentation index at: https://developer.jobmojito.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interview portal

> The interview portal document: languages, the classic home page texts, and the support, tracking and completion messages.

## Interview portal configuration

Generates the document imported by **Portal customisation → Interview portal → Import configuration**.

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. Languages are only ever added, never removed.

<Note>
  Since the **Pages** editor (Configuration → Interview 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](#where-each-field-goes). To build full pages, a menu, a site footer or a theme, use the [portal pages import](/cookbooks/portal-customisation/portal-pages) instead.
</Note>

## Document

```json theme={null}
{
  "kind": "interview-portal",
  "version": 1,

  "languages": ["en"],

  "pages": [
    {
      "language": "en",

      "hero_box": "# Join the team at _Northgate_\n\nEvery application is reviewed by a person.",
      "about_box": "## About us\n\nWe run 14 clinics across the region.",
      "quote": "The interview felt like a conversation, not an interrogation.",

      "readmore_text": "Read about our hiring process",
      "readmore_link": "https://northgate.example.org/careers/process",
      "readmore_button": "How we hire",

      "interview_completed_box": "Thanks — we will be in touch within five working days.",
      "application_tracking_box": "Track your application any time using the link in your email.",

      "support_page": "## Help\n\nEmail careers@example.org.",

      "public_avatar_id": null,
      "discover_id": null,

      "public_interviews_disabled": false,
      "disable_easy_apply": false
    }
  ]
}
```

`kind` is optional, but when present it must be `"interview-portal"`; a document declaring another kind is refused.

## Fields

| Field | Type | Where it appears |
| - | - | - |
| `languages` | string\[] | Language codes to enable on the interview portal. |
| `pages[].language` | string | Required on every page entry; entries without it are skipped. |
| `hero_box` | markdown | Hero of the portal's classic home page. |
| `about_box` | markdown | "About the company" section of the classic home page. |
| `quote` | string | Pull quote on the classic home page. Plain text, no markdown. |
| `readmore_text` | string | Label of the read-more block. |
| `readmore_link` | url | Its target. |
| `readmore_button` | string | Its button text. |
| `interview_completed_box` | markdown | Shown after a candidate finishes an interview (`/interview/success`). |
| `application_tracking_box` | markdown | Shown on the application-tracking screen (`/application-tracking`). |
| `support_page` | markdown | The portal's support page (`/support`). |
| `public_avatar_id` | uuid \| null | Talking avatar on the classic home page. Leave `null` unless you have a real id. |
| `discover_id` | uuid \| null | Discovery interview offered beside the job openings. Leave `null` unless you have a real id. |
| `public_interviews_disabled` | boolean | `true` hides publicly listed interviews. |
| `disable_easy_apply` | boolean | `true` removes the one-click apply route. |

## Where each field goes

The document touches two places, and they behave differently:

| Fields | Goes to | Saved |
| - | - | - |
| `languages`, `hero_box`, `about_box`, `quote`, the read-more trio, `public_avatar_id`, `discover_id`, `public_interviews_disabled`, `disable_easy_apply` | The Interview portal form. | **Not yet** — the operator reviews the form and presses **Save**. |
| `support_page` | Built-in page `_support` | **Immediately, as a draft.** Each text becomes one text block of that language, replacing the language's blocks; the page's other languages stay. Nothing is published — the operator publishes it from **Pages**. |
| `application_tracking_box` | Built-in page `_tracking` | Same as above. |
| `interview_completed_box` | Built-in page `_completion` | Same as above. |

### 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. For a customised home page, import the page itself (slug `""`) with the [portal pages import](/cookbooks/portal-customisation/portal-pages).

### 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. In `hero_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 Portal customisation → Interview portal: **Portal type** (interview portal or career page — a career page shows positions as job ads and calls them "Positions" in the admin), **Scheduling**, 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](/cookbooks/portal-customisation/portal-pages).

## Rules

* Put the primary language first in `pages[]` — the editor opens on it after import.
* Write candidate-facing copy in second person ("your application"), not third ("the candidate's application").
* Do not set `public_interviews_disabled: true` on 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.