Recruiting teams
Role research
Compare job titles, salary phrases, hiring companies, and locations before opening a new search or rewriting a role description.
Limited Time — Lifetime Access for just $99. Lock in before prices rise.
This Indeed job scraper collects keyword-based Indeed search results and exports them to CSV for recruiting research, hiring-market monitoring, and job-board analysis. Import the workflow into the UScraper local desktop app, edit the keyword or location in the search URL, and export job title, company, salary, location, dates, descriptions, ratings, and apply links without building a custom Indeed data extractor.
CSV file
20
Next page loop
Keyword URL
Free import
At a glance
This template starts from a normal Indeed search URL, with the default query set to web developer. Change the q parameter for a role, skill, or title, and update l for a city, state, country, or remote-market search. The workflow is designed for controlled exports where analysts want a row-level spreadsheet instead of screenshots or manual copy-paste.
The automation path is intentionally reviewable: Navigate -> wait and settle -> inject a normalization script -> wait for structured rows -> export CSV -> check Next Page -> click and loop. The JavaScript block reads accessible job cards, builds hidden data attributes for each output field, and lets Structured Export write those fields into indeed-job-scraper-by-keywords.csv.
Spreadsheet-ready recruiting data
Export job search results with consistent headers for titles, companies, locations, salaries, job types, descriptions, dates, ratings, and application URLs.
Pagination is already wired
The graph checks for an enabled Next Page control, clicks it when present, waits for the new page, and loops until Indeed stops offering more result pages.
Local desktop execution
The stock workflow writes to your configured local folder and does not send the CSV through a hosted scraping actor or marketplace runtime.
Blocked sessions stay visible
If the page shows additional verification, the export includes marked fallback sample rows instead of pretending that a blocked page is a real job result.
Who this is for
Recruiting teams
Role research
Compare job titles, salary phrases, hiring companies, and locations before opening a new search or rewriting a role description.
Labor-market analysts
Market snapshots
Build repeatable exports for approved keywords, then group openings by company, geography, job type, or posting freshness.
Agencies
Client reporting
Keep structured evidence for hiring trends while separating collection from legal review, data retention, and downstream enrichment.
For adjacent job-board workflows, pair this template with the Indeed Job Scraper by URL, Google Jobs Scraper, LinkedIn Job Details Page Scraper, or the US Job Search Aggregator. Browse the template library when you need follow-up enrichment after collecting job URLs.
How to use
Edit the search URL
Open Navigate and replace q=web%20developer and l= with the keyword and location your team is allowed to collect.
Confirm the save folder
Structured Export writes indeed-job-scraper-by-keywords.csv with headers enabled and append mode on. Change the path before client or project-specific runs.
Run the pagination loop
UScraper opens the page, waits for load, pauses briefly, normalizes result cards, exports rows, then clicks Next Page when available.
Audit the CSV
Review row counts, filter fallback rows, and spot-check job URLs before using the dataset in sourcing sheets, dashboards, or reports.
Output preview
The export mirrors the workflow definition and keeps one row per job card. When a blocked environment prevents live results, the fallback rows are deliberately marked in Total_Result and Full_Description so analysts do not confuse sample data with a successful scrape.
| Job_Title | Company_Name | Salary | Location | Job_Type | Posted_Date | Apply_Link |
|---|---|---|---|---|---|---|
| Web Developer - AI Trainer | DataAnnotation | From $40 an hour | Oakland, CA | Contract | 2025-05-06T11:55:06.865Z | https://www.indeed.com/viewjob?jk=282cd08f13ff1c00 |
| UI/UX Developer - AI Trainer | DataAnnotation | From $40 an hour | Remote | Contract | 2024-11-26T15:56:00.272Z | https://www.indeed.com/viewjob?jk=4e2952b99b909b71 |
| NO_INDEED_JOB_ROWS_FOUND | current search URL |
indeed-job-scraper-by-keywords.csvColumn
Search_Term
The q parameter from the current Indeed search URL.
Column
Search_Location
The l parameter from the current Indeed search URL.
Column
Job_Title
Cleaned title from the visible job card.
Column
Job_URL
Indeed job URL or viewjob URL rebuilt from the job ID.
Column
Salary
Salary phrase detected in the listing text.
Column
Company_Name
Employer name from the job card.
Column
Company_Rating
Rating value when Indeed exposes it.
Column
Full_Description
Listing snippet or diagnostic fallback text.
Comparison
This UScraper template
Local CSVHosted scraper actors
CloudRuns in your local desktop app
Useful when query lists and CSV files should stay under your control.
Runs on vendor infrastructure
Convenient for managed scale, but data passes through a third party.
Editable Indeed search URL
Change keyword and location directly in the Navigate block.
Actor or API parameters
Usually requires platform-specific configuration and billing.
Fallback rows in the CSV
Blocked or empty sessions are visible in the exported file.
Remote logs and retries
More automation support, but diagnostics may live outside the dataset.
Indeed job listings may be publicly visible, but automated collection can still be limited by Indeed terms, robots directives, privacy law, copyright, and how you reuse job-posting text. Keep volume modest, do not bypass access controls, and get legal review before republishing, reselling, enriching, or training models on exported job data.
Before you scale
Keep these guardrails visible
Use modest keyword batches
Keep the built-in waits, avoid aggressive parallel loops, and pause when verification appears repeatedly. A challenge page is a signal to review access, not to force more retries.
Indeed layouts can change
If titles, salaries, companies, or descriptions go blank across several rows, inspect a fresh result page and update the normalization script or export columns before trusting the next batch.
Local export is not reuse permission
Treat the CSV as a research file. Review Indeed policies, privacy obligations, and internal retention rules before sharing, enriching, or commercializing scraped job posting data.
Download and use this template instantly
UScraper templates are open source. Improve this workflow or contribute a new one to help the community grow.
Contribute on GitHubBrowse more templates in the library
All TemplatesHere are some of our most common questions. Can't find what you're looking for?
View All FAQsDownload UScraper and build your first web scraper in under 10 minutes. No subscriptions, no code, no limits.
Available on Windows 10+ and macOS 12+ · Need help? [email protected]