Job Market Intelligence API
Pricing
Pay per usage
Go to Apify Store
Job Market Intelligence API
Scrape and analyze job listings from Indeed, LinkedIn, and Glassdoor. Get structured data on job titles, companies, salaries, skills, and location-based salary analysis.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Richard P
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Scrape and analyze job listings from Indeed, LinkedIn, and Glassdoor. Get structured data on job titles, companies, salaries, skills, and location-based salary analysis.
Features
- Multi-source search — Query Indeed, LinkedIn, and Glassdoor simultaneously
- Keyword & location filtering — Search by job title/keywords and location
- Salary parsing — Extract and normalize salary ranges (hourly, yearly, etc.) to yearly equivalents
- Skill extraction — Automatically detect ~150+ known skills in job titles and descriptions
- Deduplication — Remove duplicate listings by company + title + location
- Salary analysis — Compute averages, min/max, and breakdowns by location and keyword
- Configurable output — Control max results and enable/disable salary analysis
- Webhook support — Optional notification on run completion
Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | array[string] | ✅ | — | Job search keywords (e.g., ["software engineer"]) |
location | string | ❌ | — | Job location filter (e.g., "remote", "New York") |
sources | array[string] | ❌ | ["indeed","linkedin","glassdoor"] | Job boards to search |
maxResults | integer | ❌ | 20 | Max listings per source per keyword |
includeSalaryAnalysis | boolean | ❌ | true | Compute salary statistics in output |
webhookUrl | string | ❌ | — | URL for completion notification |
Example Input
{"keywords": ["software engineer", "data scientist"],"location": "remote","sources": ["indeed", "glassdoor"],"maxResults": 10,"includeSalaryAnalysis": true}
Output
Each job listing contains:
| Field | Type | Description |
|---|---|---|
timestamp | string | ISO 8601 timestamp of when the listing was scraped |
source | string | Origin job board (indeed, linkedin, glassdoor) |
title | string | Job title |
company | string | Employer name |
location | string | Job location |
salary | string | Raw salary text |
salaryMin | number | Minimum salary value |
salaryMax | number | Maximum salary value |
salaryType | string | Pay type (yearly, hourly, monthly, etc.) |
description | string | Job description snippet |
postingDate | string | Relative or absolute posting date |
url | string | Link to the original job listing |
skills | array[string] | Detected skills from title and description |
jobType | string | Employment type (e.g., Full-time) |
When includeSalaryAnalysis is enabled, a special analysis entry is appended with fields for salary statistics by keyword, location, and top skills.
Quick Start
# Install dependenciespython3 -m venv .venvsource .venv/bin/activatepip install -r requirements.txt# Run locallyAPIFY_ACTOR_PYTHON_VENV_PATH=.venv apify run --purge# Deploy to Apifyapify push# Run on Apify cloudapify call job-market-intel --input '{"keywords":["software engineer"],"location":"remote","sources":["indeed"],"maxResults":5}'
Notes
- Indeed — Scrapes public job search results. Works with standard HTTP requests.
- Glassdoor — Scrapes public job search results. Works with standard HTTP requests.
- LinkedIn — LinkedIn aggressively blocks automated HTTP scraping. Results may be limited or empty without using a browser-based crawler.
- Salary analysis normalizes all amounts to yearly equivalents for consistent comparison.
- Rate limiting and respectful scraping practices are implemented — delays vary by source.