# LinkedIn Hiring Tracker & Salary Intelligence (`scrapemint/linkedin-jobs-scraper`) Actor

Track LinkedIn hiring in real time. Every job row ships parsed salary range, tech stack, seniority tier, and remote type. Filter by keyword, location, experience, and post date. For comp researchers, recruiters, and M\&A scouts. JSON. Pay per job.

- **URL**: https://apify.com/scrapemint/linkedin-jobs-scraper.md
- **Developed by:** [Kennedy Mutisya](https://apify.com/scrapemint) (community)
- **Categories:** Automation, Lead generation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## LinkedIn Hiring Tracker & Salary Intelligence

Track LinkedIn hiring in real time. Every job row ships with a parsed salary range, a tech stack array, a seniority tier, a remote type, and minimum years of experience. No LinkedIn account or cookie needed. Clean JSON. Pay only for what you keep.

Built for compensation researchers, recruiters, M&A scouts, business intelligence teams, and job aggregators who need structured LinkedIn hiring data without the Talent API or Sales Navigator seat cost.

**Ranks for:** LinkedIn hiring tracker, LinkedIn salary scraper, LinkedIn salary intelligence, LinkedIn comp research, LinkedIn jobs scraper, LinkedIn jobs API alternative, LinkedIn jobs API free, scrape LinkedIn jobs, LinkedIn jobs to CSV, LinkedIn jobs to JSON, tech stack extractor, LinkedIn recruiter intelligence, hiring velocity tracker, remote jobs scraper, LinkedIn guest jobs API.

---

### What makes this different

Most LinkedIn job scrapers dump raw title and description. This one computes the fields buyers actually want:

1. **Parsed salary range** on every job row. Currency, period (annual, monthly, weekly, daily, hourly), min, and max. Extracted from description text with sanity checks so "$50 gift card" does not pollute your dataset. Zero post processing.
2. **Tech stack extraction** on every engineering job. 120+ terms across languages, frameworks, cloud services, data stores, ML libraries, and dev tools. Returns a sorted deduped lowercase array. Built in. No extra cost.
3. **Seniority tier from title.** Maps messy LinkedIn titles to one of ten buckets (intern, entry, mid, senior, staff, lead, manager, director, vp, c-suite) so you can rank roles across companies without cleaning strings yourself.

---

### How it works

```mermaid
flowchart LR
    A[Keywords + locations] --> B[LinkedIn guest search<br/>/jobs-guest/api/seeMoreJobPostings]
    B --> C[Collect job IDs<br/>paginate]
    C --> D[Open each job detail<br/>/jobs-guest/api/jobPosting]
    D --> E[Parse title, company,<br/>description, criteria]
    E --> F[Compute salary, tech stack,<br/>seniority, remote type]
    F --> G[Push one row per job]
    G --> H[(JSON, CSV, Excel, API)]
````

No cookies, no login, no Sales Navigator seat. The actor hits LinkedIn's public guest endpoints the same way Google does when indexing jobs.

***

### Quick start

**Track new hiring at FAANG for the last week:**

```json
{
  "keywords": ["software engineer", "product manager", "data scientist"],
  "locations": ["San Francisco Bay Area", "New York", "Seattle"],
  "postedSince": "1w",
  "maxResults": 500
}
```

**Compensation benchmark for staff roles in California:**

```json
{
  "keywords": ["staff software engineer"],
  "locations": ["California, United States"],
  "experienceLevel": "mid-senior",
  "parseSalary": true,
  "maxResults": 200
}
```

**Remote only filter for agency sourcing:**

```json
{
  "keywords": ["backend engineer"],
  "locations": ["United States"],
  "remoteFilter": "remote",
  "postedSince": "1w",
  "maxResults": 100
}
```

**Competitor hiring watch (run daily on a schedule):**

```json
{
  "keywords": ["engineer at openai", "engineer at anthropic", "engineer at databricks"],
  "postedSince": "1d",
  "dedupe": true,
  "maxResults": 50
}
```

***

### Sample output

```json
{
  "id": "4406118990",
  "url": "https://www.linkedin.com/jobs/view/4406118990/",
  "title": "Staff Software Engineer, Platform",
  "company": "Stripe",
  "companyUrl": "https://www.linkedin.com/company/stripe",
  "location": "San Francisco, CA",
  "remote": "hybrid",
  "postedAgo": "2 days ago",
  "postedAt": "2026-04-22T14:00:00.000Z",
  "applicants": 42,
  "seniorityLevel": "Mid-Senior level",
  "employmentType": "Full-time",
  "jobFunction": "Engineering and Information Technology",
  "industries": "Financial Services",
  "seniorityTier": "staff",
  "salaryMin": 224000,
  "salaryMax": 330000,
  "salaryCurrency": "USD",
  "salaryPeriod": "annual",
  "techStack": ["aws", "go", "grpc", "kafka", "kubernetes", "postgresql", "python", "terraform"],
  "experienceYearsMin": 8,
  "applyUrl": "https://stripe.com/jobs/listing/...",
  "description": "About the role: Stripe's Platform team builds...",
  "descriptionLength": 4820,
  "scrapedAt": "2026-04-25T10:00:00.000Z"
}
```

***

### What you get per row

```mermaid
flowchart LR
    V[Job row] --> V1[Identity<br/>id, url, applyUrl]
    V --> V2[Posting<br/>title, company,<br/>location, postedAt]
    V --> V3[LinkedIn criteria<br/>seniorityLevel, type,<br/>function, industries]
    V --> V4[Computed signals<br/>salary, techStack,<br/>seniorityTier, remote,<br/>experienceYearsMin]
    V --> V5[Description<br/>cleaned text +<br/>length]
```

***

### Who uses this

| Role | Use case |
|---|---|
| Recruiter | Find open reqs at target companies with inferred tech stack for better candidate pitches. |
| Compensation research | Benchmark pay bands by title, seniority tier, geography, and tech stack across thousands of jobs. |
| M\&A scout | Track hiring velocity at private companies as a growth signal before the round hits the news. |
| Sales prospecting | Spot companies hiring roles that imply need for your product (e.g. Snowflake hiring = DW migration in progress). |
| Job aggregator | Build your own board with clean structured data and computed signals most scrapers do not ship. |
| Market researcher | Measure demand shifts for specific tech stacks and seniority tiers over time. |
| Founder | Watch your competitor's hiring page turn into a data feed. |

***

### Input reference

| Field | Type | Purpose |
|---|---|---|
| `keywords` | string\[] | Job search terms. One query per item. Required. |
| `locations` | string\[] | Locations to filter. Each location combines with each keyword. |
| `experienceLevel` | enum | internship, entry, associate, mid-senior, director, executive. |
| `jobType` | enum | full-time, part-time, contract, temporary, volunteer, internship, other. |
| `remoteFilter` | enum | onsite, remote, hybrid. |
| `postedSince` | enum | 1d, 1w, 1m. |
| `maxResults` | integer | Hard cap across all queries. LinkedIn exposes roughly 1000 per search. |
| `parseSalary` | boolean | Extract min, max, currency, period from the description text. |
| `extractTechStack` | boolean | Scan description for 120+ tech terms. |
| `classifySeniority` | boolean | Map title to an intern, entry, mid, senior, staff, lead, manager, director, vp, c-suite bucket. |
| `dedupe` | boolean | Skip job IDs from previous runs. |
| `proxyConfiguration` | object | Apify proxy. Residential recommended for runs above a few hundred jobs. |

***

### API example

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_USER~linkedin-jobs-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "keywords": ["staff software engineer"],
    "locations": ["California, United States"],
    "postedSince": "1w",
    "maxResults": 200
  }'
```

***

### How this compares

|  | Official LinkedIn Talent API | Generic LinkedIn scrapers | Compensation data vendors | **This actor** |
|---|---|---|---|---|
| Access | Partner approval + $$$ | Often needs your LinkedIn cookie | Per seat license | Anyone, no cookie |
| Salary parsed | N/A | No | Yes | Yes, built in |
| Tech stack extraction | No | No | No | Yes, built in |
| Seniority classification | Raw LinkedIn label | Raw LinkedIn label | Proprietary taxonomy | Title based, 10 tiers |
| Remote type | No | Raw filter | Sometimes | Inferred from text |
| Cost model | Enterprise contract | Per run | Seat license | Pay per job row |
| Setup time | Months | Hours | Days | 60 seconds |

***

### Pricing

First 10 jobs per run are free so you can try before paying. After that you pay per result row. Salary parsing, tech stack extraction, seniority classification, remote inference, and experience year parsing are included at no extra cost.

***

### FAQ

**Is there a free LinkedIn jobs API?**
LinkedIn's Talent API is gated behind a partner agreement and a per seat contract. This actor gives anyone public LinkedIn job data with pay per use and no approval needed.

**Do I need a LinkedIn account or cookie?**
No. The actor uses LinkedIn's public guest endpoints, the same ones Google uses when indexing jobs.

**How accurate is the salary parser?**
High precision on jobs that publish a range in the description (mandatory under California, New York, Washington, and Colorado pay transparency laws). Handles USD, EUR, GBP, CAD, AUD, INR, and CHF. Plausibility checks reject outliers so small dollar amounts in the description do not get mistaken for pay. Jobs without a published range return `salaryMin: null`.

**How does the tech stack extractor work?**
A curated list of 120+ languages, frameworks, cloud services, data stores, ML libraries, and dev tools is scanned against the description with strict word boundary matching. C++ and C## are handled correctly. False positives from English words (go, rest, r) are filtered out.

**How accurate is seniority classification?**
Title based. Senior, staff, principal, lead, manager, director, vp, chief, and intern patterns are recognized. Default bucket is mid. This is meant as a fast normalizer across noisy LinkedIn labels, not a legal determination.

**Why is `salaryMin` null on some rows?**
Either the description did not publish a range, the range fell outside plausibility checks, or the job is in a jurisdiction with no pay transparency law. Turn on `parseSalary` and inspect `descriptionLength` to confirm.

**Can I paginate past 1000 results?**
LinkedIn's guest search caps at about 1000 jobs per query. Split your search into narrower filters (per city instead of per country, per experience level) to reach more jobs.

**Does it work for LinkedIn jobs in any country?**
Yes. Pass the location as LinkedIn spells it in its location dropdown. The actor ships with residential proxy rotation so your results reflect what a signed out visitor sees.

**Is scraping LinkedIn allowed?**
This actor reads public HTML any web visitor can see. Respect LinkedIn's terms and rate limit sensibly. Do not redistribute descriptions or company data you do not have the right to republish.

**Can I run this on a schedule?**
Yes. Use the Apify scheduler for hourly, daily, or weekly runs. Turn `dedupe` on to only push new job IDs. Great for competitor hiring watch and alerting.

***

### Related actors

- **Instagram Influencer Analyzer & Sponsored Post Tracker** for creator engagement rate and paid partnership detection
- **TikTok Scraper** for TikTok creator stats, reels, and music data
- **Reddit Brand Monitor & Lead Finder** for subreddit mentions and high intent leads
- **Google Maps Scraper** for local business data and reviews
- **Upwork Opportunity Alert** for freelance project leads

# Actor input Schema

## `keywords` (type: `array`):

One or more job search queries. Each query runs as a separate search. Examples: 'software engineer', 'product manager', 'data scientist'.

## `locations` (type: `array`):

Locations to filter. Each location combines with each keyword. Use the spelling LinkedIn accepts, e.g. 'United States', 'London, United Kingdom', 'Remote'. Leave empty for worldwide.

## `experienceLevel` (type: `string`):

Filter by seniority as LinkedIn defines it. Leave blank for any.

## `jobType` (type: `string`):

Employment type. Leave blank for any.

## `remoteFilter` (type: `string`):

Restrict to on-site, remote, or hybrid roles.

## `postedSince` (type: `string`):

Only include jobs posted within this window.

## `maxResults` (type: `integer`):

Hard cap on jobs returned across all queries. LinkedIn exposes about 1000 results per search.

## `parseSalary` (type: `boolean`):

Extract salary range, currency, and period (annual, hourly, monthly) from the job description text. LinkedIn does not expose a structured salary field for most jobs. Built in. No extra cost.

## `extractTechStack` (type: `boolean`):

Scan the description for 120 common languages, frameworks, cloud services, and tools. Returns a deduped lowercase array. Built in. No extra cost.

## `classifySeniority` (type: `boolean`):

Map the job title to an intern, entry, mid, senior, staff, lead, manager, director, vp, or c-suite bucket. Useful for comp benchmarking across noisy LinkedIn labels. Built in. No extra cost.

## `dedupe` (type: `boolean`):

Skip job IDs already pushed in previous runs. Turn off to refresh stale rows.

## `proxyConfiguration` (type: `object`):

Apify proxy. Datacenter works for LinkedIn guest endpoints at low volume. Use residential for runs above a few hundred jobs.

## Actor input object example

```json
{
  "keywords": [
    "software engineer"
  ],
  "locations": [
    "United States"
  ],
  "experienceLevel": "",
  "jobType": "",
  "remoteFilter": "",
  "postedSince": "",
  "maxResults": 100,
  "parseSalary": true,
  "extractTechStack": true,
  "classifySeniority": true,
  "dedupe": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "software engineer"
    ],
    "locations": [
        "United States"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/linkedin-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["software engineer"],
    "locations": ["United States"],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/linkedin-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "software engineer"
  ],
  "locations": [
    "United States"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapemint/linkedin-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/linkedin-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "LinkedIn Hiring Tracker & Salary Intelligence",
        "description": "Track LinkedIn hiring in real time. Every job row ships parsed salary range, tech stack, seniority tier, and remote type. Filter by keyword, location, experience, and post date. For comp researchers, recruiters, and M&A scouts. JSON. Pay per job.",
        "version": "0.1",
        "x-build-id": "Zkch9s3eKfagwng3M"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~linkedin-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-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/scrapemint~linkedin-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-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/scrapemint~linkedin-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-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": "Keywords",
                        "type": "array",
                        "description": "One or more job search queries. Each query runs as a separate search. Examples: 'software engineer', 'product manager', 'data scientist'.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Locations to filter. Each location combines with each keyword. Use the spelling LinkedIn accepts, e.g. 'United States', 'London, United Kingdom', 'Remote'. Leave empty for worldwide.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "experienceLevel": {
                        "title": "Experience level",
                        "enum": [
                            "",
                            "internship",
                            "entry",
                            "associate",
                            "mid-senior",
                            "director",
                            "executive"
                        ],
                        "type": "string",
                        "description": "Filter by seniority as LinkedIn defines it. Leave blank for any.",
                        "default": ""
                    },
                    "jobType": {
                        "title": "Job type",
                        "enum": [
                            "",
                            "full-time",
                            "part-time",
                            "contract",
                            "temporary",
                            "volunteer",
                            "internship",
                            "other"
                        ],
                        "type": "string",
                        "description": "Employment type. Leave blank for any.",
                        "default": ""
                    },
                    "remoteFilter": {
                        "title": "Remote filter",
                        "enum": [
                            "",
                            "onsite",
                            "remote",
                            "hybrid"
                        ],
                        "type": "string",
                        "description": "Restrict to on-site, remote, or hybrid roles.",
                        "default": ""
                    },
                    "postedSince": {
                        "title": "Posted since",
                        "enum": [
                            "",
                            "1d",
                            "1w",
                            "1m"
                        ],
                        "type": "string",
                        "description": "Only include jobs posted within this window.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on jobs returned across all queries. LinkedIn exposes about 1000 results per search.",
                        "default": 100
                    },
                    "parseSalary": {
                        "title": "Parse salary from description",
                        "type": "boolean",
                        "description": "Extract salary range, currency, and period (annual, hourly, monthly) from the job description text. LinkedIn does not expose a structured salary field for most jobs. Built in. No extra cost.",
                        "default": true
                    },
                    "extractTechStack": {
                        "title": "Extract tech stack",
                        "type": "boolean",
                        "description": "Scan the description for 120 common languages, frameworks, cloud services, and tools. Returns a deduped lowercase array. Built in. No extra cost.",
                        "default": true
                    },
                    "classifySeniority": {
                        "title": "Classify seniority tier from title",
                        "type": "boolean",
                        "description": "Map the job title to an intern, entry, mid, senior, staff, lead, manager, director, vp, or c-suite bucket. Useful for comp benchmarking across noisy LinkedIn labels. Built in. No extra cost.",
                        "default": true
                    },
                    "dedupe": {
                        "title": "Deduplicate across runs",
                        "type": "boolean",
                        "description": "Skip job IDs already pushed in previous runs. Turn off to refresh stale rows.",
                        "default": true
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy. Datacenter works for LinkedIn guest endpoints at low volume. Use residential for runs above a few hundred jobs.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
