Jobs Scraper avatar
Jobs Scraper

Pricing

from $8.00 / 1,000 results

Go to Apify Store
Jobs Scraper

Jobs Scraper

Developed by

Sachin Kumar Yadav

Sachin Kumar Yadav

Maintained by Community

Extract job listings across the web, enrich with full job details, and analyze salary data by title and company. Supports powerful queries, pagination, recency filters, and location granularity. Outputs clean JSON for CRMs, warehouses, and analytics.

0.0 (0)

Pricing

from $8.00 / 1,000 results

1

2

2

Last modified

2 days ago

Jobs Data Scraper 🚀 — Enterprise‑ready Job Listings & Salary Insights

Extract fresh job postings and salary intelligence at scale. Configure powerful queries, paginate reliably, and enrich with job details and salary insights — all in one Apify Actor.

  • Primary keywords: Jobs Data Scraper, Job Listings API, Job Search Scraper, Salary Data Scraper, Company Salary Insights
  • Related keywords: Job aggregation, job details API, estimated salary, company salary by title, job analytics, job market data, hiring intelligence, recruitment automation

Why use this Jobs Data Scraper? ✨

  • Unified coverage: Search jobs + fetch details + estimate salaries + analyze company salary bands.
  • Flexible filters: Location, posting recency, language, and more.
  • Scalable & resilient: Built for batching, retries, and high‑volume dataset writes.
  • Clean JSON: Outputs ready for CRMs, data warehouses, and analytics.

Endpoints Overview 🧭

EndpointPurposeTypical Use Cases
/searchSearch for jobs posted on public job sites across the web (largest aggregation). Extensive filtering support.Job market scans, competitive hiring analysis, candidate sourcing
/job-detailsGet all job details by job_id, including employer reviews, extra application links, similar job salary hints.Enrichment, application path analysis, employer research
/estimated-salaryGet salary/pay estimates for a job title around a location.Compensation benchmarking, offer calibration
/company-job-salaryGet salary/pay in a specific company per job title and optionally a location.Company pay bands, role-wise salary analysis

Tip: Run any combination of these in a single Actor run.


Input Configuration (Apify UI) ⚙️

Global inputs (affect multiple endpoints):

KeyTypeDefaultDescription
countrystringus2-letter country code (e.g., us, gb, in).
languagestringenLanguage code (e.g., en).
date_postedenumallRecency filter: all, today, 3days, week, month.

Run only what you need by toggling the endpoint-specific flags below.


1) /search — Job Search Across the Web 🔎

Search jobs from the largest public job aggregations with extensive filtering. Ideal for discovering roles by title, location keywords, and more.

  • Enable: Provide query (search runs when query is present)
  • Inputs:
KeyTypeDefaultDescription
querystringrequirede.g., marketing manager in new york via linkedin
pageinteger1Start page (1-based).
num_pagesinteger1Number of pages to fetch from page.
countrystringusCountry filter.
date_postedenumallall, today, 3days, week, month.
languagestringenLanguage filter.
  • Example input:
{
"query": "marketing manager in new york via linkedin",
"page": 1,
"num_pages": 1,
"country": "us",
"date_posted": "all",
"language": "en"
}
  • Example output item (fields vary by source):
{
"job_id": "-uNPnvjFRt1PgXtJAAAAAA==",
"job_title": "Market Manager, New York (Remote)",
"employer_name": "Weedmaps",
"job_publisher": "LinkedIn",
"job_apply_link": "https://www.linkedin.com/jobs/view/...",
"job_description": "...",
"job_is_remote": true,
"job_posted_at": "4 hours ago",
"job_location": "New York, NY",
"job_city": "New York",
"job_state": "New York",
"job_country": "US",
"job_min_salary": 99115,
"job_max_salary": 110950,
"job_salary_period": "YEAR"
}

2) /job-details — Deep Job Enrichment 🧩

Fetch complete job details by job_id. Includes all search fields plus enrichment such as employer reviews, alternative application links, and similar job salary estimates.

  • Enable: details_enabled: true
  • Inputs:
KeyTypeDefaultDescription
details_enabledbooleanfalseToggle job-details fetching.
details_job_idsarray[string][]One or more job IDs to enrich.
countrystringusCountry context when resolving details.
  • Example input:
{
"details_enabled": true,
"details_job_ids": ["-uNPnvjFRt1PgXtJAAAAAA=="],
"country": "us"
}
  • Output:
    • Array of enriched job objects; this Actor tags them with "_type": "job_details" to distinguish in the dataset.

3) /estimated-salary — Title & Location Based Salary 💸

Estimate salary for a given job title around a target location. Use it to calibrate offers or benchmark compensation quickly.

  • Enable: salary_enabled: true
  • Inputs:
KeyTypeDefaultDescription
salary_enabledbooleanfalseToggle estimated-salary.
salary_job_titlestringrequirede.g., marketing manager.
salary_locationstringrequirede.g., new york, ny.
years_of_experienceenumALLExperience band: ALL, LESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN, ABOVE_FIFTEEN.
salary_location_typeenumANYLocation type: ANY, CITY, STATE, COUNTRY.
  • Example input:
{
"salary_enabled": true,
"salary_job_title": "marketing manager",
"salary_location": "new york, ny",
"years_of_experience": "ONE_TO_THREE",
"salary_location_type": "CITY"
}
  • Output:
    • Salary estimate objects; this Actor tags them with "_type": "estimated_salary" and echoes job_title, location, years_of_experience, salary_location_type.

4) /company-job-salary — Company‑Specific Pay Bands 🏢💼

Analyze salary by job title within a specific company, optionally filtered by location. Great for employer-level pay transparency and role‑wise comparisons.

  • Enable: company_salary_enabled: true
  • Inputs:
KeyTypeDefaultDescription
company_salary_enabledbooleanfalseToggle company-job-salary.
company_salary_companystringrequiredCompany name (e.g., Google).
company_salary_job_titlestring""Optional job title filter.
company_salary_locationstring""Optional location filter (e.g., new york, ny).
company_salary_years_of_experienceenumALLExperience band: ALL, LESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN, ABOVE_FIFTEEN.
company_salary_location_typeenumANYLocation type: ANY, CITY, STATE, COUNTRY.
  • Example input:
{
"company_salary_enabled": true,
"company_salary_company": "Google",
"company_salary_job_title": "marketing manager",
"company_salary_location": "new york, ny",
"company_salary_years_of_experience": "FOUR_TO_SIX",
"company_salary_location_type": "CITY"
}
  • Output:
    • Company salary items; this Actor tags them with "_type": "company_job_salary" and echoes company, job_title (if any), location (if any), company_salary_years_of_experience, and company_salary_location_type.

Best Practices ✅

  • Start narrow: Test with num_pages: 1 to validate output shape and volume.
  • Use enrichment selectively: Run /search to collect job_ids, then /job-details only for those you need.
  • Normalize downstream: Dataset items come from different sources; keep a transformation step for your warehouse.
  • Respect quotas: If you run large details_job_ids lists or many salary lookups, batch thoughtfully.

Example Combined Run 🧪

{
"query": "marketing manager in new york via linkedin",
"page": 1,
"num_pages": 1,
"country": "us",
"date_posted": "week",
"language": "en",
"details_enabled": true,
"details_job_ids": ["-uNPnvjFRt1PgXtJAAAAAA=="],
"salary_enabled": true,
"salary_job_title": "marketing manager",
"salary_location": "new york, ny",
"salary_period": "YEAR",
"company_salary_enabled": true,
"company_salary_company": "Google",
"company_salary_job_title": "marketing manager",
"company_salary_location": "new york, ny",
"company_salary_period": "YEAR"
}

FAQs ❓

  • Where do results go?
    To the run’s default Apify dataset as JSON items. Each item may include a _type to identify the endpoint (e.g., job_details, estimated_salary, company_job_salary).

  • Can I run only one endpoint?
    Yes. Provide only the inputs for the endpoint(s) you want. For example, omit details_enabled if you only want /search.

  • How are salary estimates scoped?
    Controlled by years_of_experience / company_salary_years_of_experience (experience band) and salary_location_type / company_salary_location_type (location granularity).

  • How do I filter recent postings?
    Use date_posted: today, 3days, week, or month.

  • Which country and language are supported?
    Use ISO‑2 country codes (e.g., us, gb) and standard language codes (e.g., en). Availability of roles may vary by market.


Jobs Scraper Keywords & Hashtags 🔍

  • Keywords: job listings scraper, job postings API, job search data, job enrichment, employer reviews, job application links, salary scrape, compensation insights, HR analytics, recruitment data automation, linkedin job scraper, naukri job scraper, monster job scraper, glassdoor job scraper, remoteok job scraper, weworkremotely job scraper, toptal job scraper, freelancer job scraper, jobstreet job scraper, careerbuilder job scraper, workopolis job scraper, ziprecruiter job scraper, dice job scraper, shine job scraper, simplyhired job scraper, angel job scraper, hired job scraper
  • Hashtags:
    #JobScraper #JobsData #RecruitmentTech #HRAnalytics #SalaryInsights
    #HiringIntelligence #PeopleOps #Compensation #DataEngineering #Apify

Job Sites Aggregation 📊

indeed.com

linkedin.com

naukri.com

monster.com

glassdoor.com

rozee.pk

bayt.com

careerbuilder.com

workopolis.com

ziprecruiter.com

dice.com

jobstreet.com

shine.com

simplyhired.com

angel.co

hired.com

remoteok.com

weworkremotely.com

toptal.com

freelancer.com