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

# Scrape LinkedIn jobs

> Search LinkedIn for jobs and extract structured listing + company data

Triggers a LinkedIn job search for one or more job titles and locations. The scraper builds the LinkedIn search, collects matching listings, optionally enriches each with full job and company detail, applies your exclusions, and returns structured job data.

Pass a `company_url` (e.g. `https://www.linkedin.com/company/google/`) to scope the search to a single company: with `titles_query` it returns that company's jobs matching your titles; on its own it returns the company's whole job list (per-job detail fetches default off for these larger runs).

**Required fields depend on `company_url`:**

* **With `company_url`** — both `titles_query` and `locations` are optional. Omit `locations` and the company is scraped worldwide.
* **Without `company_url`** — both `titles_query` and `locations` are required (a keyword search needs a where).

**How `rows` behaves:**

* **`rows` set** — capped at that number (1–100), for any search (company or title).
* **`rows` omitted, `company_url`-only** — the whole company list (up to \~1000).
* **`rows` omitted, title search** — defaults to 50.

The pipeline runs asynchronously. Use the returned `request_id` to [poll for results](/api-reference/endpoint/get-linkedin-jobs-status).

<Tip>
  **Timing guidance:** Most searches complete within 1–4 minutes. Higher `rows` with `include_job_details` / `include_company_details` enabled take longer (one detail fetch per job). Poll every 15–30 seconds.
</Tip>

## How it works

1. Builds LinkedIn guest search URLs from your `titles_query`, `locations`, `country`, and filters. When `company_url` is set, it is resolved to LinkedIn's numeric company id and applied as a company filter
2. Collects job cards across the result pages up to `rows` (a `company_url`-only scrape collects the whole company list instead)
3. Removes `excluded_companies` / `excluded_titles` / `excluded_industries` and de-duplicates
4. Optionally fetches each job's detail page (`include_job_details`) and company page (`include_company_details`)
5. Returns structured listings plus the search URLs used

## Response

The request is accepted immediately and returns a `request_id` — no jobs are returned here. Poll [Get LinkedIn job scrape status](/api-reference/endpoint/get-linkedin-jobs-status) with that id to retrieve the results.

```json theme={null}
{
  "request_id": "run_abc123xyz",
  "status": "QUEUED"
}
```


## OpenAPI

````yaml openapi.json POST /v1/scrape-linkedin-jobs/async
openapi: 3.1.0
info:
  title: Automindz API
  version: 0.1.0
servers:
  - url: https://api.automindz.co
    description: Production
security: []
paths:
  /v1/scrape-linkedin-jobs/async:
    post:
      tags:
        - scrape-linkedin-jobs
      summary: Scrape Linkedin Jobs
      operationId: scrape_linkedin_jobs_v1_scrape_linkedin_jobs_async_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkedInJobsRequest'
            example:
              titles_query:
                - Account Executive
                - Sales Manager
              company_url: https://www.linkedin.com/company/google/
              locations:
                - United States
              country: United States
              rows: 50
              hours: 24
              job_types:
                - full-time
              work_types:
                - remote
                - hybrid
              experience_levels:
                - associate
                - mid-senior level
              excluded_companies:
                - Acme Staffing
        required: true
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkedInJobsResponse'
              example:
                request_id: run_linkedin_abc123
                status: QUEUED
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    LinkedInJobsRequest:
      properties:
        titles_query:
          anyOf:
            - type: string
            - items:
                type: string
              type: array
            - type: 'null'
          title: Titles Query
          description: >-
            Job title(s) to search. A single string, or an array that is joined
            into one `A OR B` keyword search (single request, OR'd titles).
            Optional when `company_url` is given; at least one of the two is
            required.
        company_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Company Url
          description: >-
            LinkedIn company URL (e.g.
            https://www.linkedin.com/company/google/). Resolved to a numeric
            company id to return that company's jobs. With `titles_query` it
            narrows to matching titles; alone it returns the whole company list.
            At least one of `titles_query` or `company_url` is required.
        locations:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Locations
          description: >-
            Cities, regions, or countries to search; one search is run per
            location. Required unless `company_url` is given (a company scrape
            defaults to worldwide when omitted).
        country:
          type: string
          enum:
            - Afghanistan
            - Albania
            - Algeria
            - American Samoa
            - Andorra
            - Angola
            - Anguilla
            - Antarctica
            - Antigua and Barbuda
            - Argentina
            - Armenia
            - Aruba
            - Australia
            - Austria
            - Azerbaijan
            - Bahamas
            - Bahrain
            - Bangladesh
            - Barbados
            - Belarus
            - Belgium
            - Belize
            - Benin
            - Bermuda
            - Bhutan
            - Bolivia
            - Bonaire, Sint Eustatius and Saba
            - Bosnia and Herzegovina
            - Botswana
            - Bouvet Island
            - Brazil
            - British Indian Ocean Territory
            - Brunei Darussalam
            - Bulgaria
            - Burkina Faso
            - Burundi
            - Cabo Verde
            - Cambodia
            - Cameroon
            - Canada
            - Cayman Islands
            - Central African Republic
            - Chad
            - Chile
            - China
            - Christmas Island
            - Cocos (Keeling) Islands
            - Colombia
            - Comoros
            - Congo
            - Congo, The Democratic Republic of the
            - Cook Islands
            - Costa Rica
            - Croatia
            - Cuba
            - Curaçao
            - Cyprus
            - Czechia
            - Côte d'Ivoire
            - Denmark
            - Djibouti
            - Dominica
            - Dominican Republic
            - Ecuador
            - Egypt
            - El Salvador
            - Equatorial Guinea
            - Eritrea
            - Estonia
            - Eswatini
            - Ethiopia
            - Falkland Islands (Malvinas)
            - Faroe Islands
            - Fiji
            - Finland
            - France
            - French Guiana
            - French Polynesia
            - French Southern Territories
            - Gabon
            - Gambia
            - Georgia
            - Germany
            - Ghana
            - Gibraltar
            - Greece
            - Greenland
            - Grenada
            - Guadeloupe
            - Guam
            - Guatemala
            - Guernsey
            - Guinea
            - Guinea-Bissau
            - Guyana
            - Haiti
            - Heard Island and McDonald Islands
            - Holy See (Vatican City State)
            - Honduras
            - Hong Kong
            - Hungary
            - Iceland
            - India
            - Indonesia
            - Iran
            - Iraq
            - Ireland
            - Isle of Man
            - Israel
            - Italy
            - Jamaica
            - Japan
            - Jersey
            - Jordan
            - Kazakhstan
            - Kenya
            - Kiribati
            - Kuwait
            - Kyrgyzstan
            - Laos
            - Latvia
            - Lebanon
            - Lesotho
            - Liberia
            - Libya
            - Liechtenstein
            - Lithuania
            - Luxembourg
            - Macao
            - Madagascar
            - Malawi
            - Malaysia
            - Maldives
            - Mali
            - Malta
            - Marshall Islands
            - Martinique
            - Mauritania
            - Mauritius
            - Mayotte
            - Mexico
            - Micronesia, Federated States of
            - Moldova
            - Monaco
            - Mongolia
            - Montenegro
            - Montserrat
            - Morocco
            - Mozambique
            - Myanmar
            - Namibia
            - Nauru
            - Nepal
            - Netherlands
            - New Caledonia
            - New Zealand
            - Nicaragua
            - Niger
            - Nigeria
            - Niue
            - Norfolk Island
            - North Korea
            - North Macedonia
            - Northern Mariana Islands
            - Norway
            - Oman
            - Pakistan
            - Palau
            - Palestine, State of
            - Panama
            - Papua New Guinea
            - Paraguay
            - Peru
            - Philippines
            - Pitcairn
            - Poland
            - Portugal
            - Puerto Rico
            - Qatar
            - Romania
            - Russian Federation
            - Rwanda
            - Réunion
            - Saint Barthélemy
            - Saint Helena, Ascension and Tristan da Cunha
            - Saint Kitts and Nevis
            - Saint Lucia
            - Saint Martin (French part)
            - Saint Pierre and Miquelon
            - Saint Vincent and the Grenadines
            - Samoa
            - San Marino
            - Sao Tome and Principe
            - Saudi Arabia
            - Senegal
            - Serbia
            - Seychelles
            - Sierra Leone
            - Singapore
            - Sint Maarten (Dutch part)
            - Slovakia
            - Slovenia
            - Solomon Islands
            - Somalia
            - South Africa
            - South Georgia and the South Sandwich Islands
            - South Korea
            - South Sudan
            - Spain
            - Sri Lanka
            - Sudan
            - Suriname
            - Svalbard and Jan Mayen
            - Sweden
            - Switzerland
            - Syria
            - Taiwan
            - Tajikistan
            - Tanzania
            - Thailand
            - Timor-Leste
            - Togo
            - Tokelau
            - Tonga
            - Trinidad and Tobago
            - Tunisia
            - Turkmenistan
            - Turks and Caicos Islands
            - Tuvalu
            - Türkiye
            - Uganda
            - Ukraine
            - United Arab Emirates
            - United Kingdom
            - United States
            - United States Minor Outlying Islands
            - Uruguay
            - Uzbekistan
            - Vanuatu
            - Venezuela
            - Vietnam
            - Virgin Islands, British
            - Virgin Islands, U.S.
            - Wallis and Futuna
            - Western Sahara
            - Yemen
            - Zambia
            - Zimbabwe
            - Åland Islands
          title: Country
          description: >-
            Selects the LinkedIn regional domain to search (e.g. United Kingdom
            -> uk.linkedin.com). Countries without a dedicated subdomain use the
            global www.linkedin.com domain.
          default: United States
        rows:
          anyOf:
            - type: integer
              maximum: 100
              minimum: 1
            - type: 'null'
          title: Rows
          description: >-
            Max jobs to return (1-100). Omit on a company_url-only scrape to
            pull the whole company list; set it to cap the count. Title searches
            default to 50 when omitted. Page results via limit/offset on the
            status endpoint.
        distance:
          anyOf:
            - type: string
            - type: 'null'
          title: Distance
          description: Search radius in miles around each location, e.g. "25".
        hours:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Hours
          description: Only return jobs posted within the last N hours.
        job_types:
          anyOf:
            - items:
                type: string
                enum:
                  - full-time
                  - part-time
                  - contract
                  - temporary
                  - internship
                  - volunteer
                  - other
              type: array
            - type: 'null'
          title: Job Types
          description: Filter by employment type. Unknown values are ignored.
        work_types:
          anyOf:
            - items:
                type: string
                enum:
                  - on-site
                  - remote
                  - hybrid
              type: array
            - type: 'null'
          title: Work Types
          description: Filter by on-site / remote / hybrid. Unknown values are ignored.
        experience_levels:
          anyOf:
            - items:
                type: string
                enum:
                  - internship
                  - entry level
                  - associate
                  - mid-senior level
                  - director
              type: array
            - type: 'null'
          title: Experience Levels
          description: Filter by seniority. Unknown values are ignored.
        excluded_companies:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Excluded Companies
          description: Drop jobs whose company name matches any of these.
        excluded_titles:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Excluded Titles
          description: Drop jobs whose title matches any of these.
        excluded_industries:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Excluded Industries
          description: Drop jobs whose industry matches any of these.
        include_company_details:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Include Company Details
          description: >-
            Fetch each job's company page for extra fields (slower; one fetch
            per job). Default: on for a title search, off for a full company
            scrape.
        include_job_details:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Include Job Details
          description: >-
            Fetch each job's detail page for description, salary, apply URL,
            etc. (slower; one fetch per job). Default: on for a title search,
            off for a full company scrape.
      type: object
      title: LinkedInJobsRequest
    LinkedInJobsResponse:
      properties:
        request_id:
          type: string
          title: Request Id
        status:
          type: string
          title: Status
          default: QUEUED
      type: object
      required:
        - request_id
      title: LinkedInJobsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````