---
title: "Create a job posting"
method: POST
path: "/api/v1/linkedin/jobs"
tags: ["LinkedIn Specific"]
---

# Create a job posting

`POST /api/v1/linkedin/jobs`

Create a new job offer draft.

## Request body

- object
  - `account_id` string, required — An Unipile account id.
  - `job_title` object, required
    - `id` string — The ID of the parameter. Use type JOB_TITLE on the List search parameters route to find out the right ID.
    - `text` string
  - `company` object, required
    - `id` string — The ID of the parameter. Use type COMPANY on the List search parameters route to find out the right ID.
    - `text` string
  - `workplace` 'ON_SITE' | 'HYBRID' | 'REMOTE', required
  - `location` string, required — The ID of the parameter. Use type LOCATION on the List search parameters route to find out the right ID.
  - `employment_status` 'FULL_TIME' | 'PART_TIME' | 'CONTRACT' | 'TEMPORARY' | 'OTHER' | 'VOLUNTEER' | 'INTERNSHIP'
  - `description` string, required — You can use HTML tags to structure your description.
  - `auto_rejection_template` string — You can define a rejection message template to be automatically sent to applicants that don't pass screening questions.
  - `screening_questions` union[]
    - union
      - object
        - `question` string, required
        - `position` number — The position of the question in the list. Overrides the index of the question in the array.
        - `must_match` boolean — Whether an answer that doesn't perfectly match the expected is disqualifying or not.
        - `answer_type` 'numeric', required
        - `min_expectation` number
        - `max_expectation` number
      - object
        - `question` string, required
        - `position` number — The position of the question in the list. Overrides the index of the question in the array.
        - `must_match` boolean — Whether an answer that doesn't perfectly match the expected is disqualifying or not.
        - `answer_type` 'multiple_choices', required
        - `choices` string[], required
        - `expected_choices` string[], required
  - `apply_method` union
    - object
      - `type` 'linkedin', required
      - `notification_email` string, required
    - object
      - `type` 'external', required
      - `url` string, required
  - `recruiter` object
    - `project` union, required
      - object
        - `id` string, required
      - object
        - `name` string, required
    - `functions` string[], required — The ID of the parameter. Use type JOB_FUNCTION on the List search parameters route to find out the right ID. Linkedin native field : Job function.
    - `industries` string[], required — The ID of the parameter. Use type INDUSTRY on the List search parameters route to find out the right ID. Linkedin native field : Company industry.
    - `skills` string[] — The ID of the parameter. Use type SKILL on the List search parameters route to find out the right ID. Linkedin native field : Skills.
    - `seniority` 'INTERNSHIP' | 'ENTRY_LEVEL' | 'ASSOCIATE' | 'MID_SENIOR_LEVEL' | 'DIRECTOR' | 'EXECUTIVE' | 'NOT_APPLICABLE', required
    - `include_poster_info` boolean — Show profile on the job post.
    - `tracking_pixel_url` string — Enter a URL for impression tracking
    - `company_job_id` string — Employer job ID for impression tracking
    - `apply_method` union, required
      - object
        - `type` 'linkedin', required
        - `notification_email` string, required
        - `resume_required` boolean, required
      - object
        - `type` 'external', required
        - `url` string, required
    - `salary` object
      - `currency` string, required
      - `min` number, required
      - `max` number, required
      - `pay_frequency` 'YEARLY' | 'MONTHLY' | 'HOURLY', required
    - `additional_compensation` object
      - `currency` string, required
      - `min` number, required
      - `max` number, required
      - `pay_frequency` 'YEARLY' | 'MONTHLY' | 'HOURLY', required
    - `auto_archive_applicants` object — Linkedin native field : Qualification setting.
      - `screening_questions` boolean — Auto archive applicants who don’t meet any must-have screening questions.
      - `outside_of_country` boolean — Auto archive applicants who are outside of the country for which you are hiring.
    - `send_rejection_notification` boolean — Linkedin native field : Send rejection notification.

## Response `200`

OK. Request succeeded.

- object
  - `object` 'LinkedinJobPostingDraftCreated', required
  - `job_id` string, required
  - `project_id` string — The ID of the Project for Recruiter job postings.
  - `publish_options` object, required
    - `free` object, required
      - `eligible` boolean, required — Whether the user is authorized to publish this job offer for free.
      - `ineligible_reason` union, required
        - string
        - unknown
      - `estimated_monthly_applicants` number, required
    - `promoted` object, required
      - `estimated_monthly_applicants` number, required
      - `currency` string, required
      - `daily_budget` object, required
        - `min` number, required
        - `max` number, required
        - `recommended` number, required
      - `monthly_budget` object, required
        - `min` number, required
        - `max` number, required
        - `recommended` number, required

## Other responses

- `401` — ## Unauthorized ### Disconnected account The account appears to be disconnected from the provider service. undefined
- `403` — ## Forbidden ### Insufficient permissions - Type: "errors/insufficient_permissions" Valid authentication but insufficient permissions to perform the request. ### Account restricted - Type: "errors/account_restricted" Access to this account has been restricted by the provider. ### Account mismatch - Type: "errors/account_mismatch" This action cannot be done with your account. ### Unknown authentication context - Type: "errors/unknown_authentication_context" An additional step seems necessary to complete login. Please connect to provider with your browser to find out more, then retry authentication. ### Session mismatch - Type: "errors/session_mismatch" Token User id does not match client session id. ### Feature not subscribed - Type: "errors/feature_not_subscribed" The requested feature has either not been subscribed or not been authenticated properly. ### Subscription required - Type: "errors/subscription_required" The action you're trying to achieve requires a subscription to provider's services. ### Resource access restricted - Type: "errors/resource_access_restricted" You don't have access to this resource. ### Action required - Type: "errors/action_required" An additional step seems necessary. Complete authentication on the provider's native application and try again.
- `404` — ## Not Found ### Resource not found. The requested resource were not found. Account not found
- `422` — ## Unprocessable Entity ### Invalid account Provided account is not designed for this feature. undefined
- `500` — ## Internal Server Error ### Unexpected error - Type: "errors/unexpected_error" Something went wrong. {{moreDetails}} ### Provider error - Type: "errors/provider_error" The provider is experiencing operational problems. Please try again later. ### Authentication intent error - Type: "errors/authentication_intent_error" The current authentication intent was killed after failure. Please start the process again from the beginning.
- `503` — ## Service Unavailable ### No client session - Type: "errors/no_client_session" No client session is currently running. ### No channel - Type: "errors/no_channel" No channel to client session. ### Handler missing - Type: "errors/no_handler" Handler missing for that request. ### Network down - Type: "errors/network_down" Network is down on server side. Please wait a moment and retry. ### Service unavailable - Type: "errors/service_unavailable" Please try again later.
- `504` — ## Gateway Timeout ### Request timed out - Type: "errors/request_timeout" Request Timeout. Please try again, and if the issue persists, contact support.

---

[API](https://skmtc.net/unipile/apis/unipile-api-reference.md) · [All operations](https://skmtc.net/unipile/apis/unipile-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unipile/unipile-api-reference/revisions/3483a34061f6/schema)
