Indeed Jobs Scraper avatar

Indeed Jobs Scraper

Under maintenance

Pricing

from $1.00 / 1,000 job results

Go to Apify Store
Indeed Jobs Scraper

Indeed Jobs Scraper

Under maintenance

HTTP-only Indeed scraper for clean job data, external apply URLs, salary normalization, skills extraction, company enrichment, delta monitoring, and run quality reports.

Pricing

from $1.00 / 1,000 job results

Rating

0.0

(0)

Developer

Blynx

Blynx

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

๐Ÿ’ผ Indeed Jobs Intelligence Scraper

HTTP-only Indeed scraper for jobs, contacts, salaries, company profiles, apply links, and hiring intelligence.
Search Indeed by keyword and location, or enrich known Indeed job URLs with deep detail data.

Turn searches like "software engineer in New York", "remote customer support", or direct Indeed job URLs into clean job records you can export to CSV, Excel, Google Sheets, CRMs, dashboards, or your own API.


๐Ÿš€ What It Does

This actor is more than a basic job-listing scraper. It is built to produce useful recruiting and market-intelligence data:

  • ๐Ÿ”Ž Search Indeed jobs by keyword, location, country, radius, date posted, job type, remote filter, and sort order
  • ๐Ÿ“„ Scrape full job detail pages with description text, HTML, requirements, benefits, schedule, salary, and apply links
  • ๐Ÿ“ฌ Extract contacts from job descriptions: emails, phone numbers, and normalized phone contacts
  • ๐Ÿข Enrich company profiles from Indeed company pages: rating, size, revenue, industry, founded year, links, logo, description, and addresses when available
  • ๐Ÿ’ฐ Normalize salaries into min/max, currency, unit, and annualized values
  • ๐Ÿง  Extract skills from job descriptions and attributes using rule-based dictionaries
  • ๐Ÿ”— Resolve apply links and detect ATS/provider names such as Workday, Greenhouse, Lever, SmartRecruiters, Taleo, iCIMS, Indeed Apply, and company sites
  • ๐Ÿ“Š Create company-level datasets with open jobs, top roles, locations, remote share, salary averages, and top skills
  • ๐Ÿ” Track job changes between runs with delta monitoring
  • ๐Ÿงน Keep output clean with compact rows by default, or use a full stable schema for integrations

๐Ÿงญ Three Ways To Run It

ModeUse it whenOutput
SEARCHYou want to find jobs by query and locationJob cards, optionally enriched with detail pages
DETAILYou already have Indeed job URLs or job IDsDeep job records from known jobs
AUTOYou want the actor to decide based on your inputSearch if queries exist, detail if only URLs/job IDs exist

๐Ÿ’ก Pro tip: use SEARCH + fast + compact for cheap tests. Use DETAIL + full + compact when you want the best contact and description extraction.


๐Ÿ“ฅ Input Examples

Quick smoke test

{
"mode": "SEARCH",
"country": "us",
"queries": ["python developer"],
"locations": ["New York, NY"],
"maxResults": 10,
"maxPagesPerSearch": 1,
"postedWithinDays": "7",
"sort": "date",
"enrichmentMode": "fast",
"outputMode": "compact"
}

Deep job intelligence

{
"mode": "SEARCH",
"country": "us",
"queries": ["software engineer"],
"locations": ["Remote"],
"maxResults": 25,
"maxPagesPerSearch": 3,
"postedWithinDays": "14",
"sort": "date",
"enrichmentMode": "full",
"outputMode": "compact",
"resolveApplyUrls": true,
"enrichCompanyProfiles": true,
"normalizeSalary": true,
"extractSkills": true
}

Contact extraction from known job URLs

{
"mode": "DETAIL",
"country": "us",
"startUrls": [
{ "url": "https://www.indeed.com/viewjob?jk=de07417d37bb4b34" }
],
"queries": [],
"locations": [],
"maxResults": 10,
"enrichmentMode": "full",
"outputMode": "compact"
}

Stable schema for dashboards and automations

{
"mode": "DETAIL",
"country": "us",
"jobIds": ["de07417d37bb4b34"],
"enrichmentMode": "full",
"outputMode": "full",
"resolveApplyUrls": true,
"enrichCompanyProfiles": true
}

๐ŸŽ›๏ธ Input Fields

FieldWhat it means
modeAUTO, SEARCH, or DETAIL.
countryIndeed country/domain: us, gb, ca, au, de, fr, nl, es, it, br, in, sg, za.
queriesJob titles or keywords, for example data analyst, nurse, software engineer.
locationsCities, states, countries, or Remote. Each query is combined with each location.
startUrlsIndeed search URLs or direct job detail URLs.
jobIdsIndeed job keys such as de07417d37bb4b34.
maxResultsMaximum job rows saved to the default dataset.
maxPagesPerSearchPagination limit per query/location or search URL.
postedWithinDaysDate filter: 1, 3, 7, 14, 30, or empty.
jobTypefulltime, parttime, contract, temporary, internship, commission, or empty.
remoteremote, hybrid, on_site, or empty.
radiusSearch radius in miles.
sortrelevance or date.
enrichmentModefast for search cards only, full for detail-page enrichment.
resolveApplyUrlsFollows apply redirects and detects final apply destinations.
enrichCompanyProfilesFetches Indeed company pages for company intelligence.
normalizeSalaryParses salary text into structured salary fields.
extractSkillsExtracts skills from job descriptions and attributes.
enableDeltaMonitoringTracks new, updated, reposted, and expired jobs between runs.
outputModecompact for clean rows, full for stable integration columns.
candidateProfileOptional skill/salary profile for basic candidate-fit scoring.
proxyConfigurationApify proxy settings. Residential proxy is recommended.

๐Ÿ“ค Output

The default dataset contains one item per job.

Clean compact output

outputMode: "compact" is the default. It removes empty fields, so users do not see a table full of null, [], and {}.

Full stable output

outputMode: "full" keeps every declared field in every item. This is best for integrations, BI tools, and data warehouses.


๐Ÿงพ Sample Output

{
"type": "job",
"jobKey": "de07417d37bb4b34",
"title": "Call Center/Customer Service Executive (Phone Support)",
"companyName": "Trigyn",
"companyUrl": "https://www.indeed.com/cmp/Trigyn-Technologies",
"companyLogo": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/...",
"companyIndustry": "Human Resources & Staffing",
"companyNumEmployees": "1001 to 5,000",
"companyRevenue": "$25M to $100M (USD)",
"companyFounded": { "year": 1999 },
"rating": { "rating": 3.7, "count": 65 },
"location": "Queens, NY",
"locationData": {
"city": "Queens",
"formattedAddressLong": "Queens, NY",
"formattedAddressShort": "Queens, NY",
"fullAddress": "Queens, NY"
},
"descriptionSnippet": "Job Description: Call Center/Customer Service Executive...",
"descriptionText": "Full job description text...",
"descriptionHtml": "<div id=\"jobDescriptionText\">...</div>",
"emails": ["recruiterks@trigyn.com"],
"phones": ["732-876-7623"],
"contacts": [
{ "type": "email", "value": "recruiterks@trigyn.com" },
{ "type": "phone", "value": "732-876-7623", "normalized": "7328767623" }
],
"hiringDemand": {
"isHighVolumeHiring": false,
"isUrgentHire": true
},
"applyUrl": "https://www.indeed.com/applystart?jk=de07417d37bb4b34",
"finalApplyUrl": "https://www.trigyn.com/careers/...",
"atsProvider": "Company Site",
"applyUrlStatus": "resolved",
"extractedSkills": {
"all": ["customer service", "communication"]
},
"candidateFit": {
"matchScore": 50,
"matchedSkills": ["customer service"],
"missingSkills": ["python"],
"salaryFit": null
},
"jobUrl": "https://www.indeed.com/viewjob?jk=de07417d37bb4b34",
"canonicalUrl": "https://www.indeed.com/viewjob?jk=de07417d37bb4b34",
"sourceUrl": "https://www.indeed.com/viewjob?jk=de07417d37bb4b34",
"source": "Trigyn",
"locale": "us",
"language": "en"
}

๐Ÿ“Œ Main Output Fields

๐Ÿ’ผ Job fields

  • jobKey
  • title
  • companyName
  • location
  • locationData
  • remoteType
  • isRemote
  • datePosted
  • datePublished
  • validThrough
  • postedToday
  • age
  • expired
  • employmentType
  • jobType
  • occupation
  • requirements
  • attributes
  • benefits
  • shifts
  • shiftAndSchedule
  • workingSystem

๐Ÿ“ฌ Contact fields

  • emails
  • phones
  • contacts

Contacts are extracted from the job description. If the employer does not publish an email or phone number, the actor will not invent one.

๐Ÿ’ฐ Salary fields

  • salaryText
  • salaryRaw
  • salaryCurrency
  • salaryUnit
  • salaryMin
  • salaryMax
  • salaryAnnualMin
  • salaryAnnualMax
  • salaryConfidence
  • baseSalary

๐Ÿข Company fields

  • companyUrl
  • companyLogo
  • companyLogoUrl
  • companyHeaderUrl
  • companyBriefDescription
  • companyDescription
  • companyIndustry
  • companyNumEmployees
  • companyRevenue
  • companyFounded
  • companyLinks
  • companyCeo
  • companyAddresses
  • rating

companyHeaderUrl appears only when Indeed exposes a real company banner/header image. Many company pages only provide a logo.

๐Ÿ”— Apply fields

  • applyUrl
  • externalApplyUrl
  • finalApplyUrl
  • atsProvider
  • applyUrlStatus

Common applyUrlStatus values:

  • external
  • resolved
  • available
  • indeed_apply_page
  • indeed_apply_no_external_url
  • not_found

๐Ÿ“Š Extra Datasets

companies

Company-level hiring summary:

  • companyName
  • openJobsCount
  • topRoles
  • topLocations
  • avgSalaryAnnual
  • remoteShare
  • urgentHiringCount
  • topSkills
  • sampleJobUrls

changes

Delta monitoring output when enableDeltaMonitoring is enabled:

  • new
  • updated
  • unchanged
  • reposted
  • expired

errors

Blocked pages, failed detail URLs, and fetch diagnostics. The default dataset stays clean and contains job rows only.

summary

Run quality report with scraped count, company count, missing salary/apply rates, retry stats, and runtime.


๐Ÿ›ก๏ธ Reliability Notes

  • HTTP-only actor: no Playwright, Puppeteer, Selenium, or browser runtime in production runs.
  • Residential proxy recommended: Indeed can block low-trust IPs.
  • Contacts depend on the job text: many jobs do not publish emails or phone numbers.
  • Company fields vary: Indeed does not expose every company field on every company page.
  • Apply links vary: some jobs stay inside Indeed Apply and do not expose an external ATS URL.
  • Delta monitoring writes state: keep it off for random tests.

Recommended proxy for US runs:

{
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}

๐Ÿ’ก Best Settings

Cheap first test

{
"enrichmentMode": "fast",
"outputMode": "compact",
"maxResults": 10,
"maxPagesPerSearch": 1,
"resolveApplyUrls": false,
"enrichCompanyProfiles": false
}

Best data quality

{
"enrichmentMode": "full",
"outputMode": "compact",
"resolveApplyUrls": true,
"enrichCompanyProfiles": true,
"normalizeSalary": true,
"extractSkills": true
}

Best contact extraction

{
"mode": "DETAIL",
"startUrls": [
{ "url": "https://www.indeed.com/viewjob?jk=de07417d37bb4b34" }
],
"enrichmentMode": "full",
"outputMode": "compact"
}

๐Ÿ’ผ Use Cases

  • Recruiting lead generation
  • Job board monitoring
  • Salary benchmarking
  • Labor market analysis
  • Competitor hiring research
  • ATS destination discovery
  • Company hiring intelligence
  • Contact extraction from public job posts
  • CRM and spreadsheet enrichment
  • Delta monitoring for changing job markets

โ“ FAQ

Can it extract emails and phone numbers?
Yes, when they are publicly written in the job description. The actor outputs emails, phones, and typed contacts.

Why are some contacts missing?
Indeed job posts often do not include direct recruiter contacts. The actor does not guess or fabricate contacts.

Why is companyHeaderUrl empty?
Many Indeed company pages only have a logo. A header URL is returned only when Indeed exposes a real company banner image.

What is the best mode for clean user output?
Use outputMode: "compact".

What is the best mode for integrations?
Use outputMode: "full" to keep stable columns.

Does it use a browser?
No. Production scraping is HTTP-only.

Can it track changes?
Yes. Enable enableDeltaMonitoring to compare jobs against the previous run.


Feature requests and issues

Need a new field, a different output format, or a workflow this actor does not cover yet? Found a bug or an Indeed response that does not parse correctly? Open an issue on the actor page in Apify Console and include the run ID, your input, what you expected, and a short example of the data you need. Clear reports help prioritize fixes and new features faster.


๐Ÿท๏ธ Tags

indeed scraper ยท indeed jobs scraper ยท job scraper ยท recruiting leads ยท job contacts ยท salary data ยท ats detection ยท job market analytics ยท company hiring intelligence ยท apify indeed


๐Ÿ”Ž Built for Apify | HTTP-only Indeed scraping | Contacts | Salaries | Company profiles | Apply links | Delta monitoring