{
  "openapi": "3.0.1",
  "info": {
    "title": "LinkedIn Jobs Scraper | $3/1K | No Login (Real-Time)",
    "description": "Scrape LinkedIn Jobs in real-time — title, company, location, job type, description. No login, no API key required.",
    "version": "1.3",
    "x-build-id": "cVKAYi5Q4zNbKk2eq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/apivault_labs~linkedin-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-apivault_labs-linkedin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/apivault_labs~linkedin-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-apivault_labs-linkedin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/apivault_labs~linkedin-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-apivault_labs-linkedin-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Job Keywords",
            "type": "string",
            "description": "Job title or keywords. Examples: 'software engineer', 'marketing manager'."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, country, or 'Remote'. Examples: 'New York', 'United States', 'Remote'."
          },
          "maxPages": {
            "title": "Pages to scrape",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Number of result pages to scrape (each ~25 jobs).",
            "default": 3
          },
          "remote": {
            "title": "Remote-only (LinkedIn filter)",
            "type": "boolean",
            "description": "Filter to remote jobs only via LinkedIn's own f_WT=2 query parameter",
            "default": false
          },
          "experienceLevel": {
            "title": "Experience Level",
            "enum": [
              "any",
              "internship",
              "entry",
              "associate",
              "mid_senior",
              "director",
              "executive"
            ],
            "type": "string",
            "description": "Filter by required experience",
            "default": "any"
          },
          "jobType": {
            "title": "Job Type",
            "enum": [
              "any",
              "full_time",
              "part_time",
              "contract",
              "temporary",
              "volunteer",
              "internship"
            ],
            "type": "string",
            "description": "Filter by employment type",
            "default": "any"
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "day",
              "week",
              "month"
            ],
            "type": "string",
            "description": "Filter by when the job was posted",
            "default": "any"
          },
          "extractTitle": {
            "title": "Job Title",
            "type": "boolean",
            "description": "Extract job position title",
            "default": true
          },
          "extractCompany": {
            "title": "Company Name",
            "type": "boolean",
            "description": "Extract hiring company name",
            "default": true
          },
          "extractLocation": {
            "title": "Job Location",
            "type": "boolean",
            "description": "Extract job location",
            "default": true
          },
          "extractJobType": {
            "title": "Job Type",
            "type": "boolean",
            "description": "Full-time / Contract / etc.",
            "default": true
          },
          "extractDescription": {
            "title": "Description Snippet",
            "type": "boolean",
            "description": "Extract job description preview",
            "default": true
          },
          "extractDate": {
            "title": "Posted Date",
            "type": "boolean",
            "description": "When the job was posted",
            "default": true
          },
          "extractCompanyLogo": {
            "title": "Company Logo",
            "type": "boolean",
            "description": "Include company logo URL",
            "default": true
          },
          "extractSalary": {
            "title": "Salary (raw)",
            "type": "boolean",
            "description": "Extract salary as shown on LinkedIn (free text). The parser turns this into salaryMinUsd / salaryMaxUsd / salaryMedianUsd.",
            "default": true
          },
          "extractSalaryParse": {
            "title": "Salary parser → USD",
            "type": "boolean",
            "description": "Parse salary text into salaryMinUsd, salaryMaxUsd, salaryMedianUsd, salaryPeriod, salaryCurrency. Annualizes hourly/daily/weekly/monthly to year. Supports USD/EUR/GBP/CAD/AUD/INR/JPY.",
            "default": true
          },
          "extractFreshness": {
            "title": "Job freshness",
            "type": "boolean",
            "description": "Convert 'Posted X days ago' into daysSincePosted + freshness_tier (today / this_week / this_month / older).",
            "default": true
          },
          "extractWorkMode": {
            "title": "Work mode classifier",
            "type": "boolean",
            "description": "Classify as remote / hybrid / onsite based on title + location + description signals.",
            "default": true
          },
          "extractSkills": {
            "title": "Skills extraction",
            "type": "boolean",
            "description": "Extract skillsRequired[] (200+ tech terms), softSkills[], certifications[] from job title + description.",
            "default": true
          },
          "extractBenefits": {
            "title": "Benefits parser",
            "type": "boolean",
            "description": "14 benefit boolean flags: mentions_401k, mentions_health_insurance, mentions_equity, mentions_remote_work, mentions_visa_sponsorship, mentions_relocation, mentions_unlimited_pto, mentions_parental_leave, mentions_signing_bonus, mentions_4_day_week, mentions_stipend, mentions_meals, mentions_gym, mentions_commuter_benefits.",
            "default": true
          },
          "extractSeniority": {
            "title": "Seniority normalizer",
            "type": "boolean",
            "description": "Normalize the title into one of: intern / junior / mid / senior / lead / staff / principal / director / vp / c-level / unspecified.",
            "default": true
          },
          "extractCategory": {
            "title": "Job category auto-detect",
            "type": "boolean",
            "description": "Auto-classify as engineering, data_science, product, design, sales, marketing, finance, hr, operations, legal, customer_support, healthcare, education, construction_trades, or other.",
            "default": true
          },
          "extractRecruiterScore": {
            "title": "recruiterScore (B2B prospecting)",
            "type": "boolean",
            "description": "0-100 composite score for recruitment-tech / ATS / sourcing-tool sales. Combines hiring activity (jobs in run for that company), job freshness, salary disclosure, modern skills, benefits depth, decision-maker seniority. Returned with leadTier (cold/warm/hot/scorching) + reasons.",
            "default": true
          },
          "extractOutreachAssets": {
            "title": "Outreach assets",
            "type": "boolean",
            "description": "Build per-job outreachLinks: LinkedIn company page, LinkedIn hiring-manager people search, LinkedIn role-owner search (engineering manager / cmo / cfo / etc.), Google careers search, careers-page guess, mailto template. Plus per-company industry-specific outreach pitch with 3 variants (consultative / aggressive / referral) for A/B testing.",
            "default": true
          },
          "extractDeiSignals": {
            "title": "Diversity / DEI signals",
            "type": "boolean",
            "description": "7 boolean flags: mentions_diversity, mentions_lgbtq, mentions_women, mentions_veteran_friendly, mentions_disability_friendly, mentions_eeo, mentions_pay_transparency. Useful for inclusive job boards, diversity recruiters, ESG audits.",
            "default": true
          },
          "extractPayTransparencyLaw": {
            "title": "Pay transparency law detection",
            "type": "boolean",
            "description": "Detects if a US listing falls under a state/city pay-transparency law (CA, CO, CT, MD, NV, NY, RI, WA, DC, IL, MN, MA). Flags `pay_transparency_state` + `pay_transparency_compliant` (whether salary is disclosed as required by law). Compliance audit data for HR-tech.",
            "default": true
          },
          "extractLocationParts": {
            "title": "Parse location into city/state/country",
            "type": "boolean",
            "description": "Parse `San Francisco, CA` → `city`, `state`, `country: US`, `isUsListing`, `isRemoteListing`. Used by pay-transparency detection and CRM filtering.",
            "default": true
          },
          "deepFetchTopN": {
            "title": "Deep-fetch top N companies (slow, premium)",
            "minimum": 0,
            "maximum": 25,
            "type": "integer",
            "description": "For the top N companies (sorted by job count) open the highest-recruiter-score job's detail page and recover full description, salary, applicant count, and apply method. Adds ~30s per company and uses one extra fetch per company. Set to 0 to disable. Worth it when you're prospecting <50 companies with high lead-quality requirements.",
            "default": 0
          },
          "deduplicateCompanies": {
            "title": "Keep only one job per company",
            "type": "boolean",
            "description": "If enabled, only the first job from each unique company is kept.",
            "default": false
          },
          "minRecruiterScore": {
            "title": "Min recruiterScore filter",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Drop jobs whose recruiterScore is below this value (0-100). Useful for high-intent prospect lists. 0 = no filter.",
            "default": 0
          },
          "onlyWithSalary": {
            "title": "Only jobs with disclosed salary",
            "type": "boolean",
            "description": "Drop jobs where salary couldn't be parsed (no comp transparency).",
            "default": false
          },
          "onlyRemote": {
            "title": "Only fully-remote jobs",
            "type": "boolean",
            "description": "Drop hybrid / onsite / unknown work-mode jobs.",
            "default": false
          },
          "exportFormat": {
            "title": "Export format",
            "enum": [
              "default",
              "csv"
            ],
            "type": "string",
            "description": "default = full JSON (all 30+ fields). csv = flattened sales-ready 25-column shape for HubSpot / Pipedrive / Salesforce import.",
            "default": "default"
          },
          "writeSummary": {
            "title": "Write SUMMARY + TOP_HIRING_COMPANIES + TOP_JOBS to KV store",
            "type": "boolean",
            "description": "On runs with multiple jobs, write three free aggregate records to the run's KV store: SUMMARY (avg salary, top skills, recruiter-tier distribution), TOP_HIRING_COMPANIES (top 20 companies sorted by job count with 3 outreach pitch variants), TOP_JOBS (top 20 jobs sorted by recruiterScore — sales-ops job-level digest).",
            "default": true
          },
          "topCompaniesN": {
            "title": "TOP_HIRING_COMPANIES size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "How many top companies to include in the TOP_HIRING_COMPANIES KV record.",
            "default": 20
          },
          "topJobsN": {
            "title": "TOP_JOBS size",
            "minimum": 5,
            "maximum": 100,
            "type": "integer",
            "description": "How many top jobs (sorted by recruiterScore) to include in the TOP_JOBS KV record.",
            "default": 20
          },
          "maxRetries": {
            "title": "Retries on transient failure",
            "minimum": 0,
            "maximum": 3,
            "type": "integer",
            "description": "If a page returns 0 rows or fails, retry this many times with linear backoff.",
            "default": 1
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Parallel page scrapes (2-3 recommended)",
            "default": 2
          },
          "timeout": {
            "title": "Timeout per page (seconds)",
            "minimum": 30,
            "maximum": 300,
            "type": "integer",
            "description": "Max wait per LinkedIn page",
            "default": 120
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}