Jobs Scraper: Indeed, LinkedIn & Glassdoor Jobs API
Pricing
from $3.00 / 1,000 job results
Jobs Scraper: Indeed, LinkedIn & Glassdoor Jobs API
Search Indeed, LinkedIn and Glassdoor in one run. Title, company, location, salary, full description, apply URL. Only-new mode for schedules. Export JSON, CSV, Excel, API or MCP.
Pricing
from $3.00 / 1,000 job results
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
1
Bookmarked
469
Total users
15
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Search Indeed, LinkedIn and Glassdoor in one run and get one clean list of jobs: title, company, location, salary, full description, apply link, posting date and the board it came from. Duplicates across boards are removed, and a scheduled run can return only the jobs that are new since last time. No login, no cookies, no browser: results come back in minutes, not hours.
What you get
| Data | Indeed | Glassdoor | |
|---|---|---|---|
| Title, company, location, apply link | yes | yes | yes |
| Posted date | yes | yes | approximate (days) |
| Salary | when listed | when listed | when listed |
| Full description | yes | yes | short snippet only |
| Applicants, seniority, company size, industry | - | yes | company rating |
| Remote flag, job type | yes | yes | remote flag |
Every row has description_status (full, snippet or unavailable), so you always know what you got. Missing data is empty, never filled with made-up text.
Cost
You pay per job returned (see the live Pricing tab for the exact price on your plan). Roughly $3 to $4 per 1,000 jobs. Turning off "Get full job descriptions" makes runs faster and lighter without changing the per-job price. Only-new mode never charges for jobs you already received.
Quick start
{"searchQuery": "data analyst","location": "Austin, TX","platforms": ["indeed", "linkedin", "glassdoor"],"maxResults": 100,"hoursOld": 168}
Several searches in one run:
{"queries": ["data analyst", "business analyst"],"locations": ["Austin, TX", "Remote"],"maxResults": 300,"excludeCompanies": ["staffing"]}
Run every morning and get only new postings:
{ "searchQuery": "python developer", "location": "United States", "hoursOld": 24, "onlyNew": true }
Input
| Field | Purpose |
|---|---|
searchQuery, queries | One job title or many (up to 20 title/place pairs per run) |
location, locations | City, state or country; many allowed |
platforms | indeed, linkedin, glassdoor (default all three) |
maxResults | 1 to 1000 jobs in total (free Apify plans: 25 per run) |
includeDescriptions | Full description lookup on LinkedIn and Indeed (default on) |
jobType, isRemote, hoursOld | Employment type, remote only, posted within X hours |
experienceLevel | LinkedIn seniority filter |
radius, country | Indeed search radius; country site for Indeed and Glassdoor |
includeCompanies, excludeCompanies | Keep or drop companies by name |
deduplicate | One row per job across boards (title + company + city) |
onlyNew, trackChanges | Skip jobs seen in an earlier run of the same search; mark new / updated / unchanged |
Output (one row per job)
job_id, job_title, company_name, location, is_remote, salary_min, salary_max, salary_currency, salary_period, salary_range, salary_source (employer or board estimate), job_type, seniority_level, description, description_status, skills, posted_date, apply_url, easy_apply, applicants, company_rating, company_reviews_count, company_size, company_industry, company_website, company_url, is_sponsored, platform, search_query, search_location, source_url, scraped_at, and change_status when tracking is on.
The run also saves an OUTPUT record with outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT or UPSTREAM_FAILED), per-board search counts, how many descriptions are full, and a plain-language agentSummary for AI agents.
Honest limits
- Indeed returns about 45 jobs per search view. To reach more, the Actor runs several views of the same search (newest first, most relevant, last day / 3 days / week / two weeks, job types, wider radius) and removes duplicates. A very narrow search can therefore return fewer jobs than you asked for; the run says so.
- Glassdoor returns about 30 jobs per search and a short snippet instead of the full description. City searches work for about 40 major US cities and country-wide searches work everywhere; other places are skipped on Glassdoor and the run reports it.
- Company filters (
includeCompanies) are applied to the first 5 LinkedIn result pages and to Indeed's result views, so rarely-hiring companies can be missed; use specific job titles for better matches. - If one board is blocked or runs out, the others fill the requested number. If every board fails, the run ends as failed with no charge.
- Public listings only. You are responsible for using the data in line with the job boards' terms and local law (including privacy rules for any personal data in a listing).
Use it from AI agents and tools
Works through the Apify API, SDKs, schedules, webhooks and the Apify MCP server. Example agent prompt: "Find 50 new remote data analyst jobs posted in the last 24 hours on Indeed and LinkedIn and summarise the top companies."
FAQ
Why is a description empty? The board did not show one for that listing. Check description_status.
Why fewer jobs than maxResults? The boards ran out of matching jobs for your filters (the run message tells you). Try a wider location or more job titles.
Can I run it daily? Yes. Use onlyNew with a schedule; the state is kept per search.
Need one board only? See Indeed Jobs Scraper, Glassdoor Jobs Scraper or LinkedIn Jobs Scraper.
Other job sources? Google Jobs Scraper, ZipRecruiter Jobs Scraper, Foundit Jobs Scraper (India), LinkedIn Company Jobs Scraper.
What's new
- Version 2: rebuilt without a browser: much faster and cheaper to run; honest descriptions (
description_status); several titles and locations per run; only-new and change tracking; company and experience filters; Indeed radius; cross-board duplicates matched on title + company + city; free plans limited to 25 jobs per run.