Multi Job Board Scraper โ LinkedIn, Indeed, Glassdoor & More
Pricing
from $3.00 / 1,000 job scrapeds
Multi Job Board Scraper โ LinkedIn, Indeed, Glassdoor & More
Scrape job listings from LinkedIn, Indeed, Glassdoor, Google Jobs & ZipRecruiter simultaneously. Extract job title, company, salary, location, job type, description, company info & more. No API keys needed โ pay per result.
Pricing
from $3.00 / 1,000 job scrapeds
Rating
5.0
(1)
Developer
Pika Choo
Actor stats
2
Bookmarked
439
Total users
155
Monthly active users
8 days ago
Last modified
Categories
Share
๐ Multi Job Board Scraper
Scrape job listings from LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, and Naukri simultaneously with a single search โ and get structured, deduplicated results in one dataset.
โจ Features
- ๐ข 8 job boards in one run โ LinkedIn, Indeed, Glassdoor, Google Jobs, ZipRecruiter, Bayt, BDJobs, Naukri
- ๐ฐ Rich salary data โ min/max, currency, interval, annual normalization
- ๐ Deep company info โ size, revenue, rating, industry, logo, description
- ๐ฏ Advanced filters โ remote only, job type, hours posted, distance, easy apply, LinkedIn company targeting
- ๐ Flexible output โ Markdown or HTML descriptions
- ๐ Auto-deduplication โ same job posted on multiple boards appears only once
- ๐ก๏ธ Proxy support โ residential proxies recommended for LinkedIn
- ๐ค Custom User-Agent โ bypass board-specific blocks
- ๐ CA cert support โ for enterprise proxy authentication
๐ฅ Input
๐ด Required
| Field | Type | Description |
|---|---|---|
searchTerm ๐ | string | Job title or keyword (e.g. "software engineer", "data analyst") |
๐ Search & Location
| Field | Type | Default | Description |
|---|---|---|---|
location ๐ | string | โ | City, state, or country (e.g. "New York", "London", "Remote") |
distance ๐ | integer | 50 | Search radius in miles from location |
sites ๐ข | array | All 8 | Job boards: linkedin, indeed, glassdoor, google, zip_recruiter, bayt, bdjobs, naukri |
countryIndeed ๐ | string | usa | Country for Indeed/Glassdoor (usa, uk, canada, australia, germany, france, india, etc.) |
googleSearchTerm ๐ | string | โ | Custom search term for Google Jobs only (copy from Google Jobs UI for best results) |
๐๏ธ Filters
| Field | Type | Default | Description |
|---|---|---|---|
maxResults ๐ | integer | 20 | Max results per site (1โ100) |
isRemote ๐ | boolean | false | Remote jobs only |
jobType ๐ผ | string | โ | fulltime, parttime, contract, internship, temporary |
hoursOld โฐ | integer | โ | Jobs posted within N hours (e.g. 24 = last day, 168 = last week) |
easyApply โก | boolean | false | Quick-apply jobs only (hosted on the job board) |
offset โญ๏ธ | integer | โ | Skip first N results (pagination) |
๐ LinkedIn-Specific
| Field | Type | Default | Description |
|---|---|---|---|
linkedinFetchDescription ๐ | boolean | false | Fetch full descriptions + direct URLs (more requests, slower) |
linkedinCompanyIds ๐ญ | array | โ | Restrict to specific LinkedIn company IDs (e.g. ["1441", "2382910"]) |
โ๏ธ Output & Advanced Options
| Field | Type | Default | Description |
|---|---|---|---|
descriptionFormat ๐ | string | markdown | Job description format: markdown or html |
enforceAnnualSalary ๐ฐ | boolean | false | Convert all wages to yearly equivalents |
userAgent ๐ค | string | โ | Override default User-Agent header |
caCert ๐ | string | โ | CA certificate path for proxy auth |
proxyConfiguration ๐ก๏ธ | object | RESIDENTIAL | Proxy settings (residential recommended for LinkedIn) |
๐ค Output
Each item contains:
| Field | Description |
|---|---|
title | Job title |
company | Company name |
location | Job location |
job_url | Link to job listing |
job_url_direct | Direct apply URL (when available) |
site | Source job board |
date_posted | Date the job was posted |
job_type | Employment type |
is_remote | Remote flag |
job_level | Seniority level (LinkedIn) |
job_function | Role category |
company_industry | Industry |
company_num_employees | Employee count |
company_employees_label | Human-readable employee range (e.g. "1001-5000") |
company_revenue | Company revenue |
company_revenue_label | Human-readable revenue (e.g. "$1B+") |
company_country | Company country (Indeed) |
company_rating | Company rating |
company_reviews_count | Number of reviews |
company_logo | Logo URL |
company_description | Company description |
salary_min | Minimum salary |
salary_max | Maximum salary |
salary_currency | Currency |
salary_interval | Pay period (yearly, monthly, hourly) |
description | Full job description (Markdown or HTML) |
emails | Emails extracted from description |
skills | Skills extracted from description (Naukri) |
experience_range | Required experience (Naukri) |
vacancy_count | Open positions (Naukri) |
work_from_home_type | WFH type (Naukri) |
๐ต Pricing
$0.003 per job scraped (pay-per-event, charged only for results delivered)
โ ๏ธ Important Notes
API Limitations
- LinkedIn โ ๏ธ โ Cannot combine
hoursOldwitheasyApplyin the same search - Indeed โ ๏ธ โ Cannot combine
hoursOldwithjobType,isRemote, oreasyApplyin the same search
Site-Specific Notes
| Board | Notes |
|---|---|
| ๐ต LinkedIn | Rate-limited ~100 results per IP. Use residential proxies for large runs. Enable linkedinFetchDescription for full descriptions. |
| ๐ข Indeed | Most reliable, no rate limiting. Best for large scrapes. |
| ๐ก Glassdoor | Requires countryIndeed for country targeting. |
| ๐ด Google Jobs | Best with a custom googleSearchTerm copied from the browser UI. |
| ๐ ZipRecruiter | US & Canada only. |
| ๐ Bayt | Middle East job market. Only searchTerm filter supported. |
| ๐ข Naukri | India job market. Returns skills, experience_range, company_rating. |
| ๐ต BDJobs | Bangladesh job market. |
๐งช Examples
Basic Search
{"searchTerm": "software engineer","location": "New York"}
๐ Remote Full-time Jobs โ Last 24 Hours
{"searchTerm": "data analyst","isRemote": true,"jobType": "fulltime","hoursOld": 24,"sites": ["indeed", "google", "zip_recruiter"]}
๐ญ LinkedIn Company-Specific Search
{"searchTerm": "product manager","location": "San Francisco","sites": ["linkedin"],"linkedinCompanyIds": ["1441", "2382910"],"linkedinFetchDescription": true}
๐ Global Multi-Board Search with Salary Normalization
{"searchTerm": "machine learning engineer","location": "London","sites": ["linkedin", "indeed", "glassdoor"],"countryIndeed": "uk","maxResults": 50,"enforceAnnualSalary": true,"descriptionFormat": "markdown"}
๐ Middle East + India Search
{"searchTerm": "DevOps engineer","sites": ["bayt", "naukri"],"maxResults": 30}
๐ Changelog
v1.0.20 โ 2026-04-23
Quality & reliability: resolved "under maintenance" flag.
Apify's automated quality tests run the actor with only the prefilled input
values. When v1.0.18 added multi-term search, the hard requirement on
searchTerm was relaxed โ which meant the QA runs submitted empty input
and hit a ValueError crash, which triggered the maintenance flag.
- ๐ฉน Prefilled inputs for automated testing:
searchTermโ,"software engineer"locationโ"New York, NY". New users opening the actor for the first time also see these working defaults instead of a blank form. - ๐ฉน Graceful empty-input fallback: if neither
searchTermnorsearchTermsis provided, the actor now pushes a single usage-hint row and exits cleanly (exit 0) instead of raising aValueError(exit 91). No user is ever charged for a pointless failed run. - ๐ฆ All 8 job boards still selectable by default โ Google & ZipRecruiter remain available even though their upstream scrapers are currently unreliable (tracked in JobSpy issues #284 / #302 / #283).
Verified on Apify: empty-input run now succeeds in <1s instead of crashing; prefilled input returns 60 jobs across LinkedIn/Indeed/Glassdoor.
v1.0.18 โ 2026-04-21
Multi-term OR search (based on store-review feedback).
- New optional
searchTermsarray (max 5). Runs each query in turn, merges the results, and tags every row withmatched_search_termso you can see which query surfaced each job. - Existing single
searchTermfield unchanged and fully backwards compatible. - Example:
{"searchTerms": ["AI consultant", "AI help"],"location": "Remote","sites": ["linkedin", "indeed"]}
v1.0.17 โ 2026-04-20
Glassdoor: fixed โ now returns real results again.
Backported three open upstream patches from speedyapply/JobSpy
(PR #347, PR #350) that had not yet been merged into the pinned
python-jobspy==1.1.82:
- ๐ฉน CSRF token URL: the old bootstrap URL (
/Job/computer-science-jobs.htm) began returning HTTP 403 after Glassdoor's Next.js migration, so the session was initialized without a valid token โ every Glassdoor search silently returned 0 results. Switched to/Job/index.htm, which returns 200 and the token parses cleanly. - ๐ฉน Location URL-encoding: location strings with commas or spaces (e.g.
"Nashville, TN","New York, NY") were interpolated raw into the location lookup URL, triggering HTTP 400"location not parsed". Now wrapped withurllib.parse.quote. - ๐ฉน Non-fatal GraphQL errors: Glassdoor's
/graphendpoint often returns peripheral errors on SEO-only fields (jobsPageSeoData) alongside fully populateddata.jobListings. Upstream treated anyerrorsfield as fatal and dropped all the good data. Now we only fail when corejobListingsdata is actually missing.
Verified locally before deploy: Nashville, TN + "software engineer" โ 10 real jobs returned (Deloitte, KPMG, PwC, Amazon, etc.). Full regression on Indeed / LinkedIn / combined runs passed.
v1.0.x (pre-fix)
- BDJobs
user_agentkwarg compatibility shim (still active). - Multi-site concurrent scraping across 8 boards.
- Rich salary, company, and filter support.