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

# Get job by ID

> Retrieve a single job description by its unique identifier. Returns the full job object including extracted information, experience and education preferences, requirements, skills, and metadata.



## OpenAPI

````yaml /api-reference/openapi.json get /jobs/{id}
openapi: 3.1.0
info:
  title: Fribl API
  description: >-
    The Fribl API enables intelligent talent matching powered by AI. Analyze CVs
    and job descriptions from text or file uploads, search and manage skills,
    match candidates to positions with configurable scoring weights, and source
    candidate profiles from external databases. All document processing is
    asynchronous — submit documents for analysis, poll for status, and retrieve
    structured results when ready.
  version: 1.0.0
  contact:
    name: Fribl Support
    url: https://fribl.co
servers:
  - url: https://api-service.fribl.co/api/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: CVs
    description: >-
      Upload, analyze, retrieve, update, and delete candidate CVs. CVs can be
      submitted as raw text or as PDF file uploads. Processing is asynchronous —
      use the status endpoint to track progress.
  - name: Jobs
    description: >-
      Upload, analyze, retrieve, update, and delete job descriptions. Jobs can
      be submitted as raw text or as PDF file uploads. Processing is
      asynchronous — use the status endpoint to track progress.
  - name: Matching
    description: >-
      Match analyzed CVs against job descriptions using AI-powered scoring.
      Configure weights across experience, hard skills, soft skills, and
      education dimensions to tailor match results to your hiring priorities.
  - name: Sourcing
    description: >-
      Search for candidate profiles from external sources, retrieve cached
      search results, and ingest selected profiles into your Fribl workspace for
      matching.
  - name: Skills
    description: >-
      Search the Fribl skills taxonomy and retrieve available languages for
      skill translation. These endpoints are publicly accessible and do not
      require authentication.
  - name: Tokens
    description: >-
      Inspect your workspace's usage-based token balance, review the ledger of
      every charge and refund, and read the live per-action price list. Billable
      endpoints deduct tokens and return 402 when the balance is insufficient.
      Tokens are purchased and managed in the Fribl Console
      (https://console.fribl.co).
paths:
  /jobs/{id}:
    get:
      tags:
        - Jobs
      summary: Get job by ID
      description: >-
        Retrieve a single job description by its unique identifier. Returns the
        full job object including extracted information, experience and
        education preferences, requirements, skills, and metadata.
      operationId: getJob
      parameters:
        - name: id
          in: path
          required: true
          description: Unique identifier of the job.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: 'The requested job is ready and returned with `status: "COMPLETED"`.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  status:
                    type: string
                    enum:
                      - COMPLETED
                    description: Processing status of the job.
                  data:
                    $ref: '#/components/schemas/Job'
                required:
                  - message
                  - status
                  - data
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: >-
            Either the job is still being processed (poll again) or no job
            exists with that ID. Distinguish by inspecting the response body: a
            `status: "PENDING"` body means processing is still in flight; an
            `error` body means the ID is not found.
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    description: >-
                      In-flight task — keep polling. Returned for queued,
                      in-progress, and retrying tasks.
                    properties:
                      message:
                        type: string
                      status:
                        type: string
                        enum:
                          - PENDING
                    required:
                      - message
                      - status
                  - $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Job:
      type: object
      description: A fully analyzed job description with extracted structured data.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the job.
        information:
          $ref: '#/components/schemas/JobInformation'
        experience_preference:
          $ref: '#/components/schemas/JobExperiencePreference'
        education_preference:
          $ref: '#/components/schemas/JobEducationPreference'
        job_requirements:
          type: array
          items:
            type: string
          description: List of job requirements extracted from the description.
          example:
            - 5+ years experience
            - Strong communication
        source_language:
          type: string
          description: Original content language associated with this job.
        hard_skills:
          type: array
          items:
            $ref: '#/components/schemas/Skill'
          description: Structured hard skills identified from the job description.
        soft_skills:
          type: array
          items:
            $ref: '#/components/schemas/Skill'
          description: Structured soft skills identified from the job description.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the job was created.
          example: '2024-01-01T00:00:00.000Z'
        updated_at:
          type: string
          format: date-time
          description: Timestamp when the job was last updated.
          example: '2024-01-01T00:00:00.000Z'
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        error:
          type: string
          description: Human-readable error message.
      required:
        - error
    JobInformation:
      type: object
      description: Core information about a job posting.
      properties:
        title:
          type: string
          description: Job title.
          example: Senior Software Engineer
        company:
          type: string
          description: Name of the hiring company.
          example: Tech Corp
        description:
          type: string
          description: Full job description text.
          example: We are looking for...
        activity_sector:
          type: string
          description: Industry or sector of the company.
          example: Technology
        locations:
          type: array
          items:
            $ref: '#/components/schemas/Address'
          description: List of job locations.
        job_type:
          type: string
          description: Type of employment (e.g., Full-time, Part-time).
          example: Full-time
        contract_type:
          type: string
          description: Type of contract (e.g., Permanent, Temporary, Freelance).
          example: Permanent
    JobExperiencePreference:
      type: object
      description: Preferred experience criteria for the job.
      properties:
        title:
          type: string
          description: Preferred previous job title.
          example: Software Engineer
        activity_sector:
          type: string
          description: Preferred industry or sector.
          example: Technology
        description:
          type: string
          description: Description of preferred experience.
          example: Experience in backend development
        duration:
          type: integer
          description: Preferred minimum experience duration in months.
          example: 60
    JobEducationPreference:
      type: object
      description: Preferred education criteria for the job.
      properties:
        degree:
          type: string
          description: Preferred degree level.
          example: Master of Science
        major:
          type: string
          description: Preferred field of study.
          example: Computer Science
        score:
          type: string
          description: Preferred grade or distinction.
          example: ''
    Skill:
      type: object
      description: >-
        A skill identified from a CV or job description, with type
        classification and match relationship.
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier of the skill.
        skill:
          type: string
          description: Name of the skill.
          example: JavaScript
        type:
          type: string
          enum:
            - hard-skill
            - soft-skill
          description: >-
            Canonical English type enum for the skill. This field is not
            translated.
        relationship:
          type: string
          enum:
            - required
            - optional
            - satisfies
          description: >-
            Canonical English relationship enum for the associated CV or job.
            This field is not translated.
        explanation:
          type:
            - string
            - 'null'
          description: >-
            AI-generated explanation of how this skill was identified or
            evaluated.
          example: Candidate demonstrates strong JavaScript proficiency
    Address:
      type: object
      description: A geographic address.
      properties:
        city:
          type: string
          description: City name.
          example: Amsterdam
        country:
          type: string
          description: Country name.
          example: Netherlands
  responses:
    Unauthorized:
      description: >-
        Authentication failed. Provide a valid API key in the `x-api-key`
        header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key in UUID format. Include this header with every authenticated
        request.

````