LinkedIn Apply Connect Jobs API

APIs for creating and managing Apply Connect enabled job postings

Operations 1

POST /v2/simpleJobPostings LinkedIn Create or Update Apply Connect Job Posting #

Documentation

📖
Documentation
https://learn.microsoft.com/en-us/linkedin/marketing/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/marketing/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/learning/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/getting-started/terminology
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/learning/integrations/xapi
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/learning/reporting/reporting-docs/reporting-api
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/talent/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/talent/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/talent/versioning
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/compliance/
📖
GettingStarted
https://learn.microsoft.com/en-us/linkedin/compliance/getting-started
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/compliance/compliance-api/overview
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/sales/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/display-services/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/analytics-services/
📖
APIReference
https://learn.microsoft.com/en-us/linkedin/sales/sync-services/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/member-data-portability/
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/pages-data-portability-overview
📖
Documentation
https://learn.microsoft.com/en-us/linkedin/dma/transparency/advertiser-transparency

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/linkedin-apply-connect-jobs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

linkedin-apply-connect-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LinkedIn Job Posting Apply Connect Jobs API
  description: 'LinkedIn''s Job Posting API enables authorized third parties such as clients, ATS systems, and Job Distributors to post jobs directly to LinkedIn on behalf of customers.

    This API supports two job categories:

    - **Basic Jobs**: Free job posts gathered by LinkedIn from external sources - **Promoted Jobs**: Paid job postings with enhanced visibility

    The use of these APIs is restricted to developers approved by LinkedIn. Please reach out to your LinkedIn Relationship Manager or Business Development contact for access.

    For more information, refer to the [Job Posting Overview](https://docs.microsoft.com/en-us/linkedin/talent/job-postings/job-posting-overview).'
  version: 1.0.0
  contact:
    name: LinkedIn Talent Solutions
    url: https://business.linkedin.com/talent-solutions
servers:
- url: https://api.linkedin.com
  description: LinkedIn Production API Server
security:
- OAuth2Auth: []
tags:
- name: Apply Connect Jobs
  description: APIs for creating and managing Apply Connect enabled job postings
paths:
  /v2/simpleJobPostings:
    post:
      operationId: createOrUpdateJobPosting
      tags:
      - Apply Connect Jobs
      summary: LinkedIn Create or Update Apply Connect Job Posting
      description: 'Creates a new Apply Connect enabled job posting or updates/closes an existing one. Use the `jobPostingOperationType` field to specify the operation:

        - `CREATE`: Create a new job posting - `UPDATE`: Update an existing job posting - `CLOSE`: Close an existing job posting

        For more information, refer to the [Apply Connect Jobs Lifecycle documentation](https://docs.microsoft.com/en-us/linkedin/talent/job-postings/api/sync-jobs-onsite-apply#apply-connect-jobs-lifecycle).'
      x-microcks-operation:
        dispatcher: FALLBACK
        dispatcherRules: "{\n  \"dispatcher\": \"FALLBACK\",\n  \"dispatcherRules\": \"\"\n}\n"
        delay: 100
      parameters:
      - $ref: '#/components/parameters/RestliMethodHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleJobPostingRequest'
            examples:
              CreateJobPosting:
                $ref: '#/components/examples/SimpleJobPostingRequestExample'
              CloseJobPosting:
                $ref: '#/components/examples/CloseJobPostingRequestExample'
      responses:
        '200':
          description: Job posting request accepted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobPostingResponse'
              examples:
                SuccessResponse:
                  $ref: '#/components/examples/JobPostingResponseExample'
        '400':
          description: Bad request - invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                BadRequestError:
                  $ref: '#/components/examples/ErrorResponseExample'
        '401':
          description: Unauthorized - invalid or missing authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid request parameters
        serviceErrorCode:
          type: integer
          example: 100
    SimpleJobPostingRequest:
      type: object
      description: Request body for creating or updating job postings
      required:
      - elements
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/JobPostingElement'
    AdditionalQuestions:
      type: object
      properties:
        customQuestionSets:
          type: array
          items:
            $ref: '#/components/schemas/CustomQuestionSet'
    JobPostingElement:
      type: object
      description: Individual job posting element
      required:
      - externalJobPostingId
      - title
      - description
      - integrationContext
      - listingType
      - location
      properties:
        externalJobPostingId:
          type: string
          description: External identifier for the job posting
          example: JOB-2024-001
        title:
          type: string
          description: Job title
          example: Software Developer in Test
        description:
          type: string
          description: Full job description
          example: We are looking for a talented Software Developer in Test to join our engineering team...
        integrationContext:
          type: string
          description: Organization URN for the job posting
          example: urn:li:organization:12345678
        jobPostingOperationType:
          type: string
          description: Operation type for the job posting
          enum:
          - CREATE
          - UPDATE
          - CLOSE
          example: CREATE
        listingType:
          type: string
          description: Type of job listing
          enum:
          - BASIC
          - PREMIUM
          example: BASIC
        listedAt:
          type: integer
          format: int64
          description: Timestamp when the job was listed
          example: 1702693664000
        location:
          type: string
          description: Job location
          example: San Francisco, CA
        companyApplyUrl:
          type: string
          format: uri
          description: URL for company's application page
          example: https://company.com/careers/apply
        onsiteApplyConfiguration:
          $ref: '#/components/schemas/OnsiteApplyConfiguration'
    JobPostingResult:
      type: object
      properties:
        status:
          type: string
          example: ACCEPTED
        taskUrn:
          type: string
          description: URN of the task to track posting status
          example: urn:li:simpleJobPostingTask:12345678
    CustomQuestion:
      type: object
      properties:
        required:
          type: boolean
          example: true
        partnerQuestionIdentifier:
          type: string
          example: question-001
        questionText:
          type: string
          example: Are you authorized to work in the United States?
        questionDetails:
          $ref: '#/components/schemas/QuestionDetails'
    CustomQuestionSet:
      type: object
      properties:
        questionSetId:
          type: string
          example: custom-questions-001
        questions:
          type: array
          items:
            $ref: '#/components/schemas/CustomQuestion'
    QuestionChoice:
      type: object
      properties:
        symbolicName:
          type: string
          example: 'yes'
        displayValue:
          type: string
          example: 'Yes'
    OnsiteApplyConfiguration:
      type: object
      description: Configuration for onsite application collection
      properties:
        jobApplicationWebhookUrl:
          type: string
          format: uri
          description: Webhook URL for receiving job applications
          example: https://ats.company.com/webhooks/linkedin-applications
        questions:
          $ref: '#/components/schemas/ApplicationQuestions'
    QuestionDetails:
      type: object
      properties:
        multipleChoiceQuestionDetails:
          $ref: '#/components/schemas/MultipleChoiceQuestionDetails'
    MultipleChoiceQuestionDetails:
      type: object
      properties:
        choices:
          type: array
          items:
            $ref: '#/components/schemas/QuestionChoice'
        selectMultiple:
          type: boolean
          example: false
        preferredFormComponent:
          type: string
          enum:
          - RADIO_BUTTONS
          - DROPDOWN
          - CHECKBOXES
          example: RADIO_BUTTONS
    EducationQuestions:
      type: object
      properties:
        educationExperienceQuestionSet:
          type: object
    CoverLetterQuestions:
      type: object
      properties:
        coverLetterQuestionRequirement:
          type: string
          enum:
          - REQUIRED
          - OPTIONAL
          - NOT_AVAILABLE
          example: OPTIONAL
    JobPostingResponse:
      type: object
      description: Response from job posting creation
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/JobPostingResult'
    WorkQuestions:
      type: object
      properties:
        workExperienceQuestionSet:
          type: object
    ResumeQuestions:
      type: object
      properties:
        resumeQuestionRequirement:
          type: string
          enum:
          - REQUIRED
          - OPTIONAL
          - NOT_AVAILABLE
          example: REQUIRED
    ApplicationQuestions:
      type: object
      description: Questions configuration for job applications
      properties:
        resumeQuestions:
          $ref: '#/components/schemas/ResumeQuestions'
        coverLetterQuestions:
          $ref: '#/components/schemas/CoverLetterQuestions'
        voluntarySelfIdentificationQuestions:
          type: object
          description: Voluntary self-identification questions
        educationQuestions:
          $ref: '#/components/schemas/EducationQuestions'
        workQuestions:
          $ref: '#/components/schemas/WorkQuestions'
        additionalQuestions:
          $ref: '#/components/schemas/AdditionalQuestions'
  examples:
    SimpleJobPostingRequestExample:
      summary: Example Apply Connect job posting request
      value:
        elements:
        - externalJobPostingId: JOB-2024-001
          title: Software Developer in Test
          description: We are looking for a talented Software Developer in Test to join our engineering team. You will be responsible for designing and implementing automated tests.
          integrationContext: urn:li:organization:12345678
          jobPostingOperationType: CREATE
          listingType: BASIC
          listedAt: 1702693664000
          location: San Francisco, CA
          companyApplyUrl: https://company.com/careers/apply
          onsiteApplyConfiguration:
            jobApplicationWebhookUrl: https://ats.company.com/webhooks/linkedin
            questions:
              resumeQuestions:
                resumeQuestionRequirement: REQUIRED
              coverLetterQuestions:
                coverLetterQuestionRequirement: OPTIONAL
    JobPostingResponseExample:
      summary: Example job posting response
      value:
        elements:
        - status: ACCEPTED
          taskUrn: urn:li:simpleJobPostingTask:12345678
    CloseJobPostingRequestExample:
      summary: Example request to close a job posting
      value:
        elements:
        - externalJobPostingId: JOB-2024-001
          title: Software Developer in Test
          description: Position has been filled.
          integrationContext: urn:li:organization:12345678
          jobPostingOperationType: CLOSE
          listingType: BASIC
          listedAt: 1702693664000
          location: San Francisco, CA
    ErrorResponseExample:
      summary: Example error response
      value:
        status: 400
        message: Invalid request parameters
        serviceErrorCode: 100
  parameters:
    RestliMethodHeader:
      name: x-restli-method
      in: header
      required: true
      description: Rest.li method for batch operations
      schema:
        type: string
      example: batch_create
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer Token authentication
    OAuth2Auth:
      type: oauth2
      description: OAuth 2.0 authentication
      flows:
        clientCredentials:
          tokenUrl: https://www.linkedin.com/oauth/v2/accessToken
          scopes:
            w_organization_social: Write organization social content