Indeed Job Scraper | From $0.05/1k 💙 avatar

Indeed Job Scraper | From $0.05/1k 💙

Pricing

from $0.05 / 1,000 results

Go to Apify Store
Indeed Job Scraper | From $0.05/1k 💙

Indeed Job Scraper | From $0.05/1k 💙

⚡ From $0.05/1k 🩵 Scrape Indeed job listings by keyword, location, job type, remote preference, experience level, date posted, or job URL. Extract structured job data including titles, companies, salaries, full descriptions, skills, benefits, ratings, locations, posting dates etc

Pricing

from $0.05 / 1,000 results

Rating

0.0

(0)

Developer

Epic Scrapers

Epic Scrapers

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

16 days ago

Last modified

Share

Indeed Job Scraper — Extract Job Listings, Salaries, Company Data, and Full Descriptions

Scrape structured job listings from Indeed by keyword, location, job type, remote preference, experience level, date posted, or specific job URLs. Get clean data including job title, company name, salary text, full description, skills and benefits, location details, ratings, posting date, and direct job URLs.

This Actor is built for recruiters, labor-market analysts, sales teams, compensation consultants, job-board builders, and data teams that need fresh Indeed job data without manually copying listings one by one.

Why use this Indeed scraper?

Tired of manually checking job boards, copying job descriptions, or losing time cleaning messy listing data? This Actor turns Indeed search results into ready-to-use datasets you can export to JSON, CSV, Excel, Google Sheets, databases, dashboards, CRMs, or AI workflows.

It is especially useful when you need:

  • Fresh job postings for a role and location
  • Remote-only job datasets
  • Salary and compensation signals
  • Hiring activity by company or region
  • Full job descriptions for analysis or matching
  • Company ratings, logos, and employer profile links
  • Clean structured data instead of raw pages

Key benefits

BenefitWhat it means for you
Scrape up to 500 listings per runBuild useful job datasets quickly without collecting pages manually
Search by keyword and locationTrack hiring for any role, company, skill, city, state, or zip code
Filter by remote, job type, seniority, and posting ageSpend less time cleaning irrelevant results after export
Get full job descriptionsAnalyze requirements, skills, responsibilities, benefits, and hiring language
Extract salary information when availableCompare compensation ranges by title, market, and seniority
Optional company enrichmentAdd company profile URLs, logos, header images, ratings, and review counts
Scrape specific job URLsRevisit saved jobs or enrich curated lists of Indeed postings
Export from Apify in multiple formatsUse the results in spreadsheets, APIs, BI tools, databases, or automation workflows

Features explained with FAB

FeatureAdvantageBenefit
Keyword + location searchFinds listings matching a role, skill, company, city, state, or zip codeQuickly collect targeted hiring data for the exact market you care about
Automatic paginationContinues collecting results until your maxResults limit is reached or no more results are availableScrape hundreds of listings in one run without handling pages manually
Remote-only filterKeeps only remote or work-from-home listingsBuild focused remote job datasets without manual filtering
Employment type filterSupports full-time, part-time, contract, temporary, and internship filtersSegment job markets by work arrangement
Experience level filterSupports entry, mid, and senior level filteringCollect jobs that match a candidate profile or compensation band
Date posted filterLimits listings to jobs posted within the last N daysMonitor fresh openings and avoid stale job data
Full description extractionReturns plain-text job descriptionsFeed clean text into search indexes, AI models, resume matching, or market research
Salary parsingReturns salary text and classifies hourly/yearly/unknown where availableBenchmark compensation and identify listings with pay transparency
Structured location dataIncludes city, formatted address, postal code, latitude, and longitude when availableMap job demand and compare hiring by geography
Company enrichmentAdds employer profile links, logos, header images, and ratings when availableBuild richer company datasets for recruiting, sales, or research
Specific URL inputAccepts individual Indeed job URLsExtract details from hand-picked job pages as well as search results

Example output

{
"title": "Senior Software Engineer, Java (Triggers and Conditions)",
"isRemote": true,
"jobType": ["Full-time", "Remote"],
"companyName": "NinjaOne",
"companyUrl": "https://www.indeed.com/cmp/650ef5e57be81a50",
"companyLogoUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/...",
"companyHeaderUrl": null,
"rating": {
"rating": 4,
"count": 33
},
"location": {
"countryCode": null,
"country": null,
"city": "Remote",
"formattedAddressShort": "Remote",
"formattedAddressLong": "Remote",
"postalCode": null,
"latitude": 25,
"longitude": -40,
"streetAddress": null
},
"descriptionText": "About the Role\n\nAs a Senior Software Engineer, Java at NinjaOne...",
"attributes": [
"Computer science",
"Kotlin",
"Software engineering",
"Redis",
"Full-time",
"Remote",
"Health insurance",
"401(k)"
],
"salary": {
"salaryText": "$160,000 to $240,000 per year",
"salaryType": "yearly",
"salaryMax": null,
"salaryMin": null,
"salarySource": "EXTRACTION",
"salaryCurrency": "USD"
},
"age": "Just posted",
"postedToday": true,
"datePublished": "2026-07-03",
"expired": false,
"isSponsored": false,
"source": "NinjaOne",
"jobUrl": "https://www.indeed.com/viewjob?jk=1409aa910c380ae9",
"jobKey": "1409aa910c380ae9",
"language": "en",
"locale": "en_US"
}

Output fields

FieldDescription
titleJob title
isRemoteWhether the listing appears to be remote or work-from-home
jobTypeEmployment type labels such as Full-time, Part-time, Contract, Internship, or Remote
companyNameHiring company name
companyUrlIndeed company profile URL when available
companyLogoUrlCompany logo image URL when available
companyHeaderUrlCompany header/banner image URL when available
ratingEmployer rating and rating count when available
locationStructured location object with city, formatted address, postal code, latitude, longitude, and street address when available
descriptionTextFull plain-text job description
attributesSkills, benefits, seniority labels, work type labels, and other listing attributes
salarySalary text, salary type, currency, and salary metadata when available
ageHuman-readable posting age, such as Just posted or 3 days ago
postedTodayWhether the job appears to have been posted today
datePublishedPosting date in YYYY-MM-DD format when available
expiredWhether the listing is marked as expired
isSponsoredWhether the listing is marked as sponsored
sourceSource employer name from the listing
jobUrlDirect job URL
jobKeyIndeed job identifier
languageListing language code
localeListing locale code

Input options

InputTypeRequiredDefaultDescription
querystringYesJob title, keyword, skill, or company name. Example: software engineer, data scientist, Google
locationstringYesCity, state, country, or zip code. Example: San Francisco, CA, London, 94105
radiusintegerNo25Search radius from the selected location, from 0 to 200 miles
sortstringNoRELEVANCESort order. Use RELEVANCE for best matches or DATE for newest listings first
fromDaysintegerNo0Only include jobs posted within this many days. Use 0 for no date filter
maxResultsintegerNo10Maximum number of job listings to return, from 1 to 500
jobTypestringNoemptyFilter by fulltime, parttime, contract, temporary, or internship
remotestringNoemptyUse remote to return remote/work-from-home listings only
levelstringNoemptyFilter by entry_level, mid_level, or senior_level
urlsarrayNo[]Specific Indeed job detail URLs to scrape, such as https://www.indeed.com/viewjob?jk=...
searchCompanyInfobooleanNofalseFetch extra employer details such as company profile URL, logo, header image, rating, and review count when available

Input example

{
"query": "software engineer",
"location": "San Francisco, CA",
"radius": 25,
"sort": "DATE",
"fromDays": 7,
"maxResults": 50,
"jobType": "fulltime",
"remote": "remote",
"level": "senior_level",
"urls": [],
"searchCompanyInfo": true
}

Scrape specific job URLs

If you already have job links, add them to urls:

{
"query": "software engineer",
"location": "San Francisco, CA",
"maxResults": 10,
"urls": [
"https://www.indeed.com/viewjob?jk=1409aa910c380ae9"
]
}

The Actor can collect search results and URL-based results in the same run.

Set up scheduled runs

For monitoring use cases, you can schedule this Actor to run automatically instead of launching it manually each time.

Scheduled runs are useful when you want to:

  • Track new jobs posted every morning for a specific role and location
  • Monitor competitor hiring activity weekly
  • Build a rolling salary benchmark dataset
  • Send fresh hiring leads to a CRM or spreadsheet
  • Keep a job board or internal dashboard updated

Where to set up a schedule

In Apify Console, open the Actor or a saved Task, then create a schedule from the Schedules section. Choose how often it should run, attach the saved input, and Apify will start new runs automatically at the selected interval.

Recommended schedule examples:

GoalSuggested scheduleInput tip
Daily fresh job alertsOnce per daySet fromDays to 1 and sort by DATE
Weekly market trackingOnce per weekSet fromDays to 7 and use consistent query/location inputs
Competitor hiring monitoringDaily or weeklyUse the competitor name as query
Salary benchmarkingWeekly or monthlyUse role-specific queries and collect enough maxResults
Remote job trackingDailySet remote to remote

Each scheduled run creates a new Actor run with its own dataset. You can download the results from Apify Console, access them through the Apify API, or connect them to integrations and webhooks for automated workflows.

Common use cases

Job market research

Track hiring demand by role, city, seniority, and skill. Use title, datePublished, location, and attributes to identify which skills and roles are trending.

Salary benchmarking

Collect listings with compensation data and compare salary.salaryText, salary.salaryType, location, and seniority across markets.

Lead generation for recruiters and staffing agencies

Find companies that are actively hiring. Use companyName, companyUrl, rating, and recent posting dates to prioritize outreach.

Competitive hiring intelligence

Monitor which companies are hiring, where they are hiring, whether they are hiring remote roles, and which skills appear in their job descriptions.

Job board and aggregator enrichment

Use the clean output to populate job boards, candidate matching systems, search indexes, dashboards, or internal recruiting tools.

AI and NLP datasets

Use title, descriptionText, and attributes to train or evaluate job matching, skill extraction, classification, or labor-market models.

Why this Actor is different

  • Extracts detailed job data, not just titles and links
  • Includes full plain-text descriptions suitable for analysis and automation
  • Supports precise filters for remote work, employment type, seniority, posting age, and sorting
  • Supports specific job URLs as well as search-based scraping
  • Returns structured salary, location, rating, company, and attribute data when available
  • Offers optional company enrichment for richer employer profiles
  • Designed for fast setup: enter a query, location, and max result count, then run

FAQ

Does this Actor require an Indeed account?

No. You do not need an Indeed account, login, or API key to run this Actor.

Does it require any special setup?

No. Most users only need to enter a query, location, and max result count. The Actor is designed to run with sensible defaults.

Can it scrape all pages?

The Actor automatically paginates through available search results until it reaches your maxResults limit or runs out of available listings. The maximum configurable limit is 500 results per run.

Can I get only fresh jobs?

Yes. Set fromDays to a number such as 1, 7, or 30 to include only jobs posted within that many days.

Can I scrape remote jobs only?

Yes. Set remote to remote to keep only listings that appear to be remote or work-from-home.

Can I scrape a specific Indeed job page?

Yes. Add one or more job detail page URLs to the urls input. The URL should include a jk job identifier, for example https://www.indeed.com/viewjob?jk=....

Does it support international locations?

You can enter locations such as cities, regions, countries, or postal codes. Availability and reliability can vary by market.

Why are some salary fields null?

Not every Indeed listing publishes salary information. When salary text is available, the Actor returns it and classifies the type when possible. If the employer does not disclose salary, salary may be null.

Why are some company fields null?

Some listings do not expose full employer profile data. Enable searchCompanyInfo to fetch additional employer details where available, including company profile URL, logo, header image, rating, and review count.

How much does it cost?

Costs depend on your Apify plan, run time, selected memory, and number of results. To reduce cost, start with a smaller maxResults value and increase it once your input settings are confirmed.

What formats can I export?

Apify datasets can be exported as JSON, JSONL, CSV, Excel, XML, HTML, and RSS. You can also access results programmatically through the Apify API.

Get started

Enter a query, choose a location, set maxResults, and run the Actor. In a few moments, you will have a clean dataset of Indeed job listings ready for analysis, enrichment, monitoring, or integration into your workflow.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Indeed, Recruit Holdings, or any related company. All trademarks belong to their respective owners. Use responsibly and ensure your use complies with applicable laws and website terms.