# Indeed Jobs Scraper | 18 Fields, 17 Countries, No Login (`themineworks/indeed-scraper`) Actor

Scrape public Indeed job listings by keyword and location: title, company, location, salary, job type, posted date, description, apply URL. No login. Pay per job.

- **URL**: https://apify.com/themineworks/indeed-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Jobs, Lead generation, MCP servers
- **Features:** Limited permissions
- **Stats:** 102 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 job scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Indeed Jobs Scraper | 18 Fields, 17 Countries, No Login

[![45 Indeed jobs in 53 seconds](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/indeed-scraper-hero.png)](https://console.apify.com/actors/BCp0dozm9YCULgBfW/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with nearly 139,000 runs across our actors.

### Why choose this actor?

- **17 Indeed country sites from one input.** Switch `country` between the US, UK, Canada, India, Australia, Germany, France and 10 more; the same 18 fields come back for each. A recorded run returned **45 registered nurse jobs in Austin, Texas in 53 seconds**. No Indeed account and no login.
- **You pay only for jobs delivered, each job once.** Jobs are deduplicated by Indeed's job key before they are saved and charged. Blocked pages, retries, empty searches and the run's summary rows are never billed.
- **No proxy setup and no browser to manage.** Indeed blocks ordinary traffic with a PerimeterX check and a Cloudflare Turnstile challenge. The actor goes through Apify's UNBLOCKER proxy by default and reads Indeed's own job data from the page, so you do not buy residential proxies or run a browser.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/BCp0dozm9YCULgBfW/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Jobs and hiring family:** [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Shine.com Jobs Scraper](https://apify.com/themineworks/shine-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Internshala Scraper](https://apify.com/themineworks/internshala-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the JSON tab of the input page. It returns 10 jobs from the first page of results, usually in under a minute.

```json
{
  "query": "software engineer",
  "location": "New York",
  "country": "US",
  "maxResults": 10
}
```

The only input you must give is `query`: a job title, skill or keyword, the same thing you would type into Indeed's "What" box. `location` takes whatever Indeed's "Where" box takes on that country's site: a city, a state, a ZIP or postcode, or `Remote`. Leave it empty to search the whole country. `country` picks the Indeed site: US, GB, CA, IN, AU, DE, FR, NL, IE, SG, NZ, ES, IT, BR, MX, ZA or AE.

Apify's free plan includes $5 of credit every month, which covers about 1,000 jobs at this actor's price (Free tier $4.80 per 1,000 jobs, plus the $0.005 start fee on each run).

#### Copy to your AI assistant

```
themineworks/indeed-scraper on Apify. Searches Indeed job listings on 17 country sites by keyword and location and returns one row per job with title, company, location, salary text as shown, job type, remote flag, posting age and date, description snippet, company rating and review count, urgently hiring and sponsored flags, and the job URL. Call ApifyClient("TOKEN").actor("themineworks/indeed-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: query (string). Optional: location (string, empty = whole country), country (US default; GB, CA, IN, AU, DE, FR, NL, IE, SG, NZ, ES, IT, BR, MX, ZA, AE), maxResults (default 45, max 1000), proxy (defaults to Apify UNBLOCKER; leave it), monitorMode (true delivers only jobs not delivered by an earlier run with the same input). Rows with _type "summary" or "info" are run reports and are never billed. Full spec: GET https://api.apify.com/v2/acts/themineworks~indeed-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **18 fields per job**, including `salary` exactly as Indeed prints it, `job_type`, `remote`, `urgently_hiring`, `sponsored`, the company's Indeed rating and review count, a relative and an absolute posting date, and the `search_query` and `search_location` that produced the row.
- **17 country sites**: United States, United Kingdom, Canada, India, Australia, Germany, France, Netherlands, Ireland, Singapore, New Zealand, Spain, Italy, Brazil, Mexico, South Africa and United Arab Emirates. The actor uses the right Indeed domain for each (for example uk.indeed.com, in.indeed.com, de.indeed.com).
- **Up to 1,000 jobs per run** (default 45). The first results page is fetched on its own; deeper pages are requested a few at a time in parallel, with up to 3 attempts per page.
- **No browser.** Plain HTTP requests through Apify's UNBLOCKER proxy group, then the job list is read from the data object Indeed's own page uses to draw its job cards.
- **Stops instead of burning money.** After 3 blocked attempts in a row, or a page with no new jobs, the run ends and returns what it has. A built-in cost guard also stops a run whose proxy spend outruns what it is delivering.

### How to use it

#### Basic: one search, default size

```json
{
  "query": "registered nurse",
  "location": "Austin, TX",
  "country": "US"
}
```

Returns up to 45 jobs. In our recorded run this exact input returned 45 jobs from a single results page in 53 seconds.

#### Several searches at once

Each run takes one `query` and one `location`. To cover several roles or cities, start one run per search; Apify runs them in parallel. With the Python client:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
searches = [("data analyst", "London", "GB"), ("data analyst", "Manchester", "GB"), ("data analyst", "Bengaluru", "IN")]
for query, location, country in searches:
    run = client.actor("themineworks/indeed-scraper").call(
        run_input={"query": query, "location": location, "country": country, "maxResults": 45}
    )
    for job in client.dataset(run["defaultDatasetId"]).iterate_items():
        if "_type" not in job:
            print(job["title"], job["company"], job.get("salary"))
```

Each row carries `search_query` and `search_location`, so the merged results stay attributable. Several shallow searches usually return more jobs than one very deep search (see the FAQ on pagination).

#### Salary benchmarking across countries

```json
{
  "query": "data engineer",
  "location": "London",
  "country": "GB",
  "maxResults": 100
}
```

Run the same query for each country you care about and compare the `salary` text by `location`. In our UK sample, 14 of 15 customer service jobs showed a salary; in our India sample, 1 of 15 did, because most Indian listings on Indeed leave it out.

#### Staffing leads: who needs people right now

```json
{
  "query": "warehouse associate",
  "location": "Dallas, TX",
  "country": "US",
  "maxResults": 200
}
```

Filter on `urgently_hiring: true` for employers Indeed marks as hiring urgently, and group by `company` to see who has the most open roles. Schedule it weekly (for example `0 8 * * 1`) and compare the counts.

#### Remote roles for a jobs newsletter

```json
{
  "query": "customer success manager",
  "location": "Remote",
  "country": "US",
  "maxResults": 100
}
```

`location: "Remote"` is passed to Indeed exactly as typed. Check the `remote` flag on each row before publishing, since it comes from Indeed's own remote marker. Schedule it daily with `"monitorMode": true` and each run delivers only jobs you have not received before (see Run it on a schedule).

### Input parameters

| Parameter | Type | Default | What it does |
| --- | --- | --- | --- |
| `query` | string | required (form prefill: `software engineer`) | Job title, skill or keyword, as in Indeed's "What" box. |
| `location` | string | none (form prefill: `New York`) | City, state, ZIP or postcode, or `Remote`, as in Indeed's "Where" box. Leave empty for the whole country. |
| `country` | string | `US` | Which Indeed site to search: `US`, `GB`, `CA`, `IN`, `AU`, `DE`, `FR`, `NL`, `IE`, `SG`, `NZ`, `ES`, `IT`, `BR`, `MX`, `ZA` or `AE`. |
| `maxResults` | integer | `45` | Most jobs to return, up to 1,000. One results page gives roughly 15 to 45 jobs. |
| `proxy` | object | Apify `UNBLOCKER` group (form prefill; also used when the field is left out) | Indeed blocks datacenter and unproxied traffic, so leave this on UNBLOCKER. |
| `monitorMode` | boolean | `false` | Deliver only jobs not delivered by an earlier run with the same input. Skipped jobs are not charged. Made for daily schedules. |

"Form prefill" values fill the Console form for you but are not defaults: an API call that leaves `location` out searches the whole country.

### What data do you get?

One row per job. Fields Indeed does not show for a listing are left out of that row rather than filled with zeros.

**The job**: `job_id` (Indeed's job key), `job_url`, `title`, `job_type` (for example `Full-time`, or `Full-time, Part-time` when Indeed lists several), `remote`, `description` (the snippet Indeed shows in search results, as plain text), `urgently_hiring`, `sponsored`.

**Pay**: `salary`, kept exactly as Indeed shows it: an hourly or yearly range, "From £25,000 a year", "Up to £27,000 a year" or "$296 a day". It is text on purpose, so the unit is never lost; parse it yourself if you need numbers.

**The employer**: `company`, `company_rating` and `company_review_count` (Indeed's company reviews, when shown on the listing).

**Where and when**: `location` as Indeed formats it, `posted` (Indeed's relative wording such as "13 days ago" or "30+ days ago"), `posted_date` (an ISO date from Indeed's own posting timestamp).

**Run context**: `search_query`, `search_location`, `scraped_at`.

How often the optional fields appear depends on the country. In our samples, `salary` was on 21 of 45 US jobs, 14 of 15 UK jobs and 1 of 15 Indian jobs; `company_rating` was on 27 of 45, 8 of 15 and 13 of 15.

Each run also ends with a `_type: "summary"` row (jobs delivered, jobs charged, pages solved and blocked, requests made) and a `_type: "info"` row. Neither is a job and neither is ever charged. Skip rows that have a `_type` field when you load the data.

#### Stable fields for automations

These 14 fields were present in every job row we sampled (78 rows from US, Indian and UK searches):

| Field | What it holds |
| --- | --- |
| `job_id` | Indeed's job key, unique per posting and used for deduplication |
| `job_url` | Indeed job page on the country's domain |
| `title` | Job title |
| `company` | Employer name |
| `location` | Location as Indeed formats it |
| `remote` | `true` when Indeed marks the job remote |
| `posted` | Relative posting age as shown |
| `posted_date` | ISO date of posting |
| `description` | Search result snippet, plain text |
| `urgently_hiring` | Indeed's "Urgently hiring" flag |
| `sponsored` | `true` for sponsored listings |
| `search_query` | The `query` that produced the row |
| `search_location` | The `location` that produced the row |
| `scraped_at` | ISO timestamp of capture |

We will not rename these fields. New fields may be added; existing ones keep their names.

#### Output examples

Real rows from our own runs in September 2026, one per country site. Descriptions are Indeed's own search snippets.

United States (`registered nurse`, `Austin, TX`). Indeed returns related roles for a search, and sponsored listings can be old: this one was first posted in June 2025.

```json
{
  "job_id": "c32a618e269f1b58",
  "job_url": "https://www.indeed.com/viewjob?jk=c32a618e269f1b58",
  "title": "Overnight Emergency Veterinary and Critical Care Technician",
  "company": "Austin Veterinary Emergency and Specialty Center",
  "location": "Austin, TX 78730",
  "remote": false,
  "salary": "From $24 an hour",
  "job_type": "Full-time",
  "posted": "30+ days ago",
  "posted_date": "2025-06-10T05:00:00.000Z",
  "description": "This ER/CC technician will primarily be responsible for triaging and stabilizing incoming emergency patients and also helping care for inpatient cases for the…",
  "company_rating": 3.3,
  "company_review_count": 18,
  "urgently_hiring": false,
  "sponsored": true,
  "search_query": "registered nurse",
  "search_location": "Austin, TX",
  "scraped_at": "2026-09-29T23:06:09.918Z"
}
```

India (`data analyst`, `Bengaluru`, `country: "IN"`), with no salary shown:

```json
{
  "job_id": "db8108973f39cacb",
  "job_url": "https://in.indeed.com/viewjob?jk=db8108973f39cacb",
  "title": "Data Analyst",
  "company": "HSBC Global Services Limited",
  "location": "Bengaluru, Karnataka",
  "remote": false,
  "job_type": "Full-time",
  "posted": "13 days ago",
  "posted_date": "2026-09-09T05:00:00.000Z",
  "description": "Create analysis of data-driven product functionality. Use a range of data tools including Structured Query language (SQL) and python on Hadoop and Google cloud…",
  "company_rating": 4,
  "company_review_count": 16133,
  "urgently_hiring": false,
  "sponsored": false,
  "search_query": "data analyst",
  "search_location": "Bengaluru",
  "scraped_at": "2026-09-29T23:06:27.460Z"
}
```

United Kingdom (`customer service`, `Manchester`, `country: "GB"`). Indeed includes nearby towns, here Warrington:

```json
{
  "job_id": "bb262c527b4df9e8",
  "job_url": "https://uk.indeed.com/viewjob?jk=bb262c527b4df9e8",
  "title": "Customer Care Consultant",
  "company": "Millercare Ltd",
  "location": "Warrington WA1",
  "remote": false,
  "salary": "From £25,000 a year",
  "job_type": "Full-time",
  "posted": "30+ days ago",
  "posted_date": "2026-07-31T05:00:00.000Z",
  "description": "A full, clean driving licence and you're happy behind the wheel of a van. You'll be hands-on, out on assessments and deliveries as much as you're on the shop…",
  "company_rating": 3.4,
  "company_review_count": 29,
  "urgently_hiring": false,
  "sponsored": true,
  "search_query": "customer service",
  "search_location": "Manchester",
  "scraped_at": "2026-09-29T23:07:24.355Z"
}
```

The summary row that ends a run on Apify (trimmed; never charged):

```json
{
  "_type": "summary",
  "jobs_scraped": 3,
  "charged_for": 3,
  "pages_solved": 1,
  "pages_blocked": 0,
  "requests": 1,
  "delivered": 3,
  "scraped_at": "2026-09-01T21:10:13.088Z"
}
```

### Pricing

Pay per event: you pay for each job delivered to your dataset, plus a small start fee per run.

| Event | Free | Bronze | Silver | Gold and above |
| --- | --- | --- | --- | --- |
| `job-scraped`, per job | $0.0048 | $0.0041 | $0.0035 | $0.003 |
| `job-scraped`, per 1,000 jobs | $4.80 | $4.10 | $3.50 | $3.00 |
| `apify-actor-start`, per run | $0.005 per GB of run memory, minimum one event | same | same | same |

**The start fee, exactly.** Apify's `apify-actor-start` event is charged once when a run starts, at $0.005 for each GB of memory, with a minimum of one event. This actor runs on 512 MB by default, so a default run pays one event: $0.005. At 2 GB it would be $0.01.

**Worked examples on the Gold tier:** the default 45 job search costs $0.135 plus $0.005. 500 jobs cost $1.50 plus the start fee of each run you use. On the Free tier, 45 jobs cost $0.216 plus $0.005.

**Why the price is higher than a plain job board scraper:** every Indeed page goes through Apify's UNBLOCKER proxy, which is a metered service, and we pay for it, including the attempts Indeed blocks.

**Never charged:** blocked pages and retries, duplicate jobs (each job key is charged once per run), empty searches, and the `summary` and `info` rows. A run that finds no jobs pays only the start fee.

There is no scheduled price change for this actor. The Pricing tab on this page always shows the rate for your own plan; if it and this table ever differ, the Pricing tab is right.

### Run it on a schedule

Switch on `monitorMode` and the actor remembers which jobs it has delivered for this search. Each later run delivers only jobs you have not received before, and you pay only for those.

1. Fill in the input, tick **Monitor mode**, and save it as a task.
2. In Apify Console open **Schedules**, click **Add schedule**, and pick **Daily** (or a cron such as `0 6 * * *`).
3. Add the saved task to the schedule and click **Save**.

```json
{
  "query": "customer success manager",
  "location": "Remote",
  "country": "US",
  "maxResults": 100,
  "monitorMode": true
}
```

The first run delivers every job it finds. Each later run with the same input delivers only jobs whose `job_id` it has not delivered before, reading further pages when the first one holds nothing new. Skipped jobs are never charged; the start fee applies to every run as usual. The last row of each run (`_type: "info"`) gives `new_this_run`, `skipped_already_seen` and a scheduling tip. The history belongs to the search: change `query`, `location` or `country` and a new history starts; change `maxResults` and it carries on.

### FAQ

**What is Indeed?**
Indeed is one of the largest job sites in the world, with separate country sites (indeed.com, uk.indeed.com, in.indeed.com and so on) that list jobs posted directly by employers and pulled from company career pages and agencies. This actor reads the public search results on 17 of those sites.

**How many jobs can I get from one run?**
Up to 1,000, but the realistic number depends on how deep Indeed lets you page. The first results page gives roughly 15 to 45 jobs (45 in our US run, 15 in our Indian and UK runs). Deeper pages are much harder to get through Indeed's protection: in our September runs, page one solved every time and page two was blocked in both runs that needed it, so those runs ended at 15 jobs instead of the 20 requested. For big pulls, run many narrower searches (more cities, more job titles) instead of one very deep one.

**Why did I get fewer jobs than `maxResults`?**
Either the search had no more results, or Indeed blocked the next page three times in a row and the run stopped rather than keep paying for blocked attempts. You are charged only for the jobs delivered.

**How fresh is the data?**
Every run reads Indeed live. `posted` shows Indeed's own wording and `posted_date` gives a sortable date. Sponsored listings can stay up for months, so filter on `posted_date` if you want only new jobs.

**Do I need an Indeed account, cookies or an API key?**
No. The actor reads public search results with no login, and you never supply credentials.

**Which proxy does it use, and do I pay for it separately?**
Apify's UNBLOCKER proxy group, set by default. Its cost is included in the per-job price; you do not need a proxy plan of your own. Datacenter and residential proxies are blocked by Indeed, so leave the setting alone.

**Can I get the full job description?**
The `description` field is the snippet Indeed shows in search results, not the full job page. Open `job_url` for the full text.

**Why is `salary` text and not a number?**
Indeed publishes pay in many shapes (hourly and yearly ranges, "From", "Up to", per day) and often not at all, especially in India. Keeping the text avoids guessing the unit. Parse it in your own pipeline if you need numbers.

**Can I run it on a schedule?**
Yes. Save your input as a task in Apify Console, then add a schedule (Schedules, Create new, then a preset or a cron expression such as `0 6 * * *`). Each scheduled run returns the current listings. Set `monitorMode` to `true` and each run delivers, and charges, only jobs not delivered by an earlier run with the same input.

**How do I export the data?**
From the run's Storage tab as JSON, CSV, Excel, XML or HTML, or through the Apify API. Remove rows with a `_type` field to keep only jobs.

**Can I use it from Claude, ChatGPT or another AI assistant?**

- Connector URL: `https://mcp.apify.com/?tools=themineworks/indeed-scraper`.
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http indeed-scraper "https://mcp.apify.com/?tools=themineworks/indeed-scraper"`.

It is also one of the tools inside our [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) server, which bundles 14 India job tools.

**Is it legal to scrape Indeed?**
The actor collects only public job listings that anyone can see without logging in, and they describe employers and roles, not private individuals. You are responsible for how you use the data, including Indeed's terms and data protection laws such as GDPR and CCPA in the countries you search. This is general information, not legal advice.

### Integrations

- **Google Sheets:** export a run to a sheet, or append each scheduled run's jobs with Apify's Google Sheets integration.
- **Make, Zapier and n8n:** start runs and send new jobs to Slack, email, Airtable or your ATS with the Apify app or node.
- **Webhooks:** have Apify call your URL when a run finishes, then fetch the dataset.
- **API and client libraries:** Python and JavaScript clients, or plain HTTP, as in the recipes above.
- **MCP clients:** Claude, Cursor and other MCP clients through `https://mcp.apify.com`.

### More from The Mine Works

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Shine.com Jobs Scraper](https://apify.com/themineworks/shine-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Internshala Scraper](https://apify.com/themineworks/internshala-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instahyre Jobs Scraper](https://apify.com/themineworks/instahyre-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CutShort Jobs Scraper](https://apify.com/themineworks/cutshort-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Apna Jobs Scraper](https://apify.com/themineworks/apna-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Jobs Scraper](https://apify.com/themineworks/linkedin-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Recruiting & Jobs MCP](https://apify.com/themineworks/recruiting-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Career Site Jobs Scraper](https://apify.com/themineworks/ats-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [JustDial Scraper](https://apify.com/themineworks/justdial-business?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [data.gov.in Scraper](https://apify.com/themineworks/india-data-gov-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Carsales.com.au Scraper](https://apify.com/themineworks/carsales-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [World Bank Trade Scraper](https://apify.com/themineworks/global-trade-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [Tennis Match & Player Data Scraper](https://apify.com/themineworks/tennis-match-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Hotels Prices Scraper](https://apify.com/themineworks/google-hotels-prices-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LandWatch Scraper](https://apify.com/themineworks/landwatch-land-for-sale-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a bug or a country site that misbehaves? Open an issue on the Issues tab of this page. To ask for another job board or country, email dmineworks@gmail.com. A guide for this actor also lives at [themineworks.com](https://themineworks.com/actors/indeed-scraper/).

*Indeed Jobs Scraper turns Indeed searches on 17 country sites into clean job rows with salary as shown, ratings and posting dates, billed only per job delivered.*

# Actor input Schema

## `query` (type: `string`):

Job title, skill, or keyword to search for (Indeed's 'what' field), e.g. "software engineer" or "registered nurse".

## `location` (type: `string`):

City, state, ZIP, or 'Remote' (Indeed's 'where' field), e.g. "Austin, TX" or "10001". Leave empty for nationwide.

## `country` (type: `string`):

Which Indeed country site (ccTLD) to search, e.g. uk.indeed.com for GB.

## `maxResults` (type: `integer`):

Maximum number of job listings to return. Each solved search page yields ~15-45 jobs.

## `monitorMode` (type: `boolean`):

Run on a schedule and deliver ONLY jobs not seen in a previous run. You are charged per new job, not for the whole search each time. Ideal for daily monitoring. Requires the same input across runs.

## `proxy` (type: `object`):

Indeed hard-blocks datacenter and unproxied traffic (PerimeterX + Cloudflare Turnstile). Apify's UNBLOCKER proxy group is required and is the default. It renders server-side, so no browser is needed.

## Actor input object example

```json
{
  "query": "software engineer",
  "location": "New York",
  "country": "US",
  "maxResults": 60,
  "monitorMode": false,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "software engineer",
    "location": "New York",
    "maxResults": 60,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "UNBLOCKER"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/indeed-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "query": "software engineer",
    "location": "New York",
    "maxResults": 60,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["UNBLOCKER"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/indeed-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "software engineer",
  "location": "New York",
  "maxResults": 60,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "UNBLOCKER"
    ]
  }
}' |
apify call themineworks/indeed-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/indeed-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BCp0dozm9YCULgBfW/builds/JklFF3RW2worjefmh/openapi.json
