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

# Get Application Interview

> Retrieve interview call details for a job application including transcript and scores.



## OpenAPI

````yaml /swagger/v1_schema.yaml get /applications/{application_id}/interview
openapi: 3.0.3
info:
  title: TalentUnveiled Public API
  version: 1.0.0
  description: API documentation for TalentUnveiled endpoints
servers:
  - url: https://api.talentunveiled.com/api/v1
    description: Production server
security: []
paths:
  /applications/{application_id}/interview:
    get:
      tags:
        - TalentUnveiled Public API
      summary: Get Application Interview
      description: >-
        Retrieve interview call details for a job application including
        transcript and scores.
      operationId: applications_interview_retrieve
      parameters:
        - in: path
          name: application_id
          schema:
            type: string
            format: uuid
          required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterviewCallDetail'
          description: ''
      security:
        - apiKeyAuth: []
        - {}
components:
  schemas:
    InterviewCallDetail:
      type: object
      description: Detailed serializer with complete interview data.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        status:
          $ref: '#/components/schemas/InterviewCallStatusEnum'
        pipeline_phase:
          allOf:
            - $ref: '#/components/schemas/PipelinePhaseEnum'
          description: |-
            Current phase in the interview pipeline.

            * `awaiting_booking` - Awaiting Booking
            * `outreach` - Outreach
            * `scheduled` - Scheduled
            * `calling` - Calling
            * `in_progress` - In Progress
            * `evaluating` - Evaluating
            * `completed` - Completed
            * `knocked_out` - Knocked Out
            * `exhausted` - Exhausted
            * `opted_out` - Opted Out
            * `failed` - Failed
            * `cancelled` - Cancelled
            * `no_show` - No Show
        job_application_id:
          type: string
          format: uuid
        scheduled_at:
          type: string
          format: date-time
          nullable: true
          description: When the interview is scheduled (UTC)
        scheduled_duration_minutes:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: Expected interview duration in minutes
        booking_source:
          allOf:
            - $ref: '#/components/schemas/BookingSourceEnum'
          nullable: true
        cancelled_at:
          type: string
          format: date-time
          nullable: true
        last_activity_note:
          type: string
          nullable: true
          description: >-
            Context from the latest workflow activity (opt-out reason, callback
            request, etc.).
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
        candidate:
          $ref: '#/components/schemas/OrganizationCandidate'
        interview_flow:
          $ref: '#/components/schemas/InterviewFlowBasic'
        attempt_number:
          type: integer
          readOnly: true
        interviewer_name:
          type: string
          readOnly: true
        output:
          allOf:
            - $ref: '#/components/schemas/CallOutput'
          nullable: true
          readOnly: true
      required:
        - attempt_number
        - candidate
        - created_at
        - id
        - interview_flow
        - interviewer_name
        - job_application_id
        - output
        - updated_at
    InterviewCallStatusEnum:
      enum:
        - pending
        - in_progress
        - processing
        - completed
        - failed
        - unreachable
        - opted_out
        - cancelled
      type: string
      description: |-
        * `pending` - Pending
        * `in_progress` - In Progress
        * `processing` - Processing
        * `completed` - Completed
        * `failed` - Failed
        * `unreachable` - Unreachable
        * `opted_out` - Opted Out
        * `cancelled` - Cancelled
    PipelinePhaseEnum:
      enum:
        - awaiting_booking
        - outreach
        - scheduled
        - calling
        - in_progress
        - evaluating
        - completed
        - knocked_out
        - exhausted
        - opted_out
        - failed
        - cancelled
        - no_show
      type: string
      description: |-
        * `awaiting_booking` - Awaiting Booking
        * `outreach` - Outreach
        * `scheduled` - Scheduled
        * `calling` - Calling
        * `in_progress` - In Progress
        * `evaluating` - Evaluating
        * `completed` - Completed
        * `knocked_out` - Knocked Out
        * `exhausted` - Exhausted
        * `opted_out` - Opted Out
        * `failed` - Failed
        * `cancelled` - Cancelled
        * `no_show` - No Show
    BookingSourceEnum:
      enum:
        - self_service
        - voice
        - hr_manual
      type: string
      description: |-
        * `self_service` - Self Service
        * `voice` - Voice Agent
        * `hr_manual` - HR Manual
    OrganizationCandidate:
      type: object
      description: Preserves 'OrganizationCandidate' OpenAPI schema name for company API.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        first_name:
          type: string
          nullable: true
          maxLength: 150
        last_name:
          type: string
          nullable: true
          maxLength: 150
        email:
          type: string
          format: email
          nullable: true
          maxLength: 254
        created_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - created_at
        - id
    InterviewFlowBasic:
      type: object
      description: Nested flow info for call responses.
      properties:
        id:
          type: string
          format: uuid
        job_posting_id:
          type: string
          format: uuid
        job_posting_title:
          type: string
        interview_mode:
          $ref: '#/components/schemas/InterviewModeEnum'
        intro:
          type: string
        outro:
          type: string
        language:
          $ref: '#/components/schemas/LanguageEnum'
        retries_limit:
          type: integer
        default_call_delay:
          type: string
          nullable: true
      required:
        - id
        - interview_mode
        - intro
        - job_posting_id
        - job_posting_title
        - language
        - outro
        - retries_limit
    CallOutput:
      type: object
      description: Complete interview output with all nested data.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        language:
          allOf:
            - $ref: '#/components/schemas/LanguageEnum'
          description: >-
            Language interview was conducted in (snapshot from InterviewFlow at
            time of interview)


            * `en-US` - English

            * `de-DE` - German
        called_at:
          type: string
          format: date-time
          nullable: true
        ended_at:
          type: string
          format: date-time
          nullable: true
        duration_minutes:
          type: number
          format: double
          nullable: true
          readOnly: true
        recording_status:
          allOf:
            - $ref: '#/components/schemas/RecordingStatusEnum'
          readOnly: true
        recording_video_url:
          type: string
          nullable: true
          readOnly: true
        recording_audio_url:
          type: string
          nullable: true
          readOnly: true
        recording_duration_sec:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          nullable: true
          description: Recording duration in seconds
        summary:
          type: string
          nullable: true
        tagline_summary:
          type: string
          nullable: true
        candidate_background:
          type: array
          items:
            type: string
          nullable: true
        candidate_motivation_and_interest:
          type: array
          items:
            type: string
          nullable: true
        candidate_logistical_considerations:
          type: array
          items:
            type: string
          nullable: true
        candidate_tools_and_skills:
          type: array
          items:
            type: string
          nullable: true
        candidate_questions:
          type: array
          items:
            type: string
          nullable: true
        follow_up_questions:
          type: array
          items:
            type: string
          nullable: true
        strengths:
          type: array
          items:
            type: string
          nullable: true
          description: Key strengths demonstrating candidate fit (2-5 items)
        weaknesses:
          type: array
          items:
            type: string
          nullable: true
          description: Areas for improvement or skill gaps identified (2-5 items)
        red_flags:
          type: array
          items:
            type: string
          nullable: true
          description: Serious concerns or deal-breakers (0-3 items, can be empty)
        overall_score:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
          nullable: true
          description: Aggregate score across all criteria (0-5 scale)
        overall_score_explanation:
          type: string
          nullable: true
          description: Explanation of the overall score calculation
        questions:
          type: array
          items:
            $ref: '#/components/schemas/QuestionResponse'
        criteria_scores:
          type: array
          items:
            $ref: '#/components/schemas/CriteriaScore'
        transcript:
          type: array
          items:
            $ref: '#/components/schemas/TranscriptItem'
          readOnly: true
      required:
        - criteria_scores
        - duration_minutes
        - id
        - questions
        - recording_audio_url
        - recording_status
        - recording_video_url
        - transcript
    InterviewModeEnum:
      enum:
        - phone
        - web
      type: string
      description: |-
        * `phone` - Phone
        * `web` - Web
    LanguageEnum:
      enum:
        - en-US
        - de-DE
      type: string
      description: |-
        * `en-US` - English
        * `de-DE` - German
    RecordingStatusEnum:
      enum:
        - not_started
        - in_progress
        - completed
        - failed
      type: string
      description: |-
        * `not_started` - Not Started
        * `in_progress` - In Progress
        * `completed` - Completed
        * `failed` - Failed
    QuestionResponse:
      type: object
      description: Question/answer pair with score and reasoning.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        question:
          type: string
        answer:
          type: string
          nullable: true
        score:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        score_reasoning:
          type: string
        is_knockout:
          type: boolean
          description: Whether this question is a knockout gate.
        is_knocked_out:
          type: boolean
          description: LLM determined this knockout question was failed.
        knockout_reasoning:
          type: string
          nullable: true
          description: LLM explanation for the knockout decision.
        sequence_number:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        interview_flow_question_id:
          type: string
          format: uuid
          nullable: true
        transcript_indices:
          type: array
          items:
            type: integer
            maximum: 2147483647
            minimum: -2147483648
          nullable: true
          description: >-
            Indices of InterviewCallTranscriptItem records where this question
            was answered. Each index must be within the output's transcript
            range.
      required:
        - id
        - interview_flow_question_id
        - question
        - score
        - score_reasoning
    CriteriaScore:
      type: object
      description: Criteria score with nested highlights and criterion details.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        criteria:
          $ref: '#/components/schemas/CriteriaBasic'
        score:
          type: integer
          maximum: 2147483647
          minimum: 0
          nullable: true
          description: >-
            Score for this criterion. The accepted range depends on the parent
            criterion's score_system: 0 or 1 when score_system=binary, 0 to 5
            when score_system=out_of_5, 0 to 100 when score_system=percentage.
            Null when the criterion was not assessed.
        weight:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
          description: >-
            Snapshot of criteria.weight at time of scoring (preserves historical
            calculation)
        weighted_score:
          type: string
          format: decimal
          pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
          nullable: true
          description: Score × weight (calculated property)
        reasoning:
          type: string
        highlights:
          type: array
          items:
            $ref: '#/components/schemas/CriteriaScoreHighlight'
        is_knockout:
          type: boolean
          description: Whether this criterion is a knockout gate.
      required:
        - criteria
        - highlights
        - id
        - reasoning
        - weighted_score
    TranscriptItem:
      type: object
      description: Transcript item with word-level timing data.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        role:
          $ref: '#/components/schemas/ConversationRoleEnum'
        content:
          type: string
        start_sec:
          type: string
          format: decimal
          pattern: ^-?\d{0,9}(?:\.\d{0,3})?$
          nullable: true
          description: >-
            Seconds into the call where this transcript item starts (e.g.
            91.085). start_sec and end_sec are both set, or both null.
        end_sec:
          type: string
          format: decimal
          pattern: ^-?\d{0,9}(?:\.\d{0,3})?$
          nullable: true
          description: >-
            Seconds into the call where this transcript item ends. start_sec and
            end_sec are both set, or both null.
        index:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
        words:
          type: array
          items:
            $ref: '#/components/schemas/WordTiming'
          nullable: true
          description: Array of word-level timing objects from ASR
      required:
        - content
        - id
        - index
        - role
        - words
    CriteriaBasic:
      type: object
      description: Nested criteria info for score responses.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        category:
          $ref: '#/components/schemas/ScoreCriteriaCategoryEnum'
        criteria:
          type: string
        description:
          type: string
        score_system:
          $ref: '#/components/schemas/ScoreSystemEnum'
        weight:
          type: string
          format: decimal
          pattern: ^-?\d{0,3}(?:\.\d{0,2})?$
          description: >-
            Relative importance of this criterion in overall score calculation.
            Default is 1.0 (normal importance). Use 0.15 for 15%, 2.0 for double
            importance.
        sequence_number:
          type: integer
          maximum: 2147483647
          minimum: -2147483648
          nullable: true
        is_knockout:
          type: boolean
          description: >-
            If True, scoring below knockout_threshold disqualifies the
            candidate.
        knockout_threshold:
          type: integer
          maximum: 100
          minimum: 0
          nullable: true
          description: >-
            Score below this triggers knockout. Range depends on score_system:
            BINARY 0-1, OUT_OF_5 0-5, PERCENTAGE 0-100. Required when
            is_knockout=True.
      required:
        - criteria
        - description
        - id
    CriteriaScoreHighlight:
      type: object
      description: Evidence/highlight from transcript supporting a criteria score.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        reason_summary:
          type: string
        reason_explanation:
          type: string
        highlight:
          type: string
        highlight_time:
          type: string
          format: decimal
          pattern: ^-?\d{0,7}(?:\.\d{0,3})?$
          nullable: true
        sentiment:
          $ref: '#/components/schemas/SentimentEnum'
        transcript_item_id:
          type: string
          format: uuid
          nullable: true
      required:
        - highlight
        - id
        - reason_explanation
        - reason_summary
        - transcript_item_id
    ConversationRoleEnum:
      enum:
        - user
        - agent
      type: string
      description: |-
        * `user` - User
        * `agent` - Agent
    WordTiming:
      type: object
      description: Word-level timing data from speech recognition.
      properties:
        word:
          type: string
        start:
          type: number
          format: double
        end:
          type: number
          format: double
      required:
        - end
        - start
        - word
    ScoreCriteriaCategoryEnum:
      enum:
        - general
        - language_proficiency
        - soft_skills
        - technical_skills
        - communication_skills
        - custom
      type: string
      description: |-
        * `general` - General
        * `language_proficiency` - Language Proficiency
        * `soft_skills` - Soft Skills
        * `technical_skills` - Technical Skills
        * `communication_skills` - Communication Skills
        * `custom` - Custom
    ScoreSystemEnum:
      enum:
        - binary
        - percentage
        - out_of_5
      type: string
      description: |-
        * `binary` - Binary
        * `percentage` - Percentage
        * `out_of_5` - Out of 5
    SentimentEnum:
      enum:
        - positive
        - negative
        - neutral
      type: string
      description: |-
        * `positive` - Positive
        * `negative` - Negative
        * `neutral` - Neutral
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      description: >-
        API key authentication for the public API. Pass your API key as a Bearer
        token.

````