{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "<string>",
"name": "documents",
"errors": [
"documents[0]: style must be \"bold\" or \"minimal\", got \"dark\".",
"documents[1].pages[0]: slug \"jobs\" is not allowed (reserved)"
]
}
Update the portal configuration (branding, portals, brands, pages)
Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.
POST
/
portal-configuration-update
Update the portal configuration (branding, portals, brands, pages)
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "Field is required.",
"name": "interview_result_id"
}
{
"error": "<string>",
"name": "documents",
"errors": [
"documents[0]: style must be \"bold\" or \"minimal\", got \"dark\".",
"documents[1].pages[0]: slug \"jobs\" is not allowed (reserved)"
]
}
1 to 20 documents, applied in order (a later document wins where two set the same thing). Every field a document omits keeps its current value; languages are only ever added, never removed.
Optional: lock the call to one document type, as one admin import tab does. Every document must then be that type (portal-site accepts both portal-site and portal-page formats), and a document that declares neither kind nor format is read as this type with a warning. Without it, every document must declare its own kind or format.
Where portal-site pages and theme CSS go: interview (candidate-facing interview / careers portal) or consumer (coaching portal). Default: the portal-site document's own portal, else interview. A document made for the other portal is imported here with a warning.
Also publish the imported pages and theme CSS (live at once, as the admin's "Publish after import"). Default false: pages land as drafts the company reviews in the admin. Style settings and CSS files in the documents are built into a stylesheet per brand and published too, by the same build as portal-css-publish: the files a document names go live, the others stay as last published. Built-in page drafts produced by interview-portal / coaching-portal documents are never published. With page versions switched on, only a company owner or admin may publish.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"JobMojito Developer / Agent","description":"AI Interview and assessment conversational platform documentation","colors":{"primary":"#639C42","light":"#ACCC37","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=6c00cb5f3104ffb6325dacc0818bba69","dark":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-dark.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=a05ab0ca109d7a225b08ccac00f9c486","href":"https://jobmojito.com"},"favicon":{"light":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/favicon-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=f300813ab120824238a790b6905dceee","dark":"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/favicon-dark.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=2104ff9e7b9fd23fbe5954886c0aafbe"},"navbar":{"links":[{"href":"https://jobmojito.com/support","label":"Support"},{"href":"https://jobmojito.com","label":"Homepage"},{"href":"https://app.jobmojito.com","label":"App"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.mintlify.com"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/jobmojito"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"toc"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"jobmojito","hasAudioNarration":false,"actualSubdomain":"jobmojito","customDomains":["developer.jobmojito.com"],"gitSource":{"type":"github","owner":"mintlify-community","repo":"docs-jobmojito-fee23398","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af1dfb6ee06d45cdd87d014","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API Reference","count":82},{"language":"default","tag":"Admin","count":19},{"language":"default","tag":"Cookbooks","count":17},{"language":"default","tag":"Webhooks","count":14},{"language":"default","tag":"MCP","count":13},{"language":"default","tag":"Candidates","count":12},{"language":"default","tag":"Interviews","count":10},{"language":"default","tag":"Connect","count":8},{"language":"default","tag":"Reports","count":7},{"language":"default","tag":"Results","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages","slug":"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages","pageMetadata":{"title":"Update the portal configuration (branding, portals, brands, pages)","description":"Imports portal configuration documents in one call: **branding** (portal name, style, colours, logos, e-mail sender name, speech term boosting), the **interview portal** (languages, home texts, support / application-tracking / interview-completed texts), the **coaching portal** (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), **brands** (the sub-brands of the company, with logos, privacy notice and style settings) and **portal sites** (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with `dry_run: true` to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless `publish` is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-configuration-update","href":"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Imports portal configuration documents in one call: \", _jsx(_components.strong, {\n children: \"branding\"\n }), \" (portal name, style, colours, logos, e-mail sender name, speech term boosting), the \", _jsx(_components.strong, {\n children: \"interview portal\"\n }), \" (languages, home texts, support / application-tracking / interview-completed texts), the \", _jsx(_components.strong, {\n children: \"coaching portal\"\n }), \" (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), \", _jsx(_components.strong, {\n children: \"brands\"\n }), \" (the sub-brands of the company, with logos, privacy notice and style settings) and \", _jsx(_components.strong, {\n children: \"portal sites\"\n }), \" (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: \", _jsx(_components.a, {\n href: \"https://developer.jobmojito.com/cookbooks/portal-branding/branding\",\n children: \"https://developer.jobmojito.com/cookbooks/portal-branding/branding\"\n }), \", \", _jsx(_components.a, {\n href: \"https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal\",\n children: \"https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal\"\n }), \", \", _jsx(_components.a, {\n href: \"https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal\",\n children: \"https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal\"\n }), \", \", _jsx(_components.a, {\n href: \"https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages\",\n children: \"https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages\"\n }), \". Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with \", _jsx(_components.code, {\n children: \"dry_run: true\"\n }), \" to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless \", _jsx(_components.code, {\n children: \"publish\"\n }), \" is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update the portal configuration (branding, portals, brands, pages)","description":"Imports portal configuration documents in one call: **branding** (portal name, style, colours, logos, e-mail sender name, speech term boosting), the **interview portal** (languages, home texts, support / application-tracking / interview-completed texts), the **coaching portal** (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), **brands** (the sub-brands of the company, with logos, privacy notice and style settings) and **portal sites** (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with `dry_run: true` to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless `publish` is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-configuration-update","href":"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Admin"],"summary":"Update the portal configuration (branding, portals, brands, pages)","description":"Imports portal configuration documents in one call: **branding** (portal name, style, colours, logos, e-mail sender name, speech term boosting), the **interview portal** (languages, home texts, support / application-tracking / interview-completed texts), the **coaching portal** (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), **brands** (the sub-brands of the company, with logos, privacy notice and style settings) and **portal sites** (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with `dry_run: true` to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless `publish` is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.","security":["cf699208-ac1b-4fa5-a467-88cd6168426c"],"requestBody":"9b7f2eae-efe4-4d5e-a2a3-07c66b5f57a3","responses":{"200":"1df9682f-e64a-40e9-9f2f-8dd7262f72c1","401":"912031cc-bcb3-4a30-8e32-36547f9d630d","403":"1d3aa6a5-4ad2-4ad3-921b-220f43b94c65","404":"a9970690-8a92-42e4-86fd-73f53a2d09b4","422":"17e6af75-6b9d-41b1-99a7-aa554ec80c0f","500":"d831af38-44b8-4430-adec-a7c54327d0fe"},"method":"post","type":"path","servers":["454fcb62-7052-4847-a728-ecf5ade065a6"],"path":"/portal-configuration-update","baseUrlOptions":["https://cool.jobmojito.com/functions/v1"],"title":"Update the portal configuration (branding, portals, brands, pages)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"documents":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["branding","interview-portal","coaching-portal","brands"],"description":"Portal configuration document type. `branding`: portal name, style, colours, logos, e-mail sender name, speech term boosting. `interview-portal`: interview portal languages and the per-language home texts. `coaching-portal`: coaching portal vertical (`use_case`), feature toggles, label overrides, coaching plan, catalogue start directory, languages and per-language home blocks. `brands`: `{ brands: [{ name, tag, slug, logo_url, logo_dark_url, icon_url, privacy_notice_url, style_settings, sort_order, status }] }`, the sub-brands. A brand is matched by `tag`, which never changes; the main brand is the company itself and has no entry. A new brand needs `name`; `slug` is optional, a short name kept for older links that decides no page address (two brands cannot share one). A brand left out stays as it is; `status: \"deleted\"` retires one, and null clears a field. Refused with 422 while the company's `brands` switch is off. A portal site document declares `format` instead.","example":"branding","uniqueKey":"documents.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"format":{"type":"string","enum":["jobmojito.portal-site","jobmojito.portal-page"],"description":"Portal site document type. `jobmojito.portal-site`: `{ portal, theme: { css }, style_settings, css_files: [{ path, brand, content, sort_order, version }], pages: [Page] }`, a whole site (pages in every language, the menu, the footer and the theme CSS). `jobmojito.portal-page`: `{ page: Page }`, one page. Page = `{ slug, brand, show_in_menu, sort_order, languages: [{ mojito_language_code, title, description, blocks }] }`; slug \"\" is the home page, \"_footer\", \"_support\", \"_jobs\" etc. are the built-in pages. A page's `brand` is the tag of a sub-brand, null for the main brand; a brand page can have any slug except the home page \"\" and the built-in pages, which belong to the main brand. `style_settings` are the main brand's colours, fonts, spacing steps, page width, corners and headings; a sub-brand's are in the brands document. `css_files` are matched by brand and path and never removed; send the `version` you read and a file changed since is refused. These parts are refused with 422 while the company's `portal_styles` or `brands` switch is off.","example":"jobmojito.portal-site","uniqueKey":"documents.items.[INDEX].format","typeLabel":"enum\u003cstring>"},"version":{"oneOf":[{"description":"Document format version. Always 1.","example":1,"uniqueKey":"documents.items.[INDEX].version.oneOf.0","typeLabel":"any"},{"description":"Document format version. Always 1.","example":1,"type":"null","uniqueKey":"documents.items.[INDEX].version.oneOf.1","typeLabel":"null"}],"uniqueKey":"documents.items.[INDEX].version","typeLabel":"any | null"}},"description":"One configuration document: declares either `kind` (branding, interview-portal, coaching-portal, brands) or `format` (jobmojito.portal-site, jobmojito.portal-page), plus that type's fields. Field reference: branding https://developer.jobmojito.com/cookbooks/portal-branding/branding, interview portal https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, coaching portal https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, portal pages https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Unknown fields are ignored with a warning; wrong types and enum values are errors.","additionalProperties":true,"uniqueKey":"documents.items.[INDEX]","typeLabel":"object"},"minItems":1,"maxItems":20,"description":"1 to 20 documents, applied in order (a later document wins where two set the same thing). Every field a document omits keeps its current value; languages are only ever added, never removed.","isRequired":true,"uniqueKey":"documents","typeLabel":"object[]"},"merchant_id":{"type":"string","format":"uuid","description":"Optional merchant to configure. Admins and sub-merchant operators only; other callers always use their token's merchant.","example":"28106cba-1c27-4e53-b149-32113e5e8e31","uniqueKey":"merchant_id","typeLabel":"string\u003cuuid>"},"kind":{"type":"string","enum":["branding","interview-portal","coaching-portal","brands","portal-site"],"description":"Optional: lock the call to one document type, as one admin import tab does. Every document must then be that type (`portal-site` accepts both portal-site and portal-page formats), and a document that declares neither `kind` nor `format` is read as this type with a warning. Without it, every document must declare its own `kind` or `format`.","uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"portal":{"type":"string","enum":["interview","consumer"],"description":"Where portal-site pages and theme CSS go: `interview` (candidate-facing interview / careers portal) or `consumer` (coaching portal). Default: the portal-site document's own `portal`, else `interview`. A document made for the other portal is imported here with a warning.","uniqueKey":"portal","typeLabel":"enum\u003cstring>"},"publish":{"type":"boolean","default":false,"description":"Also publish the imported pages and theme CSS (live at once, as the admin's \"Publish after import\"). Default false: pages land as drafts the company reviews in the admin. Style settings and CSS files in the documents are built into a stylesheet per brand and published too, by the same build as portal-css-publish: the files a document names go live, the others stay as last published. Built-in page drafts produced by interview-portal / coaching-portal documents are never published. With page versions switched on, only a company owner or admin may publish.","uniqueKey":"publish","typeLabel":"boolean"},"dry_run":{"type":"boolean","default":false,"description":"Validate and report what would change (summary, warnings, changes) without writing anything. Use it to preview an import before applying it.","uniqueKey":"dry_run","typeLabel":"boolean"}},"required":["documents"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"documents":[{"kind":"branding","format":"jobmojito.portal-site","version":1}],"merchant_id":"28106cba-1c27-4e53-b149-32113e5e8e31","publish":false,"dry_run":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"1df9682f-e64a-40e9-9f2f-8dd7262f72c1":{"description":"Documents validated and (unless dry_run) applied.","content":{"application/json":{"schema":{"type":"object","properties":{"merchant_id":{"type":"string","description":"Merchant that was configured.","example":"28106cba-1c27-4e53-b149-32113e5e8e31","isRequired":true,"uniqueKey":"merchant_id","typeLabel":"string"},"dry_run":{"type":"boolean","description":"True when nothing was written.","isRequired":true,"uniqueKey":"dry_run","typeLabel":"boolean"},"documents":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","description":"Position of the document in the request.","example":0,"isRequired":true,"uniqueKey":"documents.items.[INDEX].index","typeLabel":"integer"},"kind":{"type":"string","enum":["branding","interview-portal","coaching-portal","brands","portal-site"],"description":"How the document was read.","isRequired":true,"uniqueKey":"documents.items.[INDEX].kind","typeLabel":"enum\u003cstring>"},"summary":{"type":"array","items":{"type":"string","uniqueKey":"documents.items.[INDEX].summary.items.[INDEX]","typeLabel":"string"},"description":"What the document sets, in the lines the admin dialog shows (\"+ /slug\" a new page, \"↻ /slug\" a replaced one).","example":["3 colour(s)","style \"minimal\"","portal name"],"isRequired":true,"uniqueKey":"documents.items.[INDEX].summary","typeLabel":"string[]"},"warnings":{"type":"array","items":{"type":"string","uniqueKey":"documents.items.[INDEX].warnings.items.[INDEX]","typeLabel":"string"},"description":"Parts that were ignored or adjusted. Warnings never block the import.","isRequired":true,"uniqueKey":"documents.items.[INDEX].warnings","typeLabel":"string[]"}},"required":["index","kind","summary","warnings"],"uniqueKey":"documents.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"documents","typeLabel":"object[]"},"changes":{"type":"object","properties":{"merchant_fields":{"type":"array","items":{"type":"string","uniqueKey":"changes.merchant_fields.items.[INDEX]","typeLabel":"string"},"description":"Company settings that change: column names, with the key for the branding / feature jsonb and the language for home texts.","example":["homepage_name","template_colors.c_primary","interview_homepage_texts.de"],"isRequired":true,"uniqueKey":"changes.merchant_fields","typeLabel":"string[]"},"pages_created":{"type":"array","items":{"type":"string","uniqueKey":"changes.pages_created.items.[INDEX]","typeLabel":"string"},"description":"Slugs of pages created.","example":["our-history"],"isRequired":true,"uniqueKey":"changes.pages_created","typeLabel":"string[]"},"pages_updated":{"type":"array","items":{"type":"string","uniqueKey":"changes.pages_updated.items.[INDEX]","typeLabel":"string"},"description":"Slugs of existing pages whose draft (or published version) changes.","example":["about","_support"],"isRequired":true,"uniqueKey":"changes.pages_updated","typeLabel":"string[]"},"pages_unchanged":{"type":"array","items":{"type":"string","uniqueKey":"changes.pages_unchanged.items.[INDEX]","typeLabel":"string"},"description":"Slugs of pages the documents carry that already hold the same content (not written).","isRequired":true,"uniqueKey":"changes.pages_unchanged","typeLabel":"string[]"},"theme_css":{"type":"boolean","description":"Whether the theme CSS changes.","isRequired":true,"uniqueKey":"changes.theme_css","typeLabel":"boolean"},"published":{"type":"boolean","description":"Whether anything is published by this call.","isRequired":true,"uniqueKey":"changes.published","typeLabel":"boolean"},"portal":{"type":"string","enum":["interview","consumer"],"description":"Portal the portal-site pages and theme CSS went to.","isRequired":true,"uniqueKey":"changes.portal","typeLabel":"enum\u003cstring>"},"page_changes":{"type":"array","items":{"type":"object","properties":{"portal":{"type":"string","enum":["interview","consumer"],"description":"Portal of the page.","isRequired":true,"uniqueKey":"changes.page_changes.items.[INDEX].portal","typeLabel":"enum\u003cstring>"},"slug":{"type":"string","description":"Page slug (\"\" is the home page).","isRequired":true,"uniqueKey":"changes.page_changes.items.[INDEX].slug","typeLabel":"string"},"action":{"type":"string","enum":["create","update","unchanged"],"description":"What happens to the page.","isRequired":true,"uniqueKey":"changes.page_changes.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"published":{"type":"boolean","description":"Whether this write publishes the page.","isRequired":true,"uniqueKey":"changes.page_changes.items.[INDEX].published","typeLabel":"boolean"}},"required":["portal","slug","action","published"],"uniqueKey":"changes.page_changes.items.[INDEX]","typeLabel":"object"},"description":"Every page touched, with its portal (built-in page drafts from a coaching-portal document go to the consumer portal).","isRequired":true,"uniqueKey":"changes.page_changes","typeLabel":"object[]"},"brands":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string","isRequired":true,"uniqueKey":"changes.brands.items.[INDEX].tag","typeLabel":"string"},"action":{"type":"string","enum":["create","update","delete","unchanged"],"isRequired":true,"uniqueKey":"changes.brands.items.[INDEX].action","typeLabel":"enum\u003cstring>"}},"required":["tag","action"],"uniqueKey":"changes.brands.items.[INDEX]","typeLabel":"object"},"description":"Sub-brands in the documents and what happens to each. Present only when a brands document was sent.","uniqueKey":"changes.brands","typeLabel":"object[]"},"css_files":{"type":"array","items":{"type":"object","properties":{"brand":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"changes.css_files.items.[INDEX].brand.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"changes.css_files.items.[INDEX].brand.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"changes.css_files.items.[INDEX].brand","typeLabel":"string | null"},"path":{"type":"string","isRequired":true,"uniqueKey":"changes.css_files.items.[INDEX].path","typeLabel":"string"},"action":{"type":"string","enum":["create","update","unchanged"],"isRequired":true,"uniqueKey":"changes.css_files.items.[INDEX].action","typeLabel":"enum\u003cstring>"}},"required":["brand","path","action"],"uniqueKey":"changes.css_files.items.[INDEX]","typeLabel":"object"},"description":"CSS files in the documents; `brand` null is the main brand. Present only when there are any.","uniqueKey":"changes.css_files","typeLabel":"object[]"},"style_settings":{"type":"boolean","description":"True when the main brand's style settings change. Present only then.","uniqueKey":"changes.style_settings","typeLabel":"boolean"},"stylesheets_published":{"type":"array","items":{"type":"object","properties":{"portal":{"type":"string","enum":["interview","consumer"],"isRequired":true,"uniqueKey":"changes.stylesheets_published.items.[INDEX].portal","typeLabel":"enum\u003cstring>"},"brand":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"changes.stylesheets_published.items.[INDEX].brand.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"changes.stylesheets_published.items.[INDEX].brand.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"changes.stylesheets_published.items.[INDEX].brand","typeLabel":"string | null"}},"required":["portal","brand"],"uniqueKey":"changes.stylesheets_published.items.[INDEX]","typeLabel":"object"},"description":"Stylesheets built and published by this call; `brand` null is the main brand. Present only when there are any.","uniqueKey":"changes.stylesheets_published","typeLabel":"object[]"}},"required":["merchant_fields","pages_created","pages_updated","pages_unchanged","theme_css","published","portal","page_changes"],"description":"What changed (for a dry run: what would change).","isRequired":true,"uniqueKey":"changes","typeLabel":"object"}},"required":["merchant_id","dry_run","documents","changes"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"merchant_id":"28106cba-1c27-4e53-b149-32113e5e8e31","dry_run":true,"documents":[{"index":0,"kind":"branding","summary":["3 colour(s)","style \"minimal\"","portal name"],"warnings":["\u003cstring>"]}],"changes":{"merchant_fields":["homepage_name","template_colors.c_primary","interview_homepage_texts.de"],"pages_created":["our-history"],"pages_updated":["about","_support"],"pages_unchanged":["\u003cstring>"],"theme_css":true,"published":true,"portal":"interview","page_changes":[{"portal":"interview","slug":"\u003cstring>","action":"create","published":true}],"brands":[{"tag":"\u003cstring>","action":"create"}],"css_files":[{"brand":"\u003cstring>","path":"\u003cstring>","action":"create"}],"style_settings":true,"stylesheets_published":[{"portal":"interview","brand":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"912031cc-bcb3-4a30-8e32-36547f9d630d":{"description":"Missing, expired or invalid access token.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"1d3aa6a5-4ad2-4ad3-921b-220f43b94c65":{"description":"Your token is not allowed to use this endpoint (it is not a merchant, merchant owner or admin token), or row-level security refused the write.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"a9970690-8a92-42e4-86fd-73f53a2d09b4":{"description":"No merchant with this id (or not visible to you).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Field is required.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"interview_result_id","uniqueKey":"name","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Field is required.","name":"interview_result_id"}}},"exampleType":"generated"}},"exampleType":"generated"},"17e6af75-6b9d-41b1-99a7-aa554ec80c0f":{"description":"Validation error: the request is malformed, or at least one document has an error (all listed in `errors`). Nothing was written.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"The first problem, or a count.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"documents","uniqueKey":"name","typeLabel":"string"},"errors":{"type":"array","items":{"type":"string","uniqueKey":"errors.items.[INDEX]","typeLabel":"string"},"description":"Every problem found, each prefixed with the document it is in. Nothing was written.","example":["documents[0]: style must be \"bold\" or \"minimal\", got \"dark\".","documents[1].pages[0]: slug \"jobs\" is not allowed (reserved)"],"uniqueKey":"errors","typeLabel":"string[]"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","name":"documents","errors":["documents[0]: style must be \"bold\" or \"minimal\", got \"dark\".","documents[1].pages[0]: slug \"jobs\" is not allowed (reserved)"]}}},"exampleType":"generated"}},"exampleType":"generated"},"d831af38-44b8-4430-adec-a7c54327d0fe":{"description":"Server error. When some writes succeeded before others failed, `failures` lists the failed writes and `applied` what was written.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"name":{"type":"string","example":"write","uniqueKey":"name","typeLabel":"string"},"failures":{"type":"array","items":{"type":"string","uniqueKey":"failures.items.[INDEX]","typeLabel":"string"},"description":"The writes that failed.","uniqueKey":"failures","typeLabel":"string[]"},"applied":{"type":"object","description":"What was written before / despite the failures.","required":["merchant_fields","pages_created","pages_updated","pages_unchanged","theme_css","published","portal","page_changes"],"properties":{"merchant_fields":{"type":"array","items":{"type":"string","uniqueKey":"applied.merchant_fields.items.[INDEX]","typeLabel":"string"},"description":"Company settings that change: column names, with the key for the branding / feature jsonb and the language for home texts.","example":["homepage_name","template_colors.c_primary","interview_homepage_texts.de"],"isRequired":true,"uniqueKey":"applied.merchant_fields","typeLabel":"string[]"},"pages_created":{"type":"array","items":{"type":"string","uniqueKey":"applied.pages_created.items.[INDEX]","typeLabel":"string"},"description":"Slugs of pages created.","example":["our-history"],"isRequired":true,"uniqueKey":"applied.pages_created","typeLabel":"string[]"},"pages_updated":{"type":"array","items":{"type":"string","uniqueKey":"applied.pages_updated.items.[INDEX]","typeLabel":"string"},"description":"Slugs of existing pages whose draft (or published version) changes.","example":["about","_support"],"isRequired":true,"uniqueKey":"applied.pages_updated","typeLabel":"string[]"},"pages_unchanged":{"type":"array","items":{"type":"string","uniqueKey":"applied.pages_unchanged.items.[INDEX]","typeLabel":"string"},"description":"Slugs of pages the documents carry that already hold the same content (not written).","isRequired":true,"uniqueKey":"applied.pages_unchanged","typeLabel":"string[]"},"theme_css":{"type":"boolean","description":"Whether the theme CSS changes.","isRequired":true,"uniqueKey":"applied.theme_css","typeLabel":"boolean"},"published":{"type":"boolean","description":"Whether anything is published by this call.","isRequired":true,"uniqueKey":"applied.published","typeLabel":"boolean"},"portal":{"type":"string","enum":["interview","consumer"],"description":"Portal the portal-site pages and theme CSS went to.","isRequired":true,"uniqueKey":"applied.portal","typeLabel":"enum\u003cstring>"},"page_changes":{"type":"array","items":{"type":"object","properties":{"portal":{"type":"string","enum":["interview","consumer"],"description":"Portal of the page.","isRequired":true,"uniqueKey":"applied.page_changes.items.[INDEX].portal","typeLabel":"enum\u003cstring>"},"slug":{"type":"string","description":"Page slug (\"\" is the home page).","isRequired":true,"uniqueKey":"applied.page_changes.items.[INDEX].slug","typeLabel":"string"},"action":{"type":"string","enum":["create","update","unchanged"],"description":"What happens to the page.","isRequired":true,"uniqueKey":"applied.page_changes.items.[INDEX].action","typeLabel":"enum\u003cstring>"},"published":{"type":"boolean","description":"Whether this write publishes the page.","isRequired":true,"uniqueKey":"applied.page_changes.items.[INDEX].published","typeLabel":"boolean"}},"required":["portal","slug","action","published"],"uniqueKey":"applied.page_changes.items.[INDEX]","typeLabel":"object"},"description":"Every page touched, with its portal (built-in page drafts from a coaching-portal document go to the consumer portal).","isRequired":true,"uniqueKey":"applied.page_changes","typeLabel":"object[]"},"brands":{"type":"array","items":{"type":"object","properties":{"tag":{"type":"string","isRequired":true,"uniqueKey":"applied.brands.items.[INDEX].tag","typeLabel":"string"},"action":{"type":"string","enum":["create","update","delete","unchanged"],"isRequired":true,"uniqueKey":"applied.brands.items.[INDEX].action","typeLabel":"enum\u003cstring>"}},"required":["tag","action"],"uniqueKey":"applied.brands.items.[INDEX]","typeLabel":"object"},"description":"Sub-brands in the documents and what happens to each. Present only when a brands document was sent.","uniqueKey":"applied.brands","typeLabel":"object[]"},"css_files":{"type":"array","items":{"type":"object","properties":{"brand":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"applied.css_files.items.[INDEX].brand.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"applied.css_files.items.[INDEX].brand.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"applied.css_files.items.[INDEX].brand","typeLabel":"string | null"},"path":{"type":"string","isRequired":true,"uniqueKey":"applied.css_files.items.[INDEX].path","typeLabel":"string"},"action":{"type":"string","enum":["create","update","unchanged"],"isRequired":true,"uniqueKey":"applied.css_files.items.[INDEX].action","typeLabel":"enum\u003cstring>"}},"required":["brand","path","action"],"uniqueKey":"applied.css_files.items.[INDEX]","typeLabel":"object"},"description":"CSS files in the documents; `brand` null is the main brand. Present only when there are any.","uniqueKey":"applied.css_files","typeLabel":"object[]"},"style_settings":{"type":"boolean","description":"True when the main brand's style settings change. Present only then.","uniqueKey":"applied.style_settings","typeLabel":"boolean"},"stylesheets_published":{"type":"array","items":{"type":"object","properties":{"portal":{"type":"string","enum":["interview","consumer"],"isRequired":true,"uniqueKey":"applied.stylesheets_published.items.[INDEX].portal","typeLabel":"enum\u003cstring>"},"brand":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"applied.stylesheets_published.items.[INDEX].brand.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"applied.stylesheets_published.items.[INDEX].brand.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"applied.stylesheets_published.items.[INDEX].brand","typeLabel":"string | null"}},"required":["portal","brand"],"uniqueKey":"applied.stylesheets_published.items.[INDEX]","typeLabel":"object"},"description":"Stylesheets built and published by this call; `brand` null is the main brand. Present only when there are any.","uniqueKey":"applied.stylesheets_published","typeLabel":"object[]"}},"uniqueKey":"applied","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","name":"write","failures":["\u003cstring>"],"applied":{"merchant_fields":["homepage_name","template_colors.c_primary","interview_homepage_texts.de"],"pages_created":["our-history"],"pages_updated":["about","_support"],"pages_unchanged":["\u003cstring>"],"theme_css":true,"published":true,"portal":"interview","page_changes":[{"portal":"interview","slug":"\u003cstring>","action":"create","published":true}],"brands":[{"tag":"\u003cstring>","action":"create"}],"css_files":[{"brand":"\u003cstring>","path":"\u003cstring>","action":"create"}],"style_settings":true,"stylesheets_published":[{"portal":"interview","brand":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"cf699208-ac1b-4fa5-a467-88cd6168426c":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"454fcb62-7052-4847-a728-ecf5ade065a6":{"url":"https://cool.jobmojito.com/functions/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Supabase JWT — `Authorization: Bearer \u003ctoken>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"https://cool.jobmojito.com/functions/v1/openapi"},"subdomain":"jobmojito","siteName":"JobMojito Developer / Agent","title":"Update the portal configuration (branding, portals, brands, pages) - JobMojito Developer / Agent","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T15:00:44.836Z","originalFileLocation":"api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\">\u003cmeta data-mint-head name=\"application-name\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update the portal configuration (branding, portals, brands, pages) - JobMojito Developer / Agent\">\u003cmeta data-mint-head property=\"og:description\" content=\"Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://jobmojito.mintlify.site/_mintlify/api/og/v2?division=Admin\u0026amp;title=Update+the+portal+configuration+%28branding%2C+portals%2C+brands%2C+pages%29\u0026amp;description=Imports+portal+configuration+documents+in+one+call%3A+**branding**+%28portal+name%2C+style%2C+colours%2C+logos%2C+e-mail+sender+name%2C+speech+term+boosting%29%2C+the+**interview\u0026amp;theme=87c5e3cf7199050cbbf4cb49\u0026amp;signature=da6c9c9ef3b8e8b3233a0f15c5f208a7f589dc156a750307cafc84f2fcd9129a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update the portal configuration (branding, portals, brands, pages) - JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://jobmojito.mintlify.site/_mintlify/api/og/v2?division=Admin\u0026amp;title=Update+the+portal+configuration+%28branding%2C+portals%2C+brands%2C+pages%29\u0026amp;description=Imports+portal+configuration+documents+in+one+call%3A+**branding**+%28portal+name%2C+style%2C+colours%2C+logos%2C+e-mail+sender+name%2C+speech+term+boosting%29%2C+the+**interview\u0026amp;theme=87c5e3cf7199050cbbf4cb49\u0026amp;signature=da6c9c9ef3b8e8b3233a0f15c5f208a7f589dc156a750307cafc84f2fcd9129a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/jobmojito/GZwP9Qkfq6UpkrB8/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"JobMojito Developer / Agent\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#639C42\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.jobmojito.com/#organization\",\"name\":\"JobMojito Developer / Agent\",\"url\":\"https://developer.jobmojito.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/jobmojito/DU7xAw61G9kqV1zG/images/jobmojito-light.svg?fit=max\u0026auto=format\u0026n=DU7xAw61G9kqV1zG\u0026q=85\u0026s=6c00cb5f3104ffb6325dacc0818bba69\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.jobmojito.com#website\",\"name\":\"JobMojito Developer / Agent\",\"url\":\"https://developer.jobmojito.com\",\"publisher\":{\"@id\":\"https://developer.jobmojito.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages#webpage\",\"url\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages\",\"name\":\"Update the portal configuration (branding, portals, brands, pages)\",\"description\":\"Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\",\"dateModified\":\"2026-11-09T15:00:44.836Z\",\"isPartOf\":{\"@id\":\"https://developer.jobmojito.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Admin\",\"item\":\"https://developer.jobmojito.com/api-reference/admin/invite-admin-merchant-team-or-coaching-users\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update the portal configuration (branding, portals, brands, pages)\",\"item\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages#apireference\",\"headline\":\"Update the portal configuration (branding, portals, brands, pages)\",\"name\":\"Update the portal configuration (branding, portals, brands, pages)\",\"description\":\"Imports portal configuration documents in one call: branding (portal name, style, colours, logos, e-mail sender name, speech term boosting), the interview portal (languages, home texts, support / application-tracking / interview-completed texts), the coaching portal (vertical, feature toggles, labels, coaching plan, catalogue start directory, languages, home blocks), brands (the sub-brands of the company, with logos, privacy notice and style settings) and portal sites (pages in every language with their blocks, menu, footer, the theme CSS, the style settings and CSS files). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages. Read the current configuration with portal-configuration-get first: it returns these same documents, so you can edit them and send them back. Fields a document omits keep their value. Run with dry_run: true to preview the summary, warnings and changes, then repeat without it to apply. Validation is all-or-nothing: if any document has an error nothing is written and the 422 lists every error. Pages land as drafts unless publish is true; the support / tracking / completion / signed-in home texts of the portal documents always land as drafts of those built-in pages.\",\"url\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages\",\"mainEntityOfPage\":{\"@id\":\"https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages#webpage\"},\"dateModified\":\"2026-11-09T15:00:44.836Z\",\"publisher\":{\"@id\":\"https://developer.jobmojito.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.jobmojito.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"JobMojito Developer / Agent\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"JobMojito Developer / Agent","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":"/welcome"}]},{"tab":"API Reference","groups":[{"group":"Interviews","pages":[{"title":"Create a new interview","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create","href":"/api-reference/interviews/create-a-new-interview"},{"title":"Create an interview from an array of questions","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-from-array","href":"/api-reference/interviews/create-an-interview-from-an-array-of-questions"},{"title":"Create an interview for a candidate and return an access token URL","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-create-for-candidate-with-token","href":"/api-reference/interviews/create-an-interview-for-a-candidate-and-return-an-access-token-url"},{"title":"Create a role-play — coaching persona or interview-portal role-play (choose with `portal`)","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /persona-create","href":"/api-reference/interviews/create-a-role-play-—-coaching-persona-or-interview-portal-role-play-choose-with-`portal`"},{"title":"Get interview definition","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /job-interview-get","href":"/api-reference/interviews/get-interview-definition"},{"title":"Update an interview or position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-update","href":"/api-reference/interviews/update-an-interview-or-position"},{"title":"Set interview state","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-set-state","href":"/api-reference/interviews/set-interview-state"},{"title":"Generate a signed interview URL","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-token","href":"/api-reference/interviews/generate-a-signed-interview-url"},{"title":"Register users for an interview","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-register-users","href":"/api-reference/interviews/register-users-for-an-interview"},{"title":"List interview definitions","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-interview-list","href":"/api-reference/interviews/list-interview-definitions"}]},{"group":"Positions","pages":[{"title":"Set the steps of a draft position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-process-save","href":"/api-reference/positions/set-the-steps-of-a-draft-position"},{"title":"Change the settings of a position step","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-step-update","href":"/api-reference/positions/change-the-settings-of-a-position-step"},{"title":"Create, change or delete a meeting slot","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-meeting-slot-manage","href":"/api-reference/positions/create-change-or-delete-a-meeting-slot"},{"title":"Copy a position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-position-duplicate","href":"/api-reference/positions/copy-a-position"},{"title":"Copy an interview","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-interview-duplicate","href":"/api-reference/positions/copy-an-interview"}]},{"group":"Coaching catalogue","pages":[{"title":"Create a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /catalogue-tag-create","href":"/api-reference/coaching-catalogue/create-a-coaching-catalogue-directory"},{"title":"Update a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /catalogue-tag-update","href":"/api-reference/coaching-catalogue/update-a-coaching-catalogue-directory"},{"title":"Get a coaching catalogue directory","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /catalogue-tag-get","href":"/api-reference/coaching-catalogue/get-a-coaching-catalogue-directory"},{"title":"List coaching catalogue directories","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /catalogue-tag-list","href":"/api-reference/coaching-catalogue/list-coaching-catalogue-directories"}]},{"group":"Results","pages":[{"title":"Get interview result details with transcript","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /job-interview-details","href":"/api-reference/results/get-interview-result-details-with-transcript"},{"title":"Generate an interview report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pdf","href":"/api-reference/results/generate-an-interview-report"},{"title":"Request another interview attempt","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-result-request-another-attempt","href":"/api-reference/results/request-another-interview-attempt"},{"title":"Record an external assessment result","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /assessment-result-set","href":"/api-reference/results/record-an-external-assessment-result"},{"title":"List interview results","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-result-list","href":"/api-reference/results/list-interview-results"},{"title":"Get daily event analytics","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-analytics","href":"/api-reference/results/get-daily-event-analytics"},{"title":"Get merchant credit usage","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-analytics-credits-used","href":"/api-reference/results/get-merchant-credit-usage"}]},{"group":"Reports","pages":[{"title":"List report datasets, fields and measures","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-catalog","href":"/api-reference/reports/list-report-datasets-fields-and-measures"},{"title":"List custom reports","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-list","href":"/api-reference/reports/list-custom-reports"},{"title":"Get a custom report definition","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-get","href":"/api-reference/reports/get-a-custom-report-definition"},{"title":"Run a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /report-run","href":"/api-reference/reports/run-a-custom-report"},{"title":"Check and run an unsaved report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-preview","href":"/api-reference/reports/check-and-run-an-unsaved-report"},{"title":"Create a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-create","href":"/api-reference/reports/create-a-custom-report"},{"title":"Update a custom report","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /report-update","href":"/api-reference/reports/update-a-custom-report"}]},{"group":"Candidates","pages":[{"title":"List candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-list","href":"/api-reference/candidates/list-candidates"},{"title":"Get a candidate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-get","href":"/api-reference/candidates/get-a-candidate"},{"title":"Add a note to a candidate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-note-add","href":"/api-reference/candidates/add-a-note-to-a-candidate"},{"title":"Tag candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-tags-set","href":"/api-reference/candidates/tag-candidates"},{"title":"Create, change or delete a candidate tag","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-tag-manage","href":"/api-reference/candidates/create-change-or-delete-a-candidate-tag"},{"title":"List candidate filter options","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-filter-options","href":"/api-reference/candidates/list-candidate-filter-options"},{"title":"Preview merging two candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-candidate-merge-preview","href":"/api-reference/candidates/preview-merging-two-candidates"},{"title":"Merge two candidates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-merge","href":"/api-reference/candidates/merge-two-candidates"},{"title":"Dismiss a possible duplicate","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-candidate-duplicate-dismiss","href":"/api-reference/candidates/dismiss-a-possible-duplicate"},{"title":"List candidate segments","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-segment-list","href":"/api-reference/candidates/list-candidate-segments"},{"title":"Create, change or delete a candidate segment","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-segment-manage","href":"/api-reference/candidates/create-change-or-delete-a-candidate-segment"},{"title":"Download a candidate document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-document-download","href":"/api-reference/candidates/download-a-candidate-document"}]},{"group":"Tasks","pages":[{"title":"List tasks","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-task-list","href":"/api-reference/tasks/list-tasks"},{"title":"Create or change a task","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-task-save","href":"/api-reference/tasks/create-or-change-a-task"}]},{"group":"Document requests","pages":[{"title":"List document requests","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-document-request-list","href":"/api-reference/document-requests/list-document-requests"},{"title":"Ask a candidate for documents","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-document-request-create","href":"/api-reference/document-requests/ask-a-candidate-for-documents"},{"title":"Cancel a document request or mark it reviewed","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-document-request-update","href":"/api-reference/document-requests/cancel-a-document-request-or-mark-it-reviewed"}]},{"group":"Reasons","pages":[{"title":"List the company's reasons","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-reason-list","href":"/api-reference/reasons/list-the-companys-reasons"},{"title":"Get one of the company's reasons","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-reason-get","href":"/api-reference/reasons/get-one-of-the-companys-reasons"},{"title":"Create, change or archive a reason","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-reason-save","href":"/api-reference/reasons/create-change-or-archive-a-reason"}]},{"group":"Knowledge base","pages":[{"title":"Upload a knowledge base document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-document-upload","href":"/api-reference/knowledge-base/upload-a-knowledge-base-document"},{"title":"List knowledge base documents and their interview limits","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /knowledge-base-document-list","href":"/api-reference/knowledge-base/list-knowledge-base-documents-and-their-interview-limits"},{"title":"Change which interviews can use a document","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-document-set-interviews","href":"/api-reference/knowledge-base/change-which-interviews-can-use-a-document"},{"title":"List knowledge base stores","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /knowledge-base-store-list","href":"/api-reference/knowledge-base/list-knowledge-base-stores"},{"title":"Create or change a knowledge base store","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /knowledge-base-store-save","href":"/api-reference/knowledge-base/create-or-change-a-knowledge-base-store"}]},{"group":"Resume \u0026 Form verification","pages":[{"title":"Create or update a pre-screening position","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /pre-screening-create","href":"/api-reference/resume-\u0026-form-verification/create-or-update-a-pre-screening-position"},{"title":"Run pre-screening on a plaintext resume","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pre-screening-api-resume-text","href":"/api-reference/resume-\u0026-form-verification/run-pre-screening-on-a-plaintext-resume"},{"title":"Pre-screen a candidate from a binary resume upload","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /job-interview-pre-screening-api-resume-binary","href":"/api-reference/resume-\u0026-form-verification/pre-screen-a-candidate-from-a-binary-resume-upload"}]},{"group":"Admin","pages":[{"title":"Invite admin / merchant-team or coaching users","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /invite-users","href":"/api-reference/admin/invite-admin-merchant-team-or-coaching-users"},{"title":"List sub-merchants","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-sub-merchant-list","href":"/api-reference/admin/list-sub-merchants"},{"title":"List the company's users","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-user-list","href":"/api-reference/admin/list-the-companys-users"},{"title":"List avatar templates","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-avatar-list","href":"/api-reference/admin/list-avatar-templates"},{"title":"Get merchant status","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /merchant-status","href":"/api-reference/admin/get-merchant-status"},{"title":"List platform languages","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /platform-languages-list","href":"/api-reference/admin/list-platform-languages"},{"title":"Get the portal configuration (branding, portals, brands, pages)","description":"Reads the company's portal configuration as import documents: branding, the interview portal, the coaching portal, the sub-brands, and the pages + theme CSS + style settings + CSS files of each portal. Every returned document can be edited and sent back to portal-configuration-update unchanged in shape (preview with `dry_run: true` first). Document formats: https://developer.jobmojito.com/cookbooks/portal-branding/branding, https://developer.jobmojito.com/cookbooks/portal-branding/interview-portal, https://developer.jobmojito.com/cookbooks/portal-branding/coaching-portal, https://developer.jobmojito.com/cookbooks/portal-branding/portal-pages.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /portal-configuration-get","href":"/api-reference/admin/get-the-portal-configuration-branding-portals-brands-pages"},{"title":"Update the portal configuration (branding, portals, brands, pages)","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-configuration-update","href":"/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages"},{"title":"Publish a brand stylesheet","description":"Builds one brand's stylesheet from its style settings and CSS files and puts it live at once. The build is tokens first, then the files by sort order and path, with every @import moved to the top and any \"\u003c\" removed. Over 500 KB is a warning, over 2 MB is refused. Earlier builds stay in place. Style settings and CSS files are switched on per company by JobMojito; while they are off this endpoint answers 403. Write the drafts first with portal-configuration-update.","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-css-publish","href":"/api-reference/admin/publish-a-brand-stylesheet"},{"title":"Get the component style guide","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /portal-component-styles","href":"/api-reference/admin/get-the-component-style-guide"},{"title":"Save a component style","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-component-styles","href":"/api-reference/admin/save-a-component-style"},{"title":"Generate component style alternatives","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /portal-component-styles-generate","href":"/api-reference/admin/generate-component-style-alternatives"},{"title":"List the media library","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /media-list","href":"/api-reference/admin/list-the-media-library"},{"title":"Start uploading a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-upload-start","href":"/api-reference/admin/start-uploading-a-media-file"},{"title":"Finish uploading a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-upload-finish","href":"/api-reference/admin/finish-uploading-a-media-file"},{"title":"Describe a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-update","href":"/api-reference/admin/describe-a-media-file"},{"title":"Delete a media file","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-delete","href":"/api-reference/admin/delete-a-media-file"},{"title":"List the media library folders","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi get /media-folders","href":"/api-reference/admin/list-the-media-library-folders"},{"title":"Create, rename or delete a media library folder","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /media-folders","href":"/api-reference/admin/create-rename-or-delete-a-media-library-folder"}]},{"group":"Feedback","pages":[{"title":"Submit a feature request","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-feature-request","href":"/api-reference/feedback/submit-a-feature-request"},{"title":"Report a technical issue","deprecated":null,"version":null,"openapi":"https://cool.jobmojito.com/functions/v1/openapi post /merchant-technical-issue","href":"/api-reference/feedback/report-a-technical-issue"}]}]},{"tab":"Webhooks","pages":[{"title":"Webhooks","href":"/api-reference/webhooks/interview-result-submitted"}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/cookbooks"}]},{"tab":"Skills","pages":[{"title":"Skills","href":"/skills/overview"}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/overview"}]}]},"basePath":"","title":"Update the portal configuration (branding, portals, brands, pages) - JobMojito Developer / Agent","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}