LinkedIn Apply Connect Jobs API

APIs for creating and managing Apply Connect enabled job postings

Business capability
Talent Acquisition Management BC-300.10

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.
  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.'
      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:
    CoverLetterQuestions:
      type: object
      properties:
        coverLetterQuestionRequirement:
          type: string
          enum:
          - REQUIRED
          - OPTIONAL
          - NOT_AVAILABLE
          example: OPTIONAL
    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'
    CustomQuestionSet:
      type: object
      properties:
        questionSetId:
          type: string
          example: custom-questions-001
        questions:
          type: array
          items:
            $ref: '#/components/schemas/CustomQuestion'
    EducationQuestions:
      type: object
      properties:
        educationExperienceQuestionSet:
          type: object
    SimpleJobPostingRequest:
      type: object
      description: Request body for creating or updating job postings
      required:
      - elements
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/JobPostingElement'
    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
    ResumeQuestions:
      type: object
      properties:
        resumeQuestionRequirement:
          type: string
          enum:
          - REQUIRED
          - OPTIONAL
          - NOT_AVAILABLE
          example: REQUIRED
    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'
    QuestionChoice:
      type: object
      properties:
        symbolicName:
          type: string
          example: 'yes'
        displayValue:
          type: string
          example: 'Yes'
    QuestionDetails:
      type: object
      properties:
        multipleChoiceQuestionDetails:
          $ref: '#/components/schemas/MultipleChoiceQuestionDetails'
    AdditionalQuestions:
      type: object
      properties:
        customQuestionSets:
          type: array
          items:
            $ref: '#/components/schemas/CustomQuestionSet'
    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'
    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'
    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
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          example: 400
        message:
          type: string
          example: Invalid request parameters
        serviceErrorCode:
          type: integer
          example: 100
    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
  parameters:
    RestliMethodHeader:
      name: x-restli-method
      in: header
      required: true
      description: Rest.li method for batch operations
      schema:
        type: string
      example: batch_create
  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
  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