Jobs Scraper - LinkedIn, Workday, Greenhouse & 15+ Job Sources avatar

Jobs Scraper - LinkedIn, Workday, Greenhouse & 15+ Job Sources

Pricing

from $0.84 / 1,000 per job listing delivereds

Go to Apify Store
Jobs Scraper - LinkedIn, Workday, Greenhouse & 15+ Job Sources

Jobs Scraper - LinkedIn, Workday, Greenhouse & 15+ Job Sources

US + Europe job listings: LinkedIn search (no login), career sites on Workday, Greenhouse, Lever, Ashby, Personio, Recruitee, Teamtailor & more, plus public job APIs (German and Swedish employment agencies, remote boards). $0.0012 per job.

Pricing

from $0.84 / 1,000 per job listing delivereds

Rating

0.0

(0)

Developer

Ja doei

Ja doei

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

✅ Tested daily with its default input (Apify's automated QA plus our own smoke test before every release).

One job scraper for the US and Europe. Search LinkedIn Jobs by keyword and location (no login, no cookies), search the public job databases of the German and Swedish employment agencies and three remote-job boards, and pull every open job straight from a company's career site on Workday, Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR and Breezy HR by just typing the company name or pasting the career-page URL. Every job comes back in the same clean format: title, company, location, country, remote flag, salary, posted date, employment type, seniority, full description and apply link.

$0.0012 per job, lower on higher Apify plans. Proxy cost is included.

Sources and coverage

SourceHow it is readCoverage
LinkedIn Jobspublic guest job search (no login)worldwide: every US state and every European country (location, countries or geoId)
Workday career sitesthe public JSON API behind *.myworkdayjobs.com career siteslarge employers, mostly US and global (paste the career-site URL)
Greenhouse, Lever, Ashby, Workable, SmartRecruitersofficial public job-board APIstech companies and scale-ups, US + Europe
Recruitee, Personio, Teamtailorofficial public job feeds (Recruitee offers API, Personio XML feed, Teamtailor RSS)strong in the Netherlands, Germany/Austria/Switzerland and the Nordics
BambooHR, Breezy HRpublic careers JSONsmall and mid-size companies, mostly US
Bundesagentur für Arbeit (German Federal Employment Agency)public Jobsuche APIGermany's largest job database (set countries to DE)
Arbetsförmedlingen / JobTech (Swedish Public Employment Service)open JobSearch API (ads licensed CC0)Sweden (set countries to SE)
Arbeitnowfree public job-board APIGermany / Europe, many English-speaking tech jobs
Remote OK, We Work Remotelypublic API / RSS feed (source credited, links back)remote jobs, worldwide, many US companies
Any other career pageschema.org JobPosting data in the page (robots.txt respected)e.g. join.com and most modern career sites

Only official or public endpoints that work without a login or API key are used. No bot-check bypassing, no CAPTCHA solving, no browser-fingerprint tricks.

What you can scrape

  • Keyword search across job boards: any keywords + location, or a list of countries (e.g. ["US", "DE", "NL"] or "EUROPE") to search country by country. LinkedIn's own filters (date posted, remote / hybrid / on-site, job type, experience level, newest first) are supported, or paste LinkedIn search URLs
  • Company career sites by name: type airbnb, Hugging Face, bunq or tado and the Actor finds the company's job board and returns all open jobs
  • Career-page URLs: https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite, https://jobs.lever.co/spotify, https://boards.greenhouse.io/airbnb, https://tado.jobs.personio.de, https://polestar.teamtailor.com, https://join.com/companies/join ...

Why this scraper

  • US + Europe in one run, one output format: LinkedIn, national job databases, remote boards and company career sites without stitching ten scrapers together. Every job has source and country
  • Career sites are read from the platforms' own public job APIs and feeds, so these jobs are complete and stable: full description, department, workplace type and, where the company publishes it, structured salary
  • Salary where others leave it empty: if a posting has no salary field, explicit pay ranges in the description (e.g. "$120,000 - $150,000", "€3.600 to €5.000 per month") are parsed into salaryMin, salaryMax, salaryCurrency and salaryPeriod
  • Filters that save money: date posted, workplace type, title keywords and location are applied before delivery, so you only pay for jobs you keep
  • Fair billing: a job whose details cannot be loaded after a retry is delivered with its search data and detailsMissing: true, and is not charged. Companies that are not found and failed searches are free
  • No personal data: no recruiter or poster names, profiles, e-mail addresses or phone numbers. E-mail addresses and phone numbers inside job descriptions are replaced by [email removed] / [phone removed]

Input

FieldDefaultDescription
searchQueries–Keywords, e.g. data engineer, searched on every selected source
location–City, region or country, e.g. Berlin, United States, Remote
countries–ISO codes, e.g. ["US", "DE", "NL"], or EU / EUROPE. Without location, LinkedIn is searched per country; DE / SE add the German / Swedish employment agency
sourcesLinkedIn (+ agencies for DE/SE)linkedin, arbeitsagentur, jobtech, arbeitnow, remoteok, weworkremotely
geoId–Optional LinkedIn location id (from a LinkedIn search URL)
searchUrls–LinkedIn job search URLs (all URL filters are kept)
maxResultsPerQuery50Jobs per keyword, per source and per country
datePostedany24h, week, month (all sources)
workplaceTypesallremote, hybrid, onsite (all sources)
jobTypesallLinkedIn: full-time, part-time, contract, temporary, internship, ...
experienceLevelsallLinkedIn: internship, entry, associate, mid-senior, director, executive
sortByrelevanceLinkedIn: relevance or date
jobDetailstrueFull description for LinkedIn and Bundesagentur jobs (same price)
companies–Company names, slugs, career-page URLs (incl. Workday) or platform:slug
maxResultsPerCompany100Jobs per company, newest first
companyJobKeywords–Only company jobs whose title contains one of these words
companyJobLocation–Only company jobs whose location contains this text (London, Remote)
atsPlatformsall tenPlatforms to search a company name on
extractSalarytrueParse pay ranges from the description
includeDescriptionHtmlfalseAlso return the original HTML

Example (US + Europe):

{
"searchQueries": ["data engineer"],
"countries": ["US", "DE", "NL", "SE"],
"sources": ["linkedin", "arbeitsagentur", "jobtech", "remoteok"],
"datePosted": "week",
"maxResultsPerQuery": 100,
"companies": ["airbnb", "bunq", "personio:tado", "https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite"],
"companyJobKeywords": ["data"],
"maxResultsPerCompany": 50
}

Output

LinkedIn job:

{
"id": "4419969671",
"source": "linkedin",
"title": "Senior Software Engineer – Go (Golang)",
"company": "General Motors",
"companyUrl": "https://www.linkedin.com/company/general-motors",
"location": "Warren, MI",
"country": "US",
"isRemote": false,
"employmentType": "Full-time",
"seniority": "Not Applicable",
"industries": "Motor Vehicle Manufacturing, Appliances, Electrical, and Electronics Manufacturing, and IT Services and IT Consulting",
"postedAt": "2026-10-25",
"postedAgo": "1 day ago",
"applicantsCount": 200,
"salaryText": "$160,000 and $200,000",
"salaryMin": 160000,
"salaryMax": 200000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salarySource": "description",
"description": "Job Description\n\nAs a Senior Software Engineer – Go (Golang), you will design, develop, and deliver ...",
"jobUrl": "https://www.linkedin.com/jobs/view/4419969671/",
"applyUrl": "https://www.linkedin.com/jobs/view/4419969671/",
"applyType": "external",
"closed": false,
"input": "software engineer",
"scrapedAt": "2026-10-26T15:12:45Z"
}

Career-site job (Ashby):

{
"id": "e0cca3aa-24f7-46ca-9493-9984a7ae2285",
"source": "ashby",
"title": "Product Operations | General Builder (All Levels)",
"company": "Ramp",
"location": "New York, NY (HQ); San Francisco, CA",
"country": "US",
"isRemote": false,
"workplaceType": "hybrid",
"employmentType": "Full-time",
"department": "Product / Product Operations",
"postedAt": "2026-10-23T19:41:17Z",
"salaryText": "$130K - $200K",
"salaryMin": 130000,
"salaryMax": 200000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"salarySource": "structured",
"description": "ABOUT RAMP\n\nRamp is building the smart infrastructure for finance teams ...",
"jobUrl": "https://jobs.ashbyhq.com/ramp/e0cca3aa-24f7-46ca-9493-9984a7ae2285",
"applyUrl": "https://jobs.ashbyhq.com/ramp/e0cca3aa-24f7-46ca-9493-9984a7ae2285/application",
"input": "ashby:ramp",
"scrapedAt": "2026-10-26T15:18:10Z"
}

source is linkedin, workday, greenhouse, lever, ashby, workable, smartrecruiters, recruitee, personio, teamtailor, bamboohr, breezy, arbeitsagentur, jobtech, arbeitnow, remoteok, weworkremotely or jsonld (schema.org data from a career page). country is the ISO code of the job's country when the source or the location names it. Fields a source does not publish are left out (e.g. applicantsCount only exists on LinkedIn, department only on career sites). salarySource tells you whether the salary came from a structured field or from the description. LinkedIn's applicantsCount is a lower bound when LinkedIn shows "Over 200 applicants". On LinkedIn the apply button for external applications needs a login, so applyUrl is the LinkedIn job page and applyType says whether the application happens on LinkedIn or on the company site.

Pricing (pay per event)

  • $0.0012 per job delivered; $0.00102 on Silver, $0.00084 on Gold and above
  • Same price for every source
  • Not charged: companies that are not found, failed searches, and jobs delivered without details (detailsMissing: true)

So 1,000 jobs with full descriptions cost $1.20 on the free plan. Set the max-results fields or a maximum cost per run to cap spending.

What this Actor does not collect

Only job postings. No recruiter or hiring-manager names, no profiles, no e-mail addresses or phone numbers (also removed from description texts), no login. Remote OK, We Work Remotely and Arbeitnow ask to be credited: every job from them carries source and a jobUrl that links back to the original listing; keep that link when you republish. Remotive is not included because its terms do not allow passing its jobs on to third-party sites. Indeed and Glassdoor are not included: they block automated requests with a bot check, and we do not bypass bot checks. Make sure your use of the data follows the sites' terms and applicable law.

Use with AI agents (MCP)

This Actor can be used as a tool by AI agents (Claude, Cursor, VS Code, other MCP clients) through the official Apify MCP server:

  • Add only this Actor as a tool: https://mcp.apify.com?tools=admirala/jobs-scraper (sign in with OAuth or an Apify API token).
  • Or connect https://mcp.apify.com and let the agent find it with search-actors (e.g. "linkedin jobs workday greenhouse scraper"), read the input schema with fetch-actor-details and run it with call-actor.

Example input an agent can pass:

{
"searchQueries": ["machine learning engineer"],
"location": "London",
"datePosted": "week",
"workplaceTypes": ["remote", "hybrid"],
"maxResultsPerQuery": 25
}

Cost per call: $0.0012 per job returned. Results come back as dataset items (get-dataset-items).

FAQ

Do I need a LinkedIn account or cookies? No. The Actor only uses the public job pages LinkedIn shows to visitors who are not logged in.

How do I get all jobs of one company? Put the company in companies, e.g. airbnb, and set maxResultsPerCompany high enough. If the company has boards on two platforms the one with most jobs is used and the log names the other; force one with greenhouse:airbnb, lever:spotify, ashby:ramp, workable:huggingface, smartrecruiters:BoschGroup, recruitee:bunq, personio:tado, teamtailor:polestar, bamboohr:<subdomain> or breezy:<subdomain>, or paste the career-page URL.

Which companies are supported? Every company that publishes its jobs on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR or Breezy HR (found by name), every Workday career site (paste the myworkdayjobs.com URL; Workday site names cannot be guessed from a company name) and every career page that embeds schema.org JobPosting data (paste the URL). Other companies: use the keyword search.

Which countries are covered? LinkedIn covers the US and every European country; set countries (e.g. ["US", "FR", "PL"], EU or EUROPE) to search each one. Germany and Sweden additionally get their national employment-agency databases (DE, SE). Career sites and remote boards are global.

Why no USAJOBS, Adzuna, Indeed or Glassdoor? USAJOBS and Adzuna require a personal API key; they are not included yet. Indeed and Glassdoor put automated visitors behind a bot check, and we do not bypass bot checks.

How do I get only remote jobs? Set workplaceTypes to ["remote"]. For LinkedIn this uses LinkedIn's own remote filter; for the other sources it uses the workplace type the posting sets (or "remote" in the location). Or select the remoteok and weworkremotely sources.

How do I get only new jobs every day? Set datePosted to 24h and schedule the Actor daily. Each job has a stable id per source for de-duplication.

Why is the salary empty for some jobs? Many postings do not publish pay. The Actor only fills salary fields from a structured salary field or an explicit range with a currency in the description; it never guesses.

More examples

Ready-to-run Python, curl and MCP examples with real sample output: https://github.com/AdmiraalA/apify-scrapers-examples