LinkedIn Jobs Scraper by Keyword
Pricing
$4.50 / 1,000 results
LinkedIn Jobs Scraper by Keyword
π Scrape LinkedIn job listings by keyword, location, or company. Extract job titles, companies, locations, descriptions, posted dates, and more, perfect for recruitment, lead generation, and job market research π
Pricing
$4.50 / 1,000 results
Rating
0.0
(0)
Developer
Hamza
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
Search LinkedIn jobs by keyword across location, country, time range, employment type, experience level, remote mode, and more. For each search, the Actor returns one record per matching job β title, company, location, salary, applicant count, full HTML description, apply link, and 29 fields total.
What this Actor does
For each search query you submit (keyword + optional filters), the Actor asks the data provider to discover matching LinkedIn jobs and returns one record per result. Each row includes a discovery_input field so you can tell which search query produced it β useful when running multiple searches at once.
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | yes | β | Job title or search term. Wrap in escaped quotes for exact-match: "\"python developer\"". |
location | string | no | "" | City or region, e.g. "Paris", "New York". Leave empty for the entire country. |
country | string | no | "" | ISO country code, e.g. "US", "FR", "GB". Leave empty for any. |
time_range | enum | no | "" | (any time), Past 24 hours, Past week, Past month |
job_type | enum | no | "" | (any type), Full-time, Part-time, Contract, Temporary, Volunteer, Internship, Other |
experience_level | enum | no | "" | (any level), Internship, Entry level, Associate, Mid-Senior level, Director, Executive |
remote | enum | no | "" | (any), On-site, Remote, Hybrid |
company | string | no | "" | Restrict to a specific company name. Leave empty for any. |
location_radius | string | no | "" | Distance around location. Leave empty for the LinkedIn default. |
max_results | integer (1β10000) | no | 100 | Maximum jobs to return. Sent to the provider as limit_per_input so it stops crawling at the cap. |
Example input:
{"keyword": "product manager","location": "Paris","country": "FR","time_range": "Past month","job_type": "Full-time","experience_level": "Internship","remote": "On-site","company": "","location_radius": "","max_results": 50}
To run multiple different searches (e.g. "product manager in Paris" + "python developer in New York"), trigger the Actor multiple times via the API or create separate Apify tasks.
How the cap works (and why it saves you money)
The Actor enforces max_results_per_search in two places, so you only pay for the rows you keep:
- Server-side (primary). The value is sent to the provider as
limit_per_inputon the/scraperequest. The provider stops crawling each search once it hasNresults, so the billable row count scales withNβ not with how many results LinkedIn actually has for "product manager in Paris". - Client-side (safety net). After the provider returns results, the Actor groups rows by their
discovery_input, sorts byjob_posted_datedesc, and trims to the cap in case any extras slipped through.
You'll see per-search accounting in the logs:
"product manager" @ "paris": 50 returned, kept 50, dropped 0."\"python developer\"" @ "New York": 50 returned, kept 50, dropped 0.
Setting max_results_per_search to a very high value (e.g. 10000) effectively disables the cap.
Output
Each item in the dataset has this shape (29 fields, matches the upstream schema):
{"url": "https://www.linkedin.com/jobs/view/principal-full-stack-engineer-vp-at-hackajob-4394289151","job_posting_id": "4394289151","job_title": "Principal Full Stack Engineer - VP","company_name": "hackajob","company_id": "5396873","job_location": "Hanover, NJ","job_summary": "hackajob is collaborating with Barclays to connect them with exceptional professionals...","job_seniority_level": "Executive","job_function": "Engineering and Information Technology","job_employment_type": "Full-time","job_industries": "Software Development","job_base_pay_range": "$170,000.00/yr - $230,000.00/yr","company_url": "https://uk.linkedin.com/company/hackajob?...","job_posted_time": "3 days ago","job_num_applicants": 0,"discovery_input": {"location": "New York","keyword": "\"python developer\"","experience_level": "Executive","country": "","time_range": "","job_type": "","remote": "","company": "","location_radius": ""},"apply_link": null,"country_code": "US","title_id": "25201","company_logo": "https://media.licdn.com/dms/image/v2/.../company-logo_100_100/...","job_posted_date": "2026-05-18T01:21:15.832Z","job_poster": null,"application_availability": true,"job_description_formatted": "<section class=\"show-more-less-html\" data-max-lines=\"5\">...</section>","base_salary": {"min_amount": 170000,"max_amount": 230000,"currency": "USD","payment_period": "yr"},"salary_standards": "This range is provided by hackajob. Your actual pay will be based on your skills...","is_easy_apply": false,"timestamp": "2026-05-21T01:21:15.869Z","input": { "url": "https://www.linkedin.com/jobs/view/...", "discovery_input": { "..." } }}
Limits & responsible use
- The Actor only returns information that is publicly visible on LinkedIn job search results and detail pages.
- Respect LinkedIn's Terms of Service, robots.txt expectations, and applicable employment-data privacy regulations.
- Broad searches like just
"engineer"with no filters can match millions of jobs β keepmax_results_per_searchmodest unless you really need them all.