LinkedIn's public jobs search has a guest endpoint that returns job cards without a login. I built an Apify actor on it, measured it, and added one feature for a problem I saw in my own results: search ranking drifts, so later pages stop matching the keyword.
Disclosure: I built this actor. It is called LinkedIn Jobs Scraper, from the account leadharbor on Apify: https://apify.com/leadharbor/linkedin-jobs-scraper
What I measured (31 October 2026)
- 300 requests, one run, no proxy, no login: 297 returned a normal results page and 3 were rate-limited (HTTP 429). Requests were 1.2 seconds apart, across 6 keywords and 5 locations.
- A faster burst fails sooner: about 25 requests in 11 seconds with no pause produced two 429s near the end.
- What I did not test: more than 300 requests in a row, many runs at once, or how long any of this keeps working. LinkedIn can change or block this endpoint at any time, so treat it as best effort.
The drift problem
I searched "cto" in Germany and collected 40 jobs. The first ones were Chief Technology Officer roles. Further down, the list contained Head of Engineering, CIO, Head of R&D and Head of Applied AI.
The optional relevance filter
Switch on scoreRelevance and each job gets a relevance number from 0 to 1. Switch on onlyRelevant as well and jobs under the threshold (0.6 by default) are dropped, and not charged.
{
"keywords": ["cto"],
"location": "Germany",
"maxJobsPerKeyword": 40,
"scoreRelevance": true,
"onlyRelevant": true
}
On that search: 40 found, 24 dropped, 16 returned. The kept titles were Chief Technology Officer, CTO and co-founder CTO roles, including two co-founder CTO roles that sat deep in the list. The dropped ones were the Head of Engineering, CIO and R&D titles.
Limits, stated plainly:
- I checked the 0.6 threshold on a small set of 12 real titles. It separated them correctly, but that is a small test and I picked the threshold on it. Look at the scores on your own keywords before you rely on it.
- The filter is off by default. When it is on, the job title, the company name and your search keyword are sent to TypeSafe's API (their Jev model) to be scored. Nothing else is sent. With it off, nothing is sent.
- If the scoring service fails, jobs come back unscored and are kept, and the run log shows a warning.
Other inputs
You can paste a LinkedIn jobs search URL instead of typing keywords, keep or drop jobs by words in the title, and restrict by experience level. Removed jobs are not charged.
{
"searchUrls": ["https://www.linkedin.com/jobs/search/?keywords=data%20engineer&location=Berlin&f_TPR=r604800&f_E=4"],
"titleExclude": ["intern", "junior"],
"maxJobsPerKeyword": 25
}
A test run of that URL returned 25 jobs for data engineers in Berlin, posted within the week.
Price
$0.001 per job at the free tier plus a very small start fee, and another $0.001 per job only if you ask for full descriptions. Check the pricing on the actor page; it is the source of truth.
If you try it and it misses something, tell me what you searched. I read the reviews and the issues.
Top comments (0)