# JobMojito Developer / Agent > AI Interview and assessment conversational platform documentation - [Welcome to the JobMojito API](https://developer.jobmojito.com/welcome.md): Build AI-powered interviews, assessments and candidate pre-screening into your own product with the JobMojito API and webhooks. - [How the API works](https://developer.jobmojito.com/how-the-api-works.md): Base URL, request and response format, error model, credits, and the full list of JobMojito API endpoints. - [How credits work](https://developer.jobmojito.com/how-credits-work.md): JobMojito runs on consumption-based credits. See what each interview, add-on and pre-screen costs, and how billing works. - [Authentication](https://developer.jobmojito.com/authentication.md): Authenticate JobMojito API requests with a bearer token in the Authorization header. - [Webhooks](https://developer.jobmojito.com/webhooks.md): Receive real-time interview events at your own endpoint, with at-least-once guaranteed delivery and automatic retries. - [EU AI Act: information for deployers](https://developer.jobmojito.com/ai-act-deployer-information.md): What JobMojito's AI does in hiring, its limits, the human oversight it supports and what a deployer needs to do under the EU AI Act. - [Create a new interview](https://developer.jobmojito.com/api-reference/interviews/create-a-new-interview.md): Creates a new interview / coaching / assessment definition, generates its description, questions and candidate expectations via AI, and provisions default steps. Optionally provisions an embed key. With `questions`, your questions are used as they are instead. For owners, recruiters and admins; hiri… - [Create an interview from an array of questions](https://developer.jobmojito.com/api-reference/interviews/create-an-interview-from-an-array-of-questions.md): Creates a new interview definition set from a caller-provided array of questions, builds its default and generated steps, optionally activates it, and optionally creates an embed key. job-interview-create with `questions` does exactly the same. For owners, recruiters and admins; hiring managers (rea… - [Create an interview for a candidate and return an access token URL](https://developer.jobmojito.com/api-reference/interviews/create-an-interview-for-a-candidate-and-return-an-access-token-url.md): Creates (or resolves an existing) position and interview for a merchant, enrols the candidate, runs pre-screening, and returns a tokenised interview URL. Position fields are required only when position_def_set_id is not provided. - [Create a role-play — coaching persona or interview-portal role-play (choose with `portal`)](https://developer.jobmojito.com/api-reference/interviews/create-a-role-play-—-coaching-persona-or-interview-portal-role-play-choose-with-`portal`.md): FIRST DECIDE `portal`. This endpoint creates two different products and the default is NOT the recruiter one: - `portal: "interview"` — an INTERVIEW ROLE-PLAY. Use this whenever the goal is to ASSESS or SCREEN candidates: hiring, assessments, sales role-plays for job applicants, anything a recruiter… - [Get interview definition](https://developer.jobmojito.com/api-reference/interviews/get-interview-definition.md): Retrieves the interview definition for a given interview-definition id or position id. Returns the compiled `calc_definition_json`, the ordered `questions` array (in the same format job-interview-create-from-array accepts, so it round-trips into job-interview-update) plus basic metadata. For a multi… - [Update an interview or position](https://developer.jobmojito.com/api-reference/interviews/update-an-interview-or-position.md): Updates the configuration of an existing interview (single-stage) or position (multi-stage). Only the fields present in the request body are written — everything else keeps its current value, and sending null clears a nullable field. The question list is only touched when you send `questions`; omit… - [Set interview state](https://developer.jobmojito.com/api-reference/interviews/set-interview-state.md): Changes the publication status of an interview or position (draft, active, archived, preparing, completed, deleted), the vacancy lifecycle of a position (open, applications_closed, on_hold, filled, cancelled, closed), and/or manages its embed key. Provide at least one of `status`, `lifecycle` or `is… - [Generate a signed interview URL](https://developer.jobmojito.com/api-reference/interviews/generate-a-signed-interview-url.md): Generates a public, token-signed URL for an existing interview, candidate, or result. The required id fields depend on `type`. Sends nothing: share the URL yourself. For owners, recruiters and admins; hiring managers (read-only accounts) get 403. Note: a request without a valid user token is answere… - [Register users for an interview](https://developer.jobmojito.com/api-reference/interviews/register-users-for-an-interview.md): Registers (or updates) one or more candidate profiles for an interview and returns a one-time interview URL for each, with the candidate id. Optionally sets each candidate's LinkedIn URL, tags and custom fields. Sends no e-mail: share the links yourself, or invite candidates with invite-users (type… - [List interview definitions](https://developer.jobmojito.com/api-reference/interviews/list-interview-definitions.md): Paginated list of a merchant's interview definitions and multi-stage positions (the admin-portal interview list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page. Each item also carries its job category, tags and owning recruiter, and a position its vacan… - [Set the steps of a draft position](https://developer.jobmojito.com/api-reference/positions/set-the-steps-of-a-draft-position.md): Adds, removes, renames and reorders the steps of a position (its process), in one change. Draft positions only (409 otherwise; a published position keeps its structure, and its step settings change with update_position_step). At most 20 steps, at most one pre-screening and it comes first. A step can… - [Change the settings of a position step](https://developer.jobmojito.com/api-reference/positions/change-the-settings-of-a-position-step.md): Changes the name and settings of one step of a position: advance and kombo on every step, plus the one settings object of the step's type (meeting, certo, external_assessment, interview or pre_screening; another type's object is a 422). Only the keys sent change: nested keys are merged one by one, n… - [Create, change or delete a meeting slot](https://developer.jobmojito.com/api-reference/positions/create-change-or-delete-a-meeting-slot.md): One bookable slot of a meeting step, as the admin calendar writes it. create needs step_id and start_at; update and delete need slot_id; fields left out keep their value. A slot is offered in both meeting modes: in availability mode candidates see it next to the times taken from the interviewers' ca… - [Copy a position](https://developer.jobmojito.com/api-reference/positions/copy-a-position.md): Copies a position as a new draft: its settings, its process (steps with their settings; AI interviews with their questions; the pre-screening), not its candidates. Optionally with another name, location, openings, country or closing date. Sends no e-mail and publishes nothing. Needs the position_bul… - [Copy an interview](https://developer.jobmojito.com/api-reference/positions/copy-an-interview.md): Copies a stand-alone interview (also a persona or coaching session) as a new draft with its settings and questions, as the admin's Duplicate does. Into another company, its questions are copied too (or reused when that company has the same text) and the avatar must be shared. Sends no e-mail and pub… - [Create a coaching catalogue directory](https://developer.jobmojito.com/api-reference/coaching-catalogue/create-a-coaching-catalogue-directory.md): Creates a directory (page) in the coaching portal catalogue. A directory nests other directories through `tags_sub`, lists coaching sessions through `tags_interview_set_filter`, and can replace the default grid with a custom Markdown page through `content_md`. The id you choose is the catalogue URL… - [Update a coaching catalogue directory](https://developer.jobmojito.com/api-reference/coaching-catalogue/update-a-coaching-catalogue-directory.md): Updates a directory (page) of the coaching portal catalogue. Only the fields present in the request body are written — everything else keeps its current value, and sending null clears a nullable field. Use it to rename a directory, re-point which sessions it lists (`tags_interview_set_filter`), re-o… - [Get a coaching catalogue directory](https://developer.jobmojito.com/api-reference/coaching-catalogue/get-a-coaching-catalogue-directory.md): Reads one catalogue directory in full: its settings, its custom Markdown page (`content_md`), the sub-directories it nests, and the coaching sessions its `tags_interview_set_filter` currently matches. Read a directory before updating it — `content_md`, `tags_sub` and `tags_interview_set_filter` are… - [List coaching catalogue directories](https://developer.jobmojito.com/api-reference/coaching-catalogue/list-coaching-catalogue-directories.md): Paginated list of the coaching-catalogue directories visible to you: your merchant's own, plus the platform-wide `public` ones unless you set include_public=false. Use it to find a directory id before updating one, to pick a `parent_tag`, or to walk the tree with `parent_tag`. The custom Markdown pa… - [Get interview result details with transcript](https://developer.jobmojito.com/api-reference/results/get-interview-result-details-with-transcript.md): Returns an interview result with its full transcript and AI assessment, plus whose result it is and where its decision stands. Optionally attaches signed recording URLs. For company staff (owners, recruiters, hiring managers, admins) and the service key; the result is read under your token, so a res… - [Generate an interview report](https://developer.jobmojito.com/api-reference/results/generate-an-interview-report.md): Generates an interview result report as a PDF (returns a signed URL), raw HTML, or structured JSON. Provide either `interview_result_id` for a single result or `interview_result_ids` for a combined multi-result report. - [Request another interview attempt](https://developer.jobmojito.com/api-reference/results/request-another-interview-attempt.md): Reopens a submitted (active + completed) interview result so the candidate can take it again: the attempt is marked failed ("Marked as unsuccessful by the recruiter"), the same result goes back to draft and its recruiter decision is cleared. A candidate who continues this interview keeps the answers… - [Record an external assessment result](https://developer.jobmojito.com/api-reference/results/record-an-external-assessment-result.md): Records the result of an external assessment step of an application (status, score, pass / fail, report link). A result never decides on its own: the step then waits for the recruiter to pass or fail it. Requires the token of a merchant or merchant owner of the company; available when external asses… - [List interview results](https://developer.jobmojito.com/api-reference/results/list-interview-results.md): Paginated list of a merchant's interview results and multi-stage applications (the admin-portal results list), scoped to your token's merchant (or a merchant_id override). Rows of positions or candidates hidden from you (position access) are left out. Capped at 1000 records per page. Each read is re… - [Get daily event analytics](https://developer.jobmojito.com/api-reference/results/get-daily-event-analytics.md): Daily event-count time-series for a merchant over a date range (the admin-portal analytics events graph), scoped to your token's merchant (or a merchant_id override). Optionally drilled to a single interview. Capped at 1000 records per page. Note: only day/event combinations with a non-zero count ar… - [Get merchant credit usage](https://developer.jobmojito.com/api-reference/results/get-merchant-credit-usage.md): Per-event credit-usage ledger for a merchant: every billable analytics event (interview, pre-screening, public avatar, simulation, …) that consumed credits, ordered most recent first. Scoped to your token's merchant, or a merchant_id override for admins / sub-merchant operators. The credits consumed… - [List report datasets, fields and measures](https://developer.jobmojito.com/api-reference/reports/list-report-datasets-fields-and-measures.md): Everything a custom report may use on this account: the datasets (interview results, invitations, position pipeline, ATS pipeline, credits, coaching sessions - only those your account and role include), their dimensions (group by / filter) and measures (numbers), block types, condition operators and… - [List custom reports](https://developer.jobmojito.com/api-reference/reports/list-custom-reports.md): Custom reports you can open on this account (yours, the ones shared with you) and the JobMojito templates, pinned first, then most recently updated. scope=builtin lists the built-in analytics reports instead (the JobMojito admin's Analytics: pipeline, ATS, interviews, feedback, workload, sourcing, f… - [Get a custom report definition](https://developer.jobmojito.com/api-reference/reports/get-a-custom-report-definition.md): The report's JSON definition, visibility, your access (owner, edit, view) and its version (needed to update it). People who can edit also get the unpublished draft, if any. - [Run a custom report](https://developer.jobmojito.com/api-reference/reports/run-a-custom-report.md): Runs every block of a saved report and returns its rows. Filters start from the report's defaults, then your own saved filters, then `filters` if you pass it. Each block runs on its own: a block that fails returns ok=false with an error while the others still return data. Numbers are aggregated; no… - [Check and run an unsaved report](https://developer.jobmojito.com/api-reference/reports/check-and-run-an-unsaved-report.md): Validates a report definition against the catalogue and runs it, without storing anything. Use it to check a definition before saving it with report-create. With report_id instead of definition it runs a saved custom report (as report-run does) or a built-in report (builtin: from list_reports:… - [Create a custom report](https://developer.jobmojito.com/api-reference/reports/create-a-custom-report.md): Stores a new custom report. It is created as "Only me" (private to you); share it from the JobMojito admin. Returns its id, version and the admin link to open it. With report_id and version it replaces that report's definition instead (on a report shared with others the change is saved as a draft fo… - [Update a custom report](https://developer.jobmojito.com/api-reference/reports/update-a-custom-report.md): Replaces the definition of a report you own or may edit. Send the version you read; if someone changed the report since, you get 409 and should get it again. A report shared with others keeps your change as a draft until it is published in the admin, so viewers never see a half-finished report. Form… - [List candidates](https://developer.jobmojito.com/api-reference/candidates/list-candidates.md): Paginated list of a merchant's candidates (the admin-portal candidates list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page. Filters: activity tab, source, text, emoji, owner, kind, channel, mentioned_me; or a search with the segment builder's rules (ru… - [Get a candidate](https://developer.jobmojito.com/api-reference/candidates/get-a-candidate.md): One candidate as the admin's candidate page shows it: profile, applications with their steps, stand-alone interview results, tags, counts and the duplicate flag; with include, also notes, duplicates, document requests, tasks and segments. Applications to positions hidden from you (position access) a… - [Add a note to a candidate](https://developer.jobmojito.com/api-reference/candidates/add-a-note-to-a-candidate.md): Adds a note on a candidate or on one of its interview results, as the admin's feedback box does: kind comment, no score adjustment. Owners, recruiters, admins and hiring managers, on candidates and results visible to them. A private note (the private_notes feature) is seen by you alone. Each colleag… - [Tag candidates](https://developer.jobmojito.com/api-reference/candidates/tag-candidates.md): Adds and removes tags on up to 5000 candidates in one call. Candidates hidden from you by position access are skipped and counted in not_visible. Tags are internal: nothing is sent to the candidates. Create tags with merchant-candidate-tag-manage; list them with merchant-candidate-filter-options. - [Create, change or delete a candidate tag](https://developer.jobmojito.com/api-reference/candidates/create-change-or-delete-a-candidate-tag.md): Manages the company's candidate tags (not the coaching catalogue tags). Any owner, recruiter or admin creates a tag; renaming, recolouring and deleting are for owners and admins. Delete removes the tag from every candidate and cannot be undone: try it with dry_run first. Nothing is sent to candidate… - [List candidate filter options](https://developer.jobmojito.com/api-reference/candidates/list-candidate-filter-options.md): Everything the candidate search (merchant-candidate-list rules) accepts, with ids, so no id has to be guessed: the rule fields and operators, tags with usage counts, automatic tags, positions with their steps, stand-alone interviews, countries, sources, statuses, history values, decision reasons, jo… - [Preview merging two candidates](https://developer.jobmojito.com/api-reference/candidates/preview-merging-two-candidates.md): Shows what merging two candidate records of one company would do: both values of every field, the records that would move, what blocks the merge, and whether you may run it. Changes nothing. Needs the duplicate detection switch (duplicate_detection). Both candidates must be visible to you. Viewing t… - [Merge two candidates](https://developer.jobmojito.com/api-reference/candidates/merge-two-candidates.md): IRREVERSIBLE: there is no unmerge. Merges the candidate merge_id into keep_id within one company: every application, result, file, meeting, message, note, tag, segment membership and consent record moves to keep_id, the chosen field values are copied, skills are united, and merge_id is archived. Own… - [Dismiss a possible duplicate](https://developer.jobmojito.com/api-reference/candidates/dismiss-a-possible-duplicate.md): Marks a possible-duplicate pair as not a duplicate. Both records stay as they are and the pair is not suggested again. Owners, recruiters and admins; both candidates must be visible to you. Needs the duplicate detection switch (duplicate_detection). Dismissing a pair already dismissed changes nothin… - [List candidate segments](https://developer.jobmojito.com/api-reference/candidates/list-candidate-segments.md): The company's saved candidate segments with their member counts, or, with segment_id, one segment in full: rules, analytics and the positions it feeds. Counts leave out candidates hidden from you by position access. To list the members, use the candidate search (merchant-candidate-list). - [Create, change or delete a candidate segment](https://developer.jobmojito.com/api-reference/candidates/create-change-or-delete-a-candidate-segment.md): Saves a candidate segment (create or change name, description and rules), deletes one, or adds and removes members of a static segment. Owners, recruiters and admins. Members can only be candidates visible to you; a hidden member is never removed. Deleting cannot be undone through the API. Nothing i… - [Download a candidate document](https://developer.jobmojito.com/api-reference/candidates/download-a-candidate-document.md): Downloads a document of one of your candidates, as named in the `documents` list of a webhook v2 payload (`download_url`). Answers 302 with a Location valid for 10 minutes; follow the redirect to get the file. Requires your company API key (or a user token of your company). Available when webhooks v… - [List tasks](https://developer.jobmojito.com/api-reference/tasks/list-tasks.md): Tasks of the company (the tasks feature): to-dos of recruiters and hiring managers about a candidate, an application or a position. By default your own open tasks. candidate_id lists the tasks about one candidate, position_id the tasks about one position, assignee_profile_id the tasks of one user (o… - [Create or change a task](https://developer.jobmojito.com/api-reference/tasks/create-or-change-a-task.md): Creates a task (no task_id: title, assignee_profile_id and one of candidate_id, application_id, position_id), or changes one: title, notes, assignee, due date, and status (open, done, cancelled; cancelled is final). Fields left out keep their value. Owners change any task; recruiters the tasks they… - [List document requests](https://developer.jobmojito.com/api-reference/document-requests/list-document-requests.md): Documents the company asked candidates for after they applied (the document_requests feature): company-wide, or of one candidate (candidate_id), optionally of one status, with each requested document and whether it was uploaded. attention=true lists instead the requests you made that need you: recei… - [Ask a candidate for documents](https://developer.jobmojito.com/api-reference/document-requests/ask-a-candidate-for-documents.md): Asks a candidate to upload documents after applying (the document_requests feature): 1 to 10 documents, an optional message and due date, optionally for one of their applications. The candidate uploads them on their application page; you see them in list_document_requests. E-mail: with notify true (… - [Cancel a document request or mark it reviewed](https://developer.jobmojito.com/api-reference/document-requests/cancel-a-document-request-or-mark-it-reviewed.md): cancel withdraws an open request; reviewed marks a completed one reviewed (the document_requests feature). Neither sends an e-mail; a cancel is recorded on the candidate history. Position access applies (a request of a candidate or position you may not see answers 404). Hiring managers are read only… - [List the company's reasons](https://developer.jobmojito.com/api-reference/reasons/list-the-companys-reasons.md): The company's decision reasons (why a candidate was rejected or withdrew; the decision_reasons feature) and position status reasons (why a position went on hold, was cancelled, closed or filled: the reason_id job-interview-set-state takes; the position_lifecycle feature). The first read of position… - [Get one of the company's reasons](https://developer.jobmojito.com/api-reference/reasons/get-one-of-the-companys-reasons.md): One decision or position status reason of the company by id, archived ones included. Every staff role may read. Read only. - [Create, change or archive a reason](https://developer.jobmojito.com/api-reference/reasons/create-change-or-archive-a-reason.md): Creates a decision or position status reason of the company, or changes, archives or restores one (fields left out keep their value). A reason is company-wide: renaming one renames it on every past decision or lifecycle change that uses it. Owners only (and JobMojito admins), as on the admin's Taxon… - [Upload a knowledge base document](https://developer.jobmojito.com/api-reference/knowledge-base/upload-a-knowledge-base-document.md): Uploads a document to a knowledge base store and queues it for processing. Accepts the file either as multipart/form-data (binary `file`) or as application/json (base64 `file`). Use `interview_ids` to limit the document to chosen interviews. - [List knowledge base documents and their interview limits](https://developer.jobmojito.com/api-reference/knowledge-base/list-knowledge-base-documents-and-their-interview-limits.md): Paginated list of your company's knowledge base documents (uploaded files, URLs and written documents), each with the interviews it is limited to. Pass `knowledge_base_id` to read one document's limit. Capped at 1000 records per page. - [Change which interviews can use a document](https://developer.jobmojito.com/api-reference/knowledge-base/change-which-interviews-can-use-a-document.md): Replaces the interview limit of an existing knowledge base document: a list of interviews, an empty list for none, or null for every interview on the knowledge base. Takes effect for the next live session and the next generation; the document is not processed again and costs no credits. - [List knowledge base stores](https://developer.jobmojito.com/api-reference/knowledge-base/list-knowledge-base-stores.md): The company's knowledge base stores, with how many documents each holds: the knowledge_base_store_id an interview draws on and a document is uploaded to. Owners, recruiters and admins; a hiring manager gets an empty list. Read only. - [Create or change a knowledge base store](https://developer.jobmojito.com/api-reference/knowledge-base/create-or-change-a-knowledge-base-store.md): Creates a knowledge base store, or renames one or changes whether the AI uses only its documents (strict). Documents are added with knowledge-base-document-upload. Changing strict changes how every interview on the store answers. Owners, recruiters and admins; nothing is sent to candidates. - [Create or update a pre-screening position](https://developer.jobmojito.com/api-reference/resume-&-form-verification/create-or-update-a-pre-screening-position.md): Creates a new pre-screening position (and optionally activates it) or, when update_position_def_set_id is provided, updates an existing pre-screening position. Only merchant_owner, merchant, or admin users may call this. - [Run pre-screening on a plaintext resume](https://developer.jobmojito.com/api-reference/resume-&-form-verification/run-pre-screening-on-a-plaintext-resume.md): Stores a plaintext candidate resume, runs AI pre-screening against the position definition, records the result and returns the AI recommendation and analysis. If the candidate is not in the pre-screening candidate_action state, an early `{ decision_status, message }` object is returned with HTTP 200… - [Pre-screen a candidate from a binary resume upload](https://developer.jobmojito.com/api-reference/resume-&-form-verification/pre-screen-a-candidate-from-a-binary-resume-upload.md): Accepts a multipart/form-data upload with candidate details and a binary resume file, converts the resume to text, runs AI pre-screening against the position, stores the result, and returns the decision. - [Invite admin / merchant-team or coaching users](https://developer.jobmojito.com/api-reference/admin/invite-admin-merchant-team-or-coaching-users.md): Invites people to a merchant account and emails each one an invitation. Use it to add **admin / merchant-team users** who manage the recruiting dashboard (`merchant_owner`, `merchant`, `merchant_selection`), **coaching-portal users** (`user`, `mentor`), or **interview candidates** (`candidate`). Can… - [List sub-merchants](https://developer.jobmojito.com/api-reference/admin/list-sub-merchants.md): Paginated list of the sub-merchants the caller administers (the admin-portal sub-merchants list). Visibility is enforced by row-level security. Capped at 1000 records per page. - [List the company's users](https://developer.jobmojito.com/api-reference/admin/list-the-companys-users.md): The company's users (owners, recruiters, hiring managers and JobMojito admins with access), with the profile id other endpoints take for an assignee, a mention, an interviewer, a recruiter or a hiring team member. role is the company-wide access level; with position_id the list is the people on that… - [List avatar templates](https://developer.jobmojito.com/api-reference/admin/list-avatar-templates.md): Paginated list of a merchant's avatar templates (the admin-portal avatars list), scoped to your token's merchant (or a merchant_id override). Capped at 1000 records per page. - [Get merchant status](https://developer.jobmojito.com/api-reference/admin/get-merchant-status.md): Status snapshot for a merchant: interview-credit balances, subscription type/status, pending-work counts (undecided / ongoing / uncredited interviews, open contact requests, and your open tasks, document requests and duplicate pairs while those switches are on), candidate & result totals with 14-day… - [List platform languages](https://developer.jobmojito.com/api-reference/admin/list-platform-languages.md): Returns all supported platform (mojito) languages: the mojito language code, English and local names, and an SVG flag image URL. Use the `code` as `mojito_language_code` when creating interviews or personas. - [Get the portal configuration (branding, portals, brands, pages)](https://developer.jobmojito.com/api-reference/admin/get-the-portal-configuration-branding-portals-brands-pages.md): 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 sh… - [Update the portal configuration (branding, portals, brands, pages)](https://developer.jobmojito.com/api-reference/admin/update-the-portal-configuration-branding-portals-brands-pages.md): 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 to… - [Publish a brand stylesheet](https://developer.jobmojito.com/api-reference/admin/publish-a-brand-stylesheet.md): 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 "<" removed. Over 500 KB is a warning, over 2 MB is refused. Earlier builds stay in place. Style… - [Get the component style guide](https://developer.jobmojito.com/api-reference/admin/get-the-component-style-guide.md): Everything needed to design a style for one kind of page block (hero, cards, faq, ...): the selectors each block renders, its layout variants, the CSS variables of the brand, and the styles the editor already offers per block type, each with the pages that use it. Read it before save_component_style… - [Save a component style](https://developer.jobmojito.com/api-reference/admin/save-a-component-style.md): Writes one named style for a kind of page block, as a draft, into its own file, components//