Collector

Indeed Jobs scraper

Every employer advertising against a search on Indeed — role, company, their rating and review count, location, salary range, job type and how recently it was posted, a row per opening, with no account and no browser.

On this page

What it collects

jobsProxy advised

Every employer advertising against a search on Indeed — role, company, their rating and review count, location, salary range, job type and how recently it was posted, a row per opening, with no account and no browser. It is a scraper, which means the whole contract is: fill in the form, and one table comes back. No browser window opens, it costs none of your plan's automation slots, and the requests go out over plain HTTP carrying a real browser's TLS fingerprint.

At volume this target is sensitive to where the request leaves from, so pick a proxy on the run — it is advice at the form rather than a gate, and a run without one still starts. Whichever way it went, every row records it — see the provenance columns below.

What you give it — 10

The form the app draws, read out of the card itself. Each hint below is the one shown beside that field in the run dialog, so nothing here is a description of the product written separately from it.

The one answer it needs

searches
Searches · list · required

One search per line, exactly what you would type into Indeed. Each costs its own walk, and the rows are pooled and de-duplicated on the job key, so two overlapping searches do not double a job.

Everything else is optional

location
Where · text

A town, a city or a postcode, as Indeed’s own "where" box takes it. Leave it empty to search the whole country.

country
Country · select

Indeed runs a separate site per country and each searches its own market. This picks the site, and with it the language the listings come back in.

resultsLimit
Results per search · number

Rounded up to whole pages of 10. The walk stops early on its own when a page brings nothing new, so a search with forty results costs four requests and not the number asked for.

minSalary
Minimum salary · number

Matched against the top of the advertised range, in the site’s own currency. Most listings quote no salary at all and fail this — a job with no pay quoted is not a job paying zero.

minRating
Minimum company rating · number

Out of five, from Indeed’s own employee reviews.

companies
Company contains · list

Keeps a row only when the employer’s name contains one of these.

jobTypes
Job type contains · list

Matched against Indeed’s own words. Most listings do not state a type, and this filter drops them.

hideExpired
Hide closed listings · boolean

Indeed keeps returning some listings after they close.

onlyUrgent
Urgently hiring only · boolean

Keeps only the roles Indeed badges as urgent.

What comes back — 27 columns

One dataset per run — a typed table your workspace owns, which you can then sort, filter, edit in the grid, export whole, or read back over the local API. These are the columns it is created with.

6 columns are marked may be empty. That is a fact about the record rather than about the collector — a post with nowhere tagged, an account with no business category — and it is said out loud so a blank cell does not read as a broken scraper. A column the reply never carries at all is deleted upstream rather than shipped empty, so nothing here is decoration.

23 from Indeed Jobs

KeyColumnType
titleRoletext
companyCompanytext
companyRatingRatingnumber
companyReviewCountReviewsnumber
locationLocationtext
cityCitytext
regionRegiontext
postcodePostcodemay be emptytext
remoteWorkRemotemay be emptytext
jobTypesJob typemay be emptytext
salaryMinSalary frommay be emptynumber
salaryMaxSalary tomay be emptynumber
salaryPeriodSalary periodmay be emptytext
postedPostedtext
easyApplyEasy applyselect
urgentlyHiringUrgentselect
sponsoredSponsoredselect
featuredEmployerFeaturedselect
expiredExpiredselect
jobUrlJob pageurl
companyPageCompany on Indeedurl
jobkeyJob keytext
searchTermSearchtext

4 that every scraper writes

The same four on every card, so a table can still answer months later how its rows got there: which service they came from, when, which profile's identity the requests carried, and whether that identity was signed in.

KeyColumnType
platformPlatformtext
collected_atCollected atdatetime
profileCollected byprofile
logged_inSigned inselect

Four ways to run it

The Scrapers tab. Pick the card, fill in the form, press Start. Every run started here makes a new table, named after what you searched for and when. Check first if you like — it collects one page, writes nothing, and reports which columns came back filled.

Ask the assistant. It has the whole catalogue, so this card is a sentence rather than a form. It fills in the parameters above from what you said and shows you them before it starts.

Over MCP or the local API. The same card, from a coding agent — argus_run_scraper over the MCP server, or POST http://127.0.0.1:39219/v1/scrapers/run on the local API. There is a sample call beside it that writes nothing.

argus_run_scraper — Indeed Jobs
{
  "kind": "indeed_jobs",
  "inputs": {
    "searches": [
      "…"
    ]
  }
}

As a step inside a workflow. The Run scraper step puts this collector in the middle of an automation — collect, then filter, then mail — and the tree still opens no window doing it. It is also the one caller that can overrule the table-per-run rule: pointed at a table you name, it creates that table with the columns above if it is missing and files every run into it after, appending or updating the row in place on a column you match on. The step hands the next one the table's name, its id and the row count.

Where it stops

It will not drive a page. Anything that needs a real browser — a site with no list endpoint behind it, or anything operating an account of your own — is an automation instead, and that is a different tool rather than a worse version of this one.

It signs in to nothing. Reading a public page signed out is the settled position — Bright Data scraped Meta signed out and won; hiQ scraped LinkedIn signed in and lost — so this card asks for no account and holds none.

Others that collect the same kind of thing

Different services, the same shape of table at the end of it.