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

# Create Job Opening

> Creates a new job opening with either an existing job type ID or a new job type configuration. A job opening (e.g. "Store Manager — San Francisco") is always instance of a job type (e.g. "Store Manager").



## OpenAPI

````yaml POST /job-openings
openapi: 3.0.1
info:
  title: Alpharun API
  description: Alpharun REST API reference
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.alpharun.com/api/v1
security:
  - bearerAuth: []
paths:
  /job-openings:
    post:
      summary: Create a new job opening
      description: >-
        Creates a new job opening with either an existing job type ID or a new
        job type configuration. A job opening (e.g. "Store Manager — San
        Francisco") is always instance of a job type (e.g. "Store Manager").
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CreateJobOpeningWithJobTypeId'
                - $ref: '#/components/schemas/CreateJobOpeningWithJobType'
      responses:
        '200':
          description: Job opening created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      job_opening:
                        type: object
                        properties:
                          id:
                            type: string
                            description: The ID of the job opening
                          interview_link:
                            type: string
                            description: The link to the interview for this job opening
                          job_type:
                            type: object
                            properties:
                              id:
                                type: string
                                description: The ID of the job type
                        required:
                          - id
                          - job_type
                    required:
                      - job_opening
                required:
                  - data
              example:
                data:
                  job_opening:
                    id: '123456'
                    interview_link: https://alpharun.com/i/abcdef123456
                    job_type:
                      id: '789012'
        '400':
          description: Invalid request payload
        '401':
          description: Unauthorized - Invalid or missing API key
        '409':
          description: Conflict - Job opening name or job type name already exists
        '500':
          description: Internal server error
components:
  schemas:
    CreateJobOpeningWithJobTypeId:
      type: object
      required:
        - name
        - job_type_id
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 150
          description: 'Name of the job opening. Example: ''Store Manager - San Francisco'''
        location:
          type: string
          maxLength: 200
          description: >-
            Location of the job. Example: 'In-office 3 days per week in San
            Francisco, CA'
        pay:
          type: string
          maxLength: 200
          description: >-
            Pay information. Example: '$18 per hour or $80,000 - $100,000 per
            year'
        hours:
          type: string
          maxLength: 200
          description: 'Working hours information. Example: ''Full-time, 40 hours per week'''
        link_access:
          type: object
          properties:
            restricted:
              type: boolean
              description: >-
                Whether the link to the interview is restricted to
                pre-registered candidates only. Defaults to false if unset.
        job_type_id:
          type: string
          format: uuid
          description: ID of an existing job type
        owner_emails:
          type: array
          items:
            type: string
            format: email
          description: Array of teammate email addresses for job opening owners.
    CreateJobOpeningWithJobType:
      type: object
      required:
        - name
        - job_type
      properties:
        name:
          type: string
          minLength: 3
          maxLength: 150
          description: Name of the job opening
        location:
          type: string
          maxLength: 200
          description: >-
            Location of the job. Example: 'In-office 3 days per week in San
            Francisco, CA'
        pay:
          type: string
          maxLength: 200
          description: >-
            Location of the job. Example: '$18 per hour or $80,000 - $100,000
            per year'
        hours:
          type: string
          maxLength: 200
          description: 'Working hours information. Example: ''Full-time, 40 hours per week'''
        link_access:
          type: object
          properties:
            restricted:
              type: boolean
              description: >-
                Whether the link to the interview is restricted to
                pre-registered candidates only
        job_type:
          type: object
          required:
            - job_description
          properties:
            job_description:
              type: string
              minLength: 20
              maxLength: 10000
              description: Detailed description of the job
            ai_interviewer_guidance:
              type: string
              minLength: 15
              maxLength: 3000
              description: Guidance for the AI interviewer (optional)
            resume_collection_type:
              type: string
              enum:
                - before_interview
                - after_interview
              description: Resume collection configuration (optional)
            should_force_fullscreen:
              type: boolean
              description: Whether to force fullscreen mode (optional)
            should_record_video:
              type: boolean
              description: Whether to record video (optional)
        owner_emails:
          type: array
          items:
            type: string
            format: email
          description: Array of teammate email addresses for job opening owners.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````