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

# Get interview result details with transcript

> Returns an interview result with its full transcript and AI assessment. Optionally attaches signed recording URLs.



## OpenAPI

````yaml https://cool.jobmojito.com/functions/v1/openapi get /job-interview-details
openapi: 3.1.0
info:
  title: JobMojito API
  version: 1.0.0
  description: >-
    Public API for JobMojito, served by Supabase Edge Functions. Authenticate
    with a Supabase JWT access token via the Authorization header.
servers:
  - url: https://cool.jobmojito.com/functions/v1
    description: Production
security: []
tags:
  - name: Interviews
    description: >-
      Create, configure and manage interview / coaching / assessment
      definitions.
  - name: Results
    description: >-
      Interview results, transcripts, reports, re-attempt requests and
      analytics.
  - name: Candidates
    description: List and manage candidates.
  - name: Knowledge base
    description: Upload documents used to generate knowledge-base interviews.
  - name: Resume & Form verification
    description: Pre-screen candidates from resumes and forms.
  - name: Admin
    description: >-
      Account administration — invite team/coaching users, manage sub-merchants
      and avatar templates.
paths:
  /job-interview-details:
    get:
      tags:
        - Results
      summary: Get interview result details with transcript
      description: >-
        Returns an interview result with its full transcript and AI assessment.
        Optionally attaches signed recording URLs.
      parameters:
        - schema:
            type: string
            minLength: 1
            format: uuid
            description: The interview result to fetch the transcript and details for.
            example: 93c98d21-e04d-4a84-9afa-ed154cf73636
          required: true
          name: interview_result_id
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            default: 'false'
            description: >-
              When true, includes short-lived signed recording URLs for the
              session, the video introduction, and each transcript answer.
            example: 'false'
          required: false
          name: get_signed_recordings
          in: query
      responses:
        '200':
          description: The interview result and transcript.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobInterviewDetailsResponse'
        '401':
          description: Missing, expired or invalid access token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No interview result exists for the given interview_result_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Validation error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    JobInterviewDetailsResponse:
      type: object
      properties:
        score:
          type: number
          nullable: true
          description: Overall interview score.
        score_simulation:
          type: number
          nullable: true
          description: Overall simulated score.
        score_text:
          type: string
          nullable: true
          description: Human-readable score summary.
        score_sentiment:
          type: number
          nullable: true
          description: Sentiment sub-score.
        score_words_per_minute:
          type: number
          nullable: true
          description: Speaking-pace (words per minute) sub-score.
        score_pronunciation:
          type: number
          nullable: true
          description: Pronunciation sub-score.
        score_answer:
          type: number
          nullable: true
          description: Aggregate answer sub-score.
        status:
          type: string
          nullable: true
          description: Coach/interview status (coach_status), e.g. started, completed.
        start:
          type: string
          nullable: true
          description: Interview start timestamp (training_start, ISO 8601).
        end:
          type: string
          nullable: true
          description: Interview end timestamp (training_end, ISO 8601).
        duration:
          type: number
          nullable: true
          description: Total duration in deciseconds (duration_ds).
        ai_interview_coverage_percentage:
          type: number
          nullable: true
          description: Percentage of the intended interview the AI judged to be covered.
        ai_completion_reason:
          type: string
          nullable: true
          description: Why the interview completed (ai_completed_reason).
        ai_analysis:
          type: string
          nullable: true
          description: Candidate-facing AI analysis of the whole interview.
        ai_analysis_recruiter:
          type: string
          nullable: true
          description: Recruiter-facing AI analysis of the whole interview.
        ai_analysis_recruiter_why_hire:
          nullable: true
          description: Reasons to hire (list/text).
        ai_analysis_recruiter_why_not_hire:
          nullable: true
          description: Reasons not to hire (list/text).
        recruiter_risks:
          nullable: true
          description: Detected recruiter risk flags (jsonb).
        user_feedback_recruiter:
          type: string
          nullable: true
          description: Recruiter-entered feedback note.
        recording_local_path:
          type: string
          nullable: true
          description: Storage path of the full session recording.
        recording_is_video:
          type: boolean
          nullable: true
          description: Whether the session recording is video.
        video_introduction_local_path:
          type: string
          nullable: true
          description: Storage path of the candidate video introduction.
        recording_url:
          type: string
          nullable: true
          description: >-
            Signed session-recording URL; present only when
            get_signed_recordings=true.
        video_introduction_url:
          type: string
          nullable: true
          description: >-
            Signed video-introduction URL; present only when
            get_signed_recordings=true.
        transcript:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: interview_result_question id.
              is_answer:
                type: boolean
                description: >-
                  True for a candidate answer turn, false for an avatar/question
                  turn.
              view:
                type: string
                nullable: true
                description: >-
                  Question view/type (e.g. with listening, multiple choice,
                  without scoring).
              question_original_id:
                type: string
                nullable: true
                description: >-
                  Source interview_def_question id (null for generated
                  follow-ups).
              question_original:
                type: string
                nullable: true
                description: >-
                  Original question text from the definition (when
                  question_original_id is set).
              question_asked:
                type: string
                nullable: true
                description: The question text actually asked to the candidate.
              answer:
                type: string
                nullable: true
                description: The candidate answer transcript text.
              ai_analysis:
                type: string
                nullable: true
                description: AI analysis of this answer.
              ai_analysis_recruiter:
                type: string
                nullable: true
                description: Recruiter-facing AI analysis of this answer.
              score:
                type: number
                nullable: true
                description: Score for this interaction.
              score_simulation:
                type: number
                nullable: true
                description: Simulated score for this interaction.
              score_answer_ai:
                type: number
                nullable: true
                description: AI answer score.
              score_answer_ai_simulation:
                type: number
                nullable: true
                description: Simulated AI answer score.
              duration:
                type: number
                nullable: true
                description: Duration of this interaction in deciseconds (duration_ds).
              mojito_language_code:
                type: string
                nullable: true
                description: Platform language code of this interaction.
              answer_assessment_raw_data:
                nullable: true
                description: Raw per-answer assessment data (pronunciation/sentiment/etc.).
              recording_local_path:
                type: string
                nullable: true
                description: >-
                  Storage path of this answer recording (private-recordings
                  bucket).
              recording_is_video:
                type: boolean
                nullable: true
                description: Whether this answer recording is video (vs audio).
              external_data:
                nullable: true
                description: External data carried from the question definition.
              external_id:
                type: string
                nullable: true
                description: External identifier carried from the question definition.
              recording_url:
                type: string
                nullable: true
                description: >-
                  Signed URL for recording_local_path; present only when
                  get_signed_recordings=true.
            additionalProperties:
              nullable: true
          description: Ordered interactions (questions + answers) of the interview.
      additionalProperties:
        nullable: true
      description: >-
        The interview result with its transcript, produced by the
        interview_transcript RPC. Additional fields may be present
        (passthrough).
    Error:
      type: object
      properties:
        error:
          type: string
          example: Field is required.
        name:
          type: string
          example: interview_result_id
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Supabase JWT access token, passed as `Authorization: Bearer <token>`.'

````