Apify Store
AS
Apify Store
/curious_coder/linkedin-jobs-scraper

Linkedin Jobs Scraper

Scrape Linkedin jobs from jobs search results using search URLs or filters. Get full job details, job poster and company details.

liveverifiedasyncdegraded · 13.1s~30s typical
lead generationjobslinkedin
$0.0025
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.002 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /curious_coder/linkedin-jobs-scraper for me.

Input

FieldTypeDescription
urlsarrayGo to [public linkedin jobs search page](https://www.linkedin.com/jobs/search/) on incognito window (to access public version), search with required filters and once you are done, copy the full URL from address bar and pass it here. You can pass multiple search URLs. When URLs are provided, the AI search filters below are ignored. Leave this empty to use the filters instead. default []
keywordsstringJob title, skills, or free-text search (e.g. "software engineer remote"). Used only when the URLs list above is empty.
locationstringCity, region, or country as you would type it on LinkedIn (e.g. "United States", "London, United Kingdom", "Remote").
geoIdstringOptional LinkedIn geoId for precise location targeting (found in a LinkedIn search URL as `geoId=`). Overrides free-text location when LinkedIn resolves it.
distanceintegerSearch radius in miles around the location. Leave empty for LinkedIn's default.
datePostedstring (anyTime | past24Hours | pastWeek | pastMonth)Only return jobs posted within this window. default "anyTime"
companyIdsarrayLinkedIn numeric company IDs (from a company URL or `f_C=` in a search URL), e.g. "1441" for Google. default []
under10ApplicantsbooleanOnly jobs with fewer than 10 applicants. default false
autoConvertToAiSearchbooleanLinkedIn is now forcing AI job search which removed many classic filters (experience, job type, workplace, salary, sort, etc.) When this option is enabled, the filters in old search URLs are converted to natural language and appended to search keywords. Date posted, Company, Easy apply, and Under 10 applicants stay as URL filters on AI search. default true
scrapeCompanybooleanThis will require additional scraping requests for each job record and take longer to scrape default true
limitPerSourceintegerMaximum number of jobs to scrape from each input URL (or from the AI search filters when no URLs are provided). Leave empty to scrape as many as LinkedIn returns for each search (up to ~1000).
splitByLocationbooleanEnable this to split your search by cities within a country. This helps bypass LinkedIn's 1000 job limit per search URL by creating separate searches for each city. This will overwrite the location filter in input search URLs. default false
splitCountrystring (US | CA | MX | GB | DE | FR)Select the country whose cities will be used to split the search. Only used when 'Split search by city locations' is enabled. Required to when 'Split search by city locations' is enabled.

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/curious_coder/linkedin-jobs-scraper","input":{"urls":["https://www.linkedin.com/jobs/search/?position=1&pageNum=0"],"limitPerSource":3},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /curious_coder/linkedin-jobs-scraper -i '{"urls":["https://www.linkedin.com/jobs/search/?position=1&pageNum=0"],"limitPerSource":3}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/curious_coder/linkedin-jobs-scraper", input: {"urls":["https://www.linkedin.com/jobs/search/?position=1&pageNum=0"],"limitPerSource":3}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.