Coresignal Multi-source Jobs API

The Multi-source Jobs API returns enriched job posting records aggregated from multiple public sources with 85+ data fields covering title, location, company, salary, posted date, source URLs, and full job descriptions. Search uses Elasticsearch DSL with collect endpoints for retrieving full records by ID.

OpenAPI Specification

coresignal-multi-source-jobs-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Coresignal Multi-source Jobs API
  version: '2.0'
  description: >-
    The Multi-source Jobs API returns enriched job posting records aggregated
    from multiple public sources. Search supports filter and Elasticsearch
    DSL queries; Collect retrieves full job records by ID.
  contact:
    name: Coresignal Support
    url: https://coresignal.com/contact/
  license:
    name: Proprietary
    url: https://coresignal.com/terms-and-conditions/
servers:
  - url: https://api.coresignal.com/cdapi/v2/multi_source_jobs
    description: Coresignal Multi-source Jobs API production server
security:
  - apiKey: []
tags:
  - name: Search
    description: Search job posting records.
  - name: Collect
    description: Retrieve full job posting records by ID.
paths:
  /search/filter:
    post:
      operationId: searchJobsByFilter
      summary: Search Jobs (filter)
      description: Search job posting records using a structured filter.
      tags:
        - Search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobFilter'
      responses:
        '200':
          description: Array of matching job posting record IDs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
                  format: int64
  /search/es_dsl:
    post:
      operationId: searchJobsByEsDsl
      summary: Search Jobs (Elasticsearch DSL)
      description: Search job posting records using a full Elasticsearch DSL query.
      tags:
        - Search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Array of matching job posting record IDs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: integer
                  format: int64
  /collect/{id}:
    get:
      operationId: collectJob
      summary: Collect a Job posting record
      description: Retrieve the full job posting record for the given ID.
      tags:
        - Collect
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: Full job posting record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: apikey
  schemas:
    Job:
      type: object
      properties:
        id:
          type: integer
          format: int64
        title:
          type: string
        description:
          type: string
        url:
          type: string
          format: uri
        company_name:
          type: string
        company_url:
          type: string
        location:
          type: string
        country:
          type: string
        region:
          type: string
        seniority_level:
          type: string
        employment_type:
          type: string
        application_active:
          type: boolean
        time_posted:
          type: string
        date_posted:
          type: string
          format: date-time
        salary_currency:
          type: string
        salary_min:
          type: number
        salary_max:
          type: number
        last_updated:
          type: string
          format: date-time
    JobFilter:
      type: object
      properties:
        title:
          type: string
        company_name:
          type: string
        country:
          type: string
        location:
          type: string
        seniority_level:
          type: string
        employment_type:
          type: string
        date_posted_from:
          type: string
        date_posted_to:
          type: string
        application_active:
          type: boolean