Jobs Scraper API: LinkedIn, Indeed & 30+ Job Boards (Deduped) avatar

Jobs Scraper API: LinkedIn, Indeed & 30+ Job Boards (Deduped)

Pricing

$1.96 / 1,000 jobs

Go to Apify Store
Jobs Scraper API: LinkedIn, Indeed & 30+ Job Boards (Deduped)

Jobs Scraper API: LinkedIn, Indeed & 30+ Job Boards (Deduped)

Search live jobs from LinkedIn, Indeed, Greenhouse, Lever, Workday and 30+ boards in one clean schema. Full descriptions, salaries in USD, seniority, visa and company-size filters, duplicates removed, and an "only new jobs" mode for schedules.

Pricing

$1.96 / 1,000 jobs

Rating

4.4

(2)

Developer

JobsPipe

JobsPipe

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

7

Monthly active users

a day ago

Last modified

Share

Jobs Scraper API: LinkedIn, Indeed and 30+ job boards in one clean feed

Search live job postings from LinkedIn, Indeed, Greenhouse, Lever, Workday, Ashby, Y Combinator and 30+ other boards and career sites, in one input and one schema. Every job comes with its full description, a working job link, the company and the board it came from, plus salary in USD (as posted, or a benchmark estimate), seniority and company details wherever they are known. Cross-board duplicates are removed before you pay, and scheduled runs can return only the jobs you have not received yet.

There is nothing to scrape, no proxies, no logins and no per-site parsers. The Actor queries the JobsPipe index, which collects and normalizes postings every day, so runs finish in seconds and do not break when a job board changes its page.

Why this instead of a single-site scraper

What people complain about in job scrapersWhat this Actor does
Results that do not match the search ("I asked for CTO and got other titles")Title, keyword and exclusion filters run on the full index, and you can exclude words, companies, countries and sources
No job description, no company, no usable job linkFull description, company name and domain, and a link that opens the posting on every row
No salary, seniority, industry or date filtersMinimum salary in USD, seniority, employment type, work arrangement, company size, industry, date range, visa sponsorship, language
"UK search returned US jobs"Country, city, state and region filters that normalize every spelling ("Greater London" finds London, "Pennsylvania" finds PA)
Duplicates billed several timesThe same job posted on two boards is delivered once; duplicates are skipped before billing
Paying again for yesterday's jobs on a scheduleOnly new jobs since the last run returns postings you have not received yet
Recruiter spam and repostsDirect employers only hides staffing agencies and job-board reposts; Hide likely ghost jobs drops stale and evergreen listings
Runs that fail, return nothing, or run foreverStops at your job limit or spending limit; a search that cannot run fails with a clear message instead of an empty "successful" run

What you can build

  • Lead generation: find companies hiring for a role or technology this week, with the company domain, and send them to Clay, HubSpot or a spreadsheet.
  • Job boards and newsletters: a daily feed of fresh, deduplicated jobs for a niche, e.g. remote Rust roles or visa-sponsored nursing jobs.
  • Recruiting and sourcing: watch named companies, or jobs with few applicants, and get recruiter emails where the posting lists one.
  • Salary and labor-market research: posted pay (converted to USD) and benchmark estimates by role, seniority, city and country.
  • Job search automation: a personal alert for exactly the roles you want, scheduled in Apify, n8n, Make or Zapier.

Sources

  • Job boards: LinkedIn, Indeed, Y Combinator (Work at a Startup), CV-Library, Resume-Library, The Muse, Himalayas, RemoteOK, Remotive, Arbeitnow, Jobicy, Landing.jobs, Working Nomads
  • Company career sites (ATS): Greenhouse, Lever, Ashby, Workday, Workable, SmartRecruiters, Recruitee, Personio, Breezy, JobScore, Manatal, Paylocity
  • Public employment services: EURES (EU), JobTech (Sweden)

How to use it

  1. Enter one or more job titles or keywords, and a country if you want one.
  2. Keep Posted within (days) small for broad searches (7 is the default); it makes runs faster and cheaper.
  3. Add any other filters and set Max jobs to return.
  4. Click Start. Jobs appear in the Jobs tab; Salaries and Companies hiring give other views of the same data, and Run summary shows how many duplicates were skipped.

Filters are combined with AND; values inside one list are combined with OR. Leave everything blank for the newest jobs across all sources.

Example inputs

Remote senior Python jobs in the US from the last 3 days, direct employers only:

{
"searchTerms": ["python developer", "python engineer"],
"countries": ["US"],
"workArrangements": ["remote"],
"seniority": ["senior"],
"directEmployersOnly": true,
"postedWithinDays": 3,
"maxItems": 200
}

Companies hiring data engineers with Snowflake or dbt in the UK and Germany, companies under 500 people (lead generation):

{
"searchTerms": ["data engineer"],
"descriptionKeywords": ["snowflake", "dbt"],
"countries": ["GB", "DE"],
"maxEmployees": 500,
"postedWithinDays": 14,
"maxItems": 500
}

Visa-sponsored nursing jobs paying at least $80,000, scheduled daily with only new jobs:

{
"searchTerms": ["registered nurse"],
"visaSponsorship": ["offers"],
"minSalaryUsd": 80000,
"onlyNewJobs": true,
"postedWithinDays": 7,
"maxItems": 1000
}

Scheduling: only new jobs

Tick Only new jobs since the last run and schedule the Actor (Apify Schedules, n8n, Make, Zapier or the API). Each run returns only postings JobsPipe discovered since the same search last ran, and skips any job you already received, so you never pay twice for the same job. The first run returns the newest matches and remembers them. Changing the filters starts a new search with its own memory.

Output

One dataset item per job. The Jobs view shows the key columns; the full record has 80 fields, including:

{
"id": "4472416680",
"job_title": "Senior Data Engineer (Analytics)",
"company": "Optum",
"company_domain": "optum.com",
"url": "https://www.linkedin.com/jobs/view/senior-data-engineer-analytics-at-optum-4472416680",
"location": "Eden Prairie, MN",
"country_code": "US",
"cities": ["Eden Prairie"],
"remote": true,
"work_arrangement": "remote",
"date_posted": "2026-09-27",
"seniority": "senior",
"employment_statuses": ["full_time"],
"employer_type": "employer",
"salary_string": "$91,700 to $163,700",
"min_annual_salary_usd": 91700,
"max_annual_salary_usd": 163700,
"estimated_min_annual_salary_usd": 101471,
"estimated_max_annual_salary_usd": 159174,
"technology_slugs": ["python", "scala", "apache-kafka", "databricks", "snowflake", "apache-airflow"],
"ghost_score": 40,
"applicant_count": 25,
"recruiter_emails": [],
"visa_sponsorship": null,
"description": "Optum is a global organization that delivers care, aided by technology to help millions of people live healthier lives...",
"sources": [{ "provider": "linkedin", "url": "https://www.linkedin.com/jobs/view/senior-data-engineer-analytics-at-optum-4472416680" }]
}

Other fields include the normalized title, occupation (ISCO) and industry (ISIC) codes, hybrid flag, state and postal code, coordinates, benefits, skills (ESCO), posting language, first-seen and last-verified dates, and whether the posting is still active. Fields that a board does not publish are null.

You can download the dataset as JSON, CSV, Excel, XML or HTML, or read it through the Apify API.

Pricing

Pay per job: $1.96 per 1,000 jobs ($0.00196 per job delivered). You are billed only for jobs delivered to your dataset: empty searches, cross-board duplicates, excluded companies and jobs already delivered by Only new jobs cost nothing. The run stops at Max jobs or at your spending limit, whichever comes first. 100 jobs cost about $0.20; 5,000 jobs about $9.80.

Apify bills the platform usage of the run separately. The Actor runs with 256 MB of memory and a typical run takes under a minute, so that is usually well under one cent.

Integrations

  • Apify API and SDKs: start runs and read datasets from any language; see the API tab.
  • n8n, Make, Zapier, Clay, Google Sheets, Slack, webhooks: use the Apify integrations to send new jobs wherever you need them.
  • AI agents: the Actor is available through the Apify MCP server, and JobsPipe has its own MCP server too.

FAQ

Is it legal? The Actor reads publicly listed job postings from the JobsPipe index; it does not log in to any site or collect private profiles. Recruiter emails are included only where the posting itself publishes them. Check that your use of the data complies with the laws that apply to you, such as GDPR.

Why does a search fail with "too broad to finish"? LinkedIn and Indeed hold almost all postings, so a search on them needs a job title, keyword, company or country. Every other source, such as all Greenhouse or Workday jobs, can be searched on its own.

Why fewer jobs than I expected? Filters on seniority, employment type and work arrangement drop postings that do not state them (about half do not state a seniority). Tick Include jobs with unknown values to keep them. The Run summary shows how many duplicates and already-delivered jobs were skipped.

How fresh is the data? Boards are collected every day and most new postings appear within a day of being published. Each job has discovered_at (when JobsPipe first saw it) and last_seen_at.

Can I get more than one job per company or location? Yes. Duplicates are removed only when the same job from the same company, with the same title and city, appears on a different board. Two openings on the same board are both kept. Untick Remove cross-board duplicates to get every copy.

Something is wrong or missing. Open an issue in the Issues tab and we will look into it.

Need the raw API?

For high volume, low latency or agent use, the same data is available directly: