
Linkedin jobs scraper
Pricing
$22.00/month + usage

Linkedin jobs scraper
Linkedin job scraper. Extract linkedin job postings with company and recruiter details. Parser linkedin jobs at scale. Get data like hiring team, company infos (employees, industry, followers ...), job infos (description, salary, remote, views, applies ..) and more
5.0 (1)
Pricing
$22.00/month + usage
2
Total users
71
Monthly users
9
Runs succeeded
59%
Issues response
0.84 hours
Last modified
a day ago
KeyError: 'title' — Actor fails on LinkedIn results page
Open
When crawling the LinkedIn search URL with session cookie, the Actor crashes with a KeyError: 'title' at main.py line 233. It seems the Actor encounters an unexpected job card (possibly an ad or empty element) without a title field. Input parameters:
URL:
Cookie: valid li_at session cookie
max_pages: 1–10
Log excerpt:
css Kopieren Bearbeiten File "/usr/src/app/src/main.py", line 233, in main print(g_job['title'], "-- !! --", g_job['company_public_identifier']) KeyError: 'title' Please handle missing title gracefully or skip empty results.

input url contains 0 results
hpc
Thanks for your response. The input URL does return search results in the browser (with the same session cookie).

do you see something else than the following screenshot ?
hpc
Yes, I get search results with this URL https://www.linkedin.com/jobs/search/?currentJobId=4263967898&keywords=Operations%20Director%20Prozessindustrie&location=Germany&sortBy=R

I tried your cookie and i couldn't login
Probably why i have an error on empty results
Did you generate the cookies using a chrome extension like "Copy Cookies" ?
hpc
This is my new cookie:
AQEDAQEKrdUEPybCAAABl-ojaQcAAAGYDi_tB04AZNgvZAnAzGZkyec2xRU4sP-B0T-k6N989i7sEAAEqe5i9Om-7ERYJfeuIJdfyv0eMcXoUz2TbPq7xcPDoeG22BW8pUnTN3PD8iap5avjG5maHwO_
hpc
I copied them

seems to work with your new cookie, try refreshing them and paste them on apify if not working last run
hpc
Just tried with the new cookie and got this error:
2025-07-09T07:47:11.283Z ACTOR: Pulling Docker image of build YgLvpqgIAG1l5PIKi from registry.
2025-07-09T07:47:39.223Z ACTOR: Creating Docker container.
2025-07-09T07:47:39.275Z ACTOR: Starting Docker container.
2025-07-09T07:47:39.606Z Starting X virtual framebuffer using: Xvfb :99 -ac -screen 0 1920x1080x24+32 -nolisten tcp
2025-07-09T07:47:39.608Z Executing main command
2025-07-09T07:47:40.878Z Actor is running on the Apify platform, disable_browser_sandbox
was changed to True.
2025-07-09T07:47:41.045Z [apify] INFO Initializing Actor...
2025-07-09T07:47:41.051Z [apify] INFO System info ({"apify_sdk_version": "2.5.0", "apify_client_version": "1.9.3", "crawlee_version": "0.6.7", "python_version": "3.9.22", "os": "linux"})
2025-07-09T07:47:41.830Z page 1
2025-07-09T07:47:43.999Z [apify] ERROR Actor failed with an exception
2025-07-09T07:47:44.000Z Traceback (most recent call last):
2025-07-09T07:47:44.004Z File "/usr/src/app/src/main.py", line 228, in main
2025-07-09T07:47:44.006Z await page.goto(new_url, timeout=12000)
2025-07-09T07:47:44.007Z File "/usr/local/lib/python3.9/site-packages/playwright/async_api/_generated.py", line 9251, in goto
2025-07-09T07:47:44.009Z await self._impl_obj.goto(
2025-07-09T07:47:44.010Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_page.py", line 473, in goto
2025-07-09T07:47:44.011Z return await self._main_frame.goto(**locals_to_params(locals()))
2025-07-09T07:47:44.013Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_frame.py", line 138, in goto
2025-07-09T07:47:44.014Z await self._channel.send("goto", locals_to_params(locals()))
2025-07-09T07:47:44.016Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 61, in send
2025-07-09T07:47:44.017Z return await self._connection.wrap_api_call(
2025-07-09T07:47:44.019Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 482, in wrap_api_call
2025-07-09T07:47:44.020Z return await cb()
2025-07-09T07:47:44.022Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 97, in inner_send
2025-07-09T07:47:44.023Z result = next(iter(done)).result()
2025-07-09T07:47:44.024Z playwright._impl._api_types.Error: net::ERR_TOO_MANY_REDIRECTS at https://www.linkedin.com/jobs/search/?keywords=Operations+Director+Prozessindustrie&location=Germany&sortBy=R
2025-07-09T07:47:44.026Z =========================== logs ===========================
2025-07-09T07:47:44.027Z navigating to "https://www.linkedin.com/jobs/search/?keywords=Operations+Director+Prozessindustrie&location=Germany&sortBy=R", waiting until "load"
2025-07-09T07:47:44.028Z ============================================================
2025-07-09T07:47:44.030Z [apify] INFO Exiting Actor ({"exit_code": 91})

Can you try copy pasting your cookie session using the chrome extension mentionned in our readme ? we use "Copy Cookies"
hpc
OK, I have done so.
Unfortunately just 1 result (which you get if you're not logged in)

Great thank you
We updated the actor, linkedin made some changes to the results listing structure
We stay available if any error arise
hpc
Thanks a lot for your support! As aconsulter I would like to use the scraper for different clients so this could be very important for me. Unfortunately it's still not working and it seems that my cookies get invalid when runnung the Scraper. I'm based in Germany and wants tu use the german proxy.
2025-07-09T11:39:24.329Z ACTOR: Pulling Docker image of build hO3O8OYBxDh4na5l3 from registry.
2025-07-09T11:39:24.331Z ACTOR: Creating Docker container.
2025-07-09T11:39:24.378Z ACTOR: Starting Docker container.
2025-07-09T11:39:24.656Z Will run command: xvfb-run -a -s "-ac -screen 0 1920x1080x24+32 -nolisten tcp" python3 -m src
2025-07-09T11:39:27.247Z Actor is running on the Apify platform, disable_browser_sandbox
was changed to True.
2025-07-09T11:39:27.478Z [apify] INFO Initializing Actor...
2025-07-09T11:39:27.481Z [apify] INFO System info ({"apify_sdk_version": "2.6.0", "apify_client_version": "1.11.0", "crawlee_version": "0.6.11", "python_version": "3.9.23", "os": "linux"})
2025-07-09T11:39:30.634Z page 1
2025-07-09T11:39:46.964Z Betriebsleiter (m/w/d) -- !! -- prezero-deutschland
2025-07-09T11:39:48.073Z Exception in callback AsyncIOEventEmitter._emit_run..callback(<Task finishe... 1 (char 0)')>) at /usr/local/lib/python3.9/site-packages/pyee/asyncio.py:65
2025-07-09T11:39:48.075Z handle: <Handle AsyncIOEventEmitter._emit_run..callback(<Task finishe... 1 (char 0)')>) at /usr/local/lib/python3.9/site-packages/pyee/asyncio.py:65>
2025-07-09T11:39:48.077Z Traceback (most recent call last):
2025-07-09T11:39:48.078Z File "/usr/local/lib/python3.9/asyncio/events.py", line 80, in _run
2025-07-09T11:39:48.079Z self._context.run(self._callback, *self._args)
2025-07-09T11:39:48.081Z File "/usr/local/lib/python3.9/site-packages/pyee/asyncio.py", line 71, in callback
2025-07-09T11:39:48.082Z self.emit("error", exc)
2025-07-09T11:39:48.084Z File "/usr/local/lib/python3.9/site-packages/pyee/base.py", line 179, in emit
2025-07-09T11:39:48.085Z self._emit_handle_potential_error(event, args[0] if args else None)
2025-07-09T11:39:48.087Z File "/usr/local/lib/python3.9/site-packages/pyee/base.py", line 139, in _emit_handle_potential_error
2025-07-09T11:39:48.088Z raise error
2025-07-09T11:39:48.089Z File "/usr/src/app/src/main.py", line 32, in handle_response
2025-07-09T11:39:48.091Z json_data = await response.json()
2025-07-09T11:39:48.092Z File "/usr/local/lib/python3.9/site-packages/playwright/async_api/_generated.py", line 636, in json
2025-07-09T11:39:48.094Z return mapping.from_maybe_impl(await self._impl_obj.json())
2025-07-09T11:39:48.095Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_network.py", line 590, in json
2025-07-09T11:39:48.096Z return json.loads(await self.text())
2025-07-09T11:39:48.098Z File "/usr/local/lib/python3.9/json/init.py", line 346, in loads
2025-07-09T11:39:48.099Z return _default_decoder.decode(s)
2025-07-09T11:39:48.101Z File "/usr/local/lib/python3.9/json/decoder.py", line 337, in decode
2025-07-09T11:39:48.102Z obj, end = self.raw_decode(s, idx=_w(s, 0).end())
2025-07-09T11:39:48.104Z File "/usr/local/lib/python3.9/json/decoder.py", line 355, in raw_decode
2025-07-09T11:39:48.105Z raise JSONDecodeError("Expecting value", s, err.value) from None
2025-07-09T11:39:48.107Z json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
2025-07-09T11:39:53.057Z [apify] ERROR Actor failed with an exception
2025-07-09T11:39:53.065Z Traceback (most recent call last):
2025-07-09T11:39:53.066Z File "/usr/src/app/src/main.py", line 249, in main
2025-07-09T11:39:53.068Z print(g_job['title'], "-- --", g_job['company_public_identifier'])
2025-07-09T11:39:53.069Z KeyError: 'title'
2025-07-09T11:39:53.071Z
2025-07-09T11:39:53.073Z During handling of the above exception, another exception occurred:
2025-07-09T11:39:53.074Z
2025-07-09T11:39:53.076Z Traceback (most recent call last):
2025-07-09T11:39:53.078Z File "/usr/src/app/src/main.py", line 272, in main
2025-07-09T11:39:53.079Z await browser.close()
2025-07-09T11:39:53.081Z File "/usr/local/lib/python3.9/site-packages/playwright/async_api/_context_manager.py", line 58, in aexit
2025-07-09T11:39:53.083Z await self._connection.stop_async()
2025-07-09T11:39:53.084Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 284, in stop_async
2025-07-09T11:39:53.091Z self.cleanup(error_message)
2025-07-09T11:39:53.093Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 295, in cleanup
2025-07-09T11:39:53.095Z callback.future.set_exception(Error(error_message))
2025-07-09T11:39:53.097Z asyncio.exceptions.InvalidStateError: invalid state
2025-07-09T11:39:53.099Z [apify] INFO Exiting Actor ({"exit_code": 91})

Thank you for the feedbacks !
We improved the results browsing and pagination handling
Try again, we stay available if anything arise
hpc
2025-07-09T23:10:37.521Z ACTOR: Pulling Docker image of build 18iKXggRyeQDjqUXm from registry.
2025-07-09T23:11:03.269Z ACTOR: Creating Docker container.
2025-07-09T23:11:03.319Z ACTOR: Starting Docker container.
2025-07-09T23:11:03.548Z Will run command: xvfb-run -a -s "-ac -screen 0 1920x1080x24+32 -nolisten tcp" python3 -m src
2025-07-09T23:11:04.640Z Actor is running on the Apify platform, disable_browser_sandbox
was changed to True.
2025-07-09T23:11:04.787Z [apify] INFO Initializing Actor...
2025-07-09T23:11:04.791Z [apify] INFO System info ({"apify_sdk_version": "2.6.0", "apify_client_version": "1.11.0", "crawlee_version": "0.6.11", "python_version": "3.9.23", "os": "linux"})
2025-07-09T23:11:05.581Z page 1
2025-07-09T23:11:10.664Z [apify] ERROR Actor failed with an exception
2025-07-09T23:11:10.665Z Traceback (most recent call last):
2025-07-09T23:11:10.665Z File "/usr/src/app/src/main.py", line 245, in main
2025-07-09T23:11:10.665Z await page.goto(new_url, timeout=5000)
2025-07-09T23:11:10.666Z File "/usr/local/lib/python3.9/site-packages/playwright/async_api/_generated.py", line 9251, in goto
2025-07-09T23:11:10.666Z await self._impl_obj.goto(
2025-07-09T23:11:10.667Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_page.py", line 473, in goto
2025-07-09T23:11:10.667Z return await self._main_frame.goto(**locals_to_params(locals()))
2025-07-09T23:11:10.667Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_frame.py", line 138, in goto
2025-07-09T23:11:10.668Z await self._channel.send("goto", locals_to_params(locals()))
2025-07-09T23:11:10.669Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 61, in send
2025-07-09T23:11:10.670Z return await self._connection.wrap_api_call(
2025-07-09T23:11:10.670Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 482, in wrap_api_call
2025-07-09T23:11:10.671Z return await cb()
2025-07-09T23:11:10.671Z File "/usr/local/lib/python3.9/site-packages/playwright/_impl/_connection.py", line 97, in inner_send
2025-07-09T23:11:10.671Z result = next(iter(done)).result()
2025-07-09T23:11:10.672Z playwright._impl._api_types.TimeoutError: Timeout 5000ms exceeded.
2025-07-09T23:11:10.672Z =========================== logs ===========================
2025-07-09T23:11:10.673Z navigating to "https://www.linkedin.com/jobs/search/?keywords=Operations+Director+Prozessindustrie&location=Germany&sortBy=R", waiting until "load"
2025-07-09T23:11:10.673Z ============================================================
2025-07-09T23:11:10.673Z [apify] INFO Exiting Actor ({"exit_code": 91})
hpc
Any idea how to get it up and running?

still working on the issue
While testing it works fine but on apify infrastructure it seems to have issues with network timeout and not able to load pages correctly