LinkedIn Jobs Scraper + Direct Apply Links & API avatar

LinkedIn Jobs Scraper + Direct Apply Links & API

Pricing

from $1.00 / 1,000 job returneds

Go to Apify Store
LinkedIn Jobs Scraper + Direct Apply Links & API

LinkedIn Jobs Scraper + Direct Apply Links & API

LinkedIn jobs for recruiting and hiring research, plus the original posting from the company job board: direct apply link, salary and full description.

Pricing

from $1.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

Diseño Web de Colombia

Diseño Web de Colombia

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

LinkedIn Jobs API + Direct Apply Links

Every LinkedIn jobs scraper gives you the LinkedIn listing. This one also gives you the original.

Call it as an API

One search in, LinkedIn jobs out with the original apply link attached — in a single HTTP call, no polling.

curl -X POST "https://api.apify.com/v2/acts/dev_web_col~company-jobs/run-sync-get-dataset-items?token=YOUR_TOKEN" \\
-H "Content-Type: application/json" \\
-d '{"searchKeyword": "python developer", "location": "Berlin"}'
import requests
r = requests.post(
"https://api.apify.com/v2/acts/dev_web_col~company-jobs/run-sync-get-dataset-items",
params={"token": "YOUR_TOKEN"},
json={"searchKeyword": "python developer", "location": "Berlin"},
)
job = r.json()[0]
print(job["title"], job["applyUrl"], job["source"])

Single-entity lookup, for calling once per company from your own code:

curl -X POST "https://api.apify.com/v2/acts/dev_web_col~company-jobs/run-sync-get-dataset-items?token=YOUR_TOKEN" \\
-H "Content-Type: application/json" -d '{"company": "Stripe"}'

run-sync-get-dataset-items waits for the run and returns the rows in the same response. Your token is on the Integrations page.

What is this LinkedIn Jobs Scraper?

Search LinkedIn jobs by keyword, location and date, without a login or a cookie. Then, wherever the company runs a public job board, this Actor also fetches the original posting: the direct apply link, the salary, and the full description that LinkedIn's copy leaves out.

It works in two modes. Search mode is the normal one — a keyword, a place, a time window. Company mode takes a list of company names and returns every open role at each.

The cross-reference is the product

LinkedIn shows you a copy. The company's own applicant tracking system has the source. This Actor matches them up against a bundled index of 1,014 validated company job boards.

What that gets you, measured on real runs:

  • The direct apply URL, so candidates skip LinkedIn's redirect entirely
  • Salary ranges that LinkedIn's copy usually drops
  • Jobs that are not on LinkedIn at all. One real run on Stripe, Ramp and Vanta returned 791 jobs, 731 of which had not been posted to LinkedIn

Every row is tagged with its source, so you always know whether it came from LinkedIn, from the ATS, or from both.

What you can use it for

What you wantHow to ask for it
Recruiting research — who is hiring for this rolesearchKeyword + location
Sourcing a specific companycompany: "Stripe" — every open role, one call
Job board feed — listings with working apply linksRead applyUrl from the ATS side, not LinkedIn's redirect
Salary benchmarkingRead compensationText where the company publishes it
Hiring data for sales — accounts staffing upGroup results by company, count roles
Market mapping — which companies hire in a citylocation + postedWithin: "week"
Remote job aggregationremoteOnly: true
Finding roles not yet on LinkedInCompany mode surfaces ATS-only postings

Typical jobs: recruiting research, building a job board, hiring data for sales prospecting, and salary benchmarking.

What data you get

Job title, company, location, remote flag, posting date, LinkedIn URL, and — where the company was matched to its job board — the direct apply link, salary text, department, employment type and full description. Each row carries a source tag and a flag for whether the ATS match succeeded.

Input

Every field is optional unless marked required.

FieldTypeDescription
searchKeywordstringWhat to search for on LinkedIn, e.g. "python developer", "marketing manager", "nurse". This is the normal way to use the actor. Leave it empty only if you want to target specific companies below instead.
locationstringCity, region or country: Berlin, London, United States, Remote. Leave empty to search worldwide.
postedWithinstringOnly jobs published recently. The tightest window is the most useful one: it is how you catch a role before the applications pile up.
remoteOnlybooleanKeeps only roles LinkedIn flags as remote.
companiesarrayCompany names as they appear on LinkedIn: Stripe, Ramp, Vanta. Overrides the search above and returns every open role at those companies. The actor resolves each name to its LinkedIn page and to its own job board automatically — you paste no URLs or IDs.
titleKeywordstringExtra filter applied to the job title after fetching, e.g. "senior". Leave empty to keep everything.
sourcesarrayLeave empty to use both. LinkedIn alone is faster; the company job board alone avoids LinkedIn entirely and never gets blocked.
maxPagesPerCompanyintegerEach page is 10 jobs. In search mode this is the total; in company mode it is per company.
maxResultsintegerSafety cap. You are charged per job returned.
proxyConfigurationobjectRequired for LinkedIn. It blocks datacenter IPs, including Apify's, so runs without a residential proxy return nothing from LinkedIn.

Input sample

{
"searchKeyword": "python developer",
"location": "Berlin",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Output sample

One real row from an actual run:

{
"id": "mercor:4431457554",
"company": "Mercor",
"title": "Python Developer - Fully Remote | Upto $50/hr",
"location": "Berlin, Berlin, Germany",
"source": "linkedin",
"atsMatch": true,
"linkedInUrl": "https://de.linkedin.com/jobs/view/python-developer-fully-remote-upto-%2450-hr-at-mercor-4431457554",
"linkedInPostedAt": "2026-06-24",
"applyUrl": null,
"ats": null,
"department": null,
"employmentType": null,
"compensationText": null,
"postedAt": "2026-06-24",
"isRemote": null,
"descriptionText": "",
"logoUrl": "https://media.licdn.com/dms/image/v2/D560BAQGcXYycU1ExMQ/company-logo_100_100/B56Zs5S_mvJoAU-/0/1766192839354/mercor_ai_logo?e=2147483647&v=beta&t=kdzYrfdTDCtqk7IVgNC_2hgj8o1vFeu3AEFeXdhDaHI"
}

Who uses this

  • Recruiters and sourcers — see the whole market, then go to the source
  • Job boards and aggregators — a feed with apply links that actually work
  • Candidates building tools — skip the LinkedIn redirect, apply direct
  • Sales teams — hiring signals with the department attached
  • Analysts — compare what a company posts publicly against what it posts on LinkedIn

Honest limits

These are real and none of them is fixable by any tool. They are here so you know what you are buying before you run it.

  • A residential proxy is required. LinkedIn blocks datacenter IPs. The default input already asks for one.
  • The cross-reference only fires for companies in the index, currently 1,014 of them and weighted toward tech. Rows that do not match still come back, just without the ATS extras.
  • LinkedIn's public search returns roughly 10 jobs per page and repeats results once it runs out, so very deep paging hits diminishing returns.
  • No recruiter contact details. This Actor returns job data only, never personal data about the people posting.
  • Salary depends on the company publishing it. Most do not.

FAQ

Do I need a LinkedIn account or cookies?

No. This Actor uses LinkedIn's public guest job listings, the same ones you see when logged out. You never provide credentials and your account is never involved, so there is nothing to get banned.

What does the ATS cross-reference actually add?

The direct apply link, the salary and the full description from the company's own system — plus jobs that are open at the company but were never posted to LinkedIn. On a real three-company run that was 731 extra roles out of 791.

Because the cross-reference needs the company to be in the bundled index of public job boards. Companies outside it still return their LinkedIn data, just without the extras.

Can I search by company instead of by keyword?

Yes. Put names in companies and you get every open role at each, which is where the enrichment pays off most.

How recent can I filter?

Down to the last 24 hours, via postedWithin. There are also options for the last week and the last month.

Do I need an account or an API key for the source?

No. This Actor only reads public pages and public endpoints, the same ones any logged-out visitor sees. You never give it credentials, and nothing is done on your behalf.

Scraping publicly available information is broadly accepted as legal, and this Actor only ever touches pages that require no login. That said, what you may do with the data afterwards is a separate question — personal data in particular is regulated by GDPR and CCPA. If you plan to process personal data, take advice first. Apify has a good primer: Is web scraping legal?

How much will a run cost me?

You are charged per result, so the cost scales with what you actually get back. The pricing is shown on this page above the input form. Start with a small run to see real numbers before you scale up.

Can I export to Excel, CSV or Google Sheets?

Yes. Every run's dataset can be downloaded as CSV, Excel, JSON, XML or HTML from the Storage tab, and Apify integrates directly with Google Sheets, Airtable, Zapier, Make and Slack.

Can I run this on a schedule?

Yes. Open the Schedules tab and pick an interval — hourly, daily, weekly. Each run only costs you what it returns.

Can I call it from my own code instead of the console?

Yes. Every Actor on Apify is also an API endpoint. There are official clients for Python and JavaScript, plus a plain REST API. The API tab on this page shows ready-made snippets with your input already filled in.

Something came back empty. Is it broken?

Usually not. An empty result normally means the filters were too narrow, or the source genuinely has nothing to return for that query. This Actor is written to finish successfully and tell you what happened rather than fail — check the run log, it says which step returned nothing.

  • ATS Job Scraper — search the company job boards directly, without LinkedIn
  • ATS Job Monitor — get only what changed since your last run
  • Company Enrichment — domains to firmographics, emails and hiring signal

Where the data comes from

LinkedIn's public guest job listings, plus the public JSON endpoints of Greenhouse, Lever, Ashby and Workable. No login, no cookies, no personal data about recruiters.