# AllJobs.co.il Jobs Scraper (`parsebird/alljobs-il-scraper`) Actor

Scrape Israeli job listings from AllJobs.co.il by keyword, city, region, and filters. Get titles, employers, locations, requirements, and salary evidence as JSON, CSV, or Excel.

- **URL**: https://apify.com/parsebird/alljobs-il-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### AllJobs.co.il Jobs Scraper

Scrape Israeli job listings from **[AllJobs.co.il](https://www.alljobs.co.il)** — Israel's largest job board — by keyword (Hebrew or English), city, region, category, and job type, or by pasting public AllJobs search and job URLs. Get structured job titles, employers, locations, requirements, skills, experience ranges, salary evidence, and remote/hybrid classification as clean JSON, CSV, or Excel.

<table><tr>
<td style="border-left:4px solid #0AA0DC;padding:12px 16px;font-weight:600">
Search AllJobs by keyword and by city, region, category, or job type — with English-only, workplace-type, recency, and named-employer filters — and turn on incremental mode to receive only the jobs that were added, updated, reposted, or expired since the last run.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this Actor.

```
Actor: parsebird/alljobs-il-scraper (Apify). Scrapes Israeli job listings from AllJobs.co.il. Call it with ApifyClient.
Input (all optional):
  startUrls[]        AllJobs search or /Search/UploadSingle.aspx?JobID=... URLs (take precedence over the builder)
  keyword            one role/skill, Hebrew or English ("Python", "מנהל מוצר")
  keywords[]         batch of keywords (overrides keyword)
  city               major-city enum id ("779" = Tel Aviv-Yafo)   cities[]   raw AllJobs city ids / names
  region             AllJobs region id ("11" = work from home)    regions[]  batch
  categoryIds[]      &position= ids from a public search URL       jobTypeIds[]  &type= ids ("4"=full time,"10"=freelance)
  postedWithinDays   int, 0 = any     workplaceTypes[]  ["remote","hybrid","onsite"]
  englishOnly        bool             namedEmployersOnly  bool
  detailMode         "auto" | "always" | "cards-only"
  incrementalMode    bool     stateName  str     changeTypes[]  ["NEW","UPDATED","REPOSTED","REAPPEARED","EXPIRED","UNCHANGED"]
  notificationWebhookUrl  https endpoint    notificationEvents[]    notifyOnNoChanges bool
  maxItems           int     outputMode  "full" | "compact"
  proxyConfiguration { useApifyProxy:true, apifyProxyGroups:["RESIDENTIAL"], apifyProxyCountry:"IL" }   // required
Output: one row per job — jobId, canonicalJobId, url, applyUrl, title, companyName, isConfidentialCompany, employerId,
employerUrl, location, locationRaw, locations[], jobType, employmentTypes[], workplaceType, workplaceEvidence,
postedRelative, postedAt, postedAtPrecision, ageDays, description, requirements, contentCompleteness, skills[],
experienceMinYears, experienceMaxYears, language, isEnglishJob, isExclusive, isRecruitmentAgency, salaryText, salaryMin,
salaryMax, salaryCurrency, salaryPeriod, salaryProvided, cityIds[], source, contentHash, scrapedAt,
changeType, isRepost, repostOfJobId, repostCount, firstSeenAt, lastSeenAt, expiredAt.
Pricing: pay-per-result. API docs: https://apify.com/parsebird/alljobs-il-scraper/api
```

### What does AllJobs.co.il Jobs Scraper do?

This Actor extracts job postings from [AllJobs.co.il](https://www.alljobs.co.il), reading the site's own server-rendered search results — so the listing card already carries the full description and requirements, and a job page is opened only when a card is thin.

- 🔎 **Bilingual keyword search** — search a role or skill in Hebrew or English (`Python`, `DevOps`, `מנהל מוצר`).
- 📍 **Location filters** — a curated enum of major Israeli cities, plus raw AllJobs city and region IDs copied from any public search URL.
- 🗂️ **Category and job-type filters** — pass `&position=` and `&type=` IDs from a public AllJobs search.
- 🧳 **Batch mode** — run many keyword × city × region combinations in a single run.
- 🧠 **Parsed enrichment** — skills, experience-year ranges, workplace type (remote / hybrid / onsite) with the supporting wording, employment patterns, recruitment-agency detection, and language detection.
- 💰 **Salary evidence** — the ILS salary line when AllJobs shows one, parsed into min / max / period.
- 🔁 **Incremental monitoring** — compare a full search with its prior runs and return only `NEW`, `UPDATED`, `REPOSTED`, `REAPPEARED`, or `EXPIRED` jobs, with verified repost lineage and an optional notification webhook.
- 🧾 **Full or compact output** — rich records for research, or a small record shape for alerts and automations.

#### How is this different from copying AllJobs by hand?

AllJobs shows 30 jobs per page and hides the structured signals — skills, experience, workplace type, repost history — inside free text. This Actor paginates the whole result set, parses each card into 40+ typed fields, and (in incremental mode) tells you exactly what changed since yesterday.

### Input parameters

Every field is optional except the proxy. With no keyword and no filters, the Actor scrapes the newest AllJobs listings.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| startUrls | array | `[]` | AllJobs search URLs or `/Search/UploadSingle.aspx?JobID=...` URLs. Take precedence over the builder. |
| keyword | string | — | One role or skill, Hebrew or English. |
| keywords | array | `[]` | Batch of keywords. Overrides `keyword`. |
| city | enum | `any` | One major Israeli city. |
| cities | array | `[]` | Raw AllJobs city IDs or names. Override `city`. |
| region | string | — | AllJobs region ID from a public search URL (`11` = work from home). |
| regions | array | `[]` | Batch of region IDs. |
| categoryIds | array | `[]` | AllJobs `&position=` IDs. |
| jobTypeIds | array | `[]` | AllJobs `&type=` IDs (`4` full time, `5` part time, `10` freelance). |
| postedWithinDays | integer | `0` | Keep jobs whose parsed age is within N days. `0` = any. |
| workplaceTypes | array | `[]` | Keep only `remote`, `hybrid`, or `onsite` when the text says so. |
| englishOnly | boolean | `false` | Keep only jobs detected as English. |
| namedEmployersOnly | boolean | `false` | Drop confidential and unnamed employers. |
| detailMode | enum | `auto` | `auto`, `always`, or `cards-only`. |
| incrementalMode | boolean | `false` | Return only selected changes vs. prior runs. |
| stateName | string | `default` | Separates one watchlist / schedule from another. |
| changeTypes | array | NEW…EXPIRED | Which transitions become rows. |
| notificationWebhookUrl | string | — | HTTPS endpoint for a post-run summary (monitoring only). |
| notificationEvents | array | NEW…EXPIRED | Which changes can trigger the webhook. |
| notifyOnNoChanges | boolean | `false` | Send a heartbeat even with no changes. |
| maxItems | integer | `100` | Cap unique jobs across the run. |
| outputMode | enum | `full` | `full` or `compact`. |
| proxyConfiguration | object | IL residential | **Required.** AllJobs blocks datacenter and non-Israeli IPs. |

#### Input example

```json
{
  "keyword": "Python",
  "city": "779",
  "workplaceTypes": ["hybrid"],
  "postedWithinDays": 7,
  "detailMode": "auto",
  "maxItems": 100,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IL" }
}
```

#### Incremental monitoring example

```json
{
  "keywords": ["DevOps", "SRE"],
  "incrementalMode": true,
  "stateName": "devops-watch",
  "changeTypes": ["NEW", "REPOSTED", "EXPIRED"],
  "notificationWebhookUrl": "https://hooks.example.com/alljobs",
  "outputMode": "compact",
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IL" }
}
```

### Output example

```json
{
  "jobId": "8583071",
  "canonicalJobId": "8583071",
  "url": "https://www.alljobs.co.il/Search/UploadSingle.aspx?JobID=8583071",
  "applyUrl": null,
  "title": "Quantitative Developer",
  "companyName": "פיקארו- גיוס והשמה להייטק",
  "isConfidentialCompany": null,
  "employerId": "281605",
  "employerUrl": "https://www.alljobs.co.il/Employer/HP/Default.aspx?cid=281605",
  "location": "תל אביב יפו",
  "locations": ["תל אביב יפו"],
  "jobType": "משרה מלאה",
  "employmentTypes": ["משרה מלאה"],
  "workplaceType": null,
  "workplaceEvidence": null,
  "postedRelative": "2 ימים",
  "postedAt": "2026-08-27T00:00:00.000Z",
  "postedAtPrecision": "day",
  "ageDays": 2,
  "description": "עבור קרן גידור אמריקאית ... מגייסים Quantitative Developer ...",
  "requirements": "5+ שנות ניסיון בפיתוח Python בסביבת Production ...",
  "contentCompleteness": "both",
  "skills": ["Python", "SQL", "Kubernetes", "Docker", "Pandas", "NumPy", "Airflow"],
  "experienceMinYears": 5,
  "experienceMaxYears": null,
  "language": "he",
  "isEnglishJob": false,
  "isRecruitmentAgency": true,
  "salaryText": null,
  "salaryProvided": false,
  "source": "alljobs.co.il",
  "contentHash": "c1e0…",
  "scrapedAt": "2026-08-29T10:00:00.000Z",
  "changeType": "NEW"
}
```

### What data can you extract from AllJobs.co.il?

| Field | Type | Description |
|-------|------|-------------|
| jobId | string | Source job ID from AllJobs. |
| canonicalJobId | string | First job ID in a verified repost lineage. |
| url / applyUrl | link | Public AllJobs job URL; source apply link when available. |
| title | string | Original public job title. |
| companyName | string | Employer name when AllJobs discloses it. |
| isConfidentialCompany | boolean | Present when AllJobs marks the employer confidential. |
| employerId / employerUrl | string / link | AllJobs employer profile ID and page. |
| location / locationRaw / locations | string / string / array | Cleaned location, original wording, structured list. |
| jobType / employmentTypes | string / array | Raw source status and explicit work-pattern terms. |
| workplaceType / workplaceEvidence | string / string | Remote / hybrid / onsite and the supporting wording. |
| postedRelative / postedAt / postedAtPrecision / ageDays | string / date / string / integer | Original posting age and an inferred timestamp. |
| description / requirements | string | Public job text and a separate requirements block. |
| contentCompleteness | string | Whether both description and requirements were available. |
| skills | array | Explicit technology or workflow terms found in the text. |
| experienceMinYears / experienceMaxYears | integer | Years of experience parsed from explicit wording. |
| language / isEnglishJob | string / boolean | Detected language of the available text. |
| isExclusive / isRecruitmentAgency | boolean | Source status indicators. |
| salaryText / salaryMin / salaryMax / salaryCurrency / salaryPeriod / salaryProvided | mixed | Source-disclosed ILS salary evidence only. |
| source / contentHash / scrapedAt | string / string / date | Source identity, stable content fingerprint, collection time. |
| changeType | string | `NEW`, `UPDATED`, `REPOSTED`, `REAPPEARED`, `UNCHANGED`, or `EXPIRED`. |
| isRepost / repostOfJobId / repostCount | boolean / string / integer | Verified repost lineage. |
| firstSeenAt / lastSeenAt / expiredAt | date | Monitoring timestamps. |

### How to scrape AllJobs.co.il

1. Open the Actor and click **Try for free**.
2. Enter a **keyword** in Hebrew or English, or paste AllJobs URLs into **Start URLs**.
3. Optionally pick a **city**, or paste `&position=` / `&type=` / `&region=` IDs from a public AllJobs search URL into the matching fields.
4. Set **Max items** — start with 50 for a fast, cheap test.
5. Leave the proxy on **Israel residential** (preset). AllJobs blocks other IPs.
6. Click **Start**, then download results as JSON, CSV, or Excel from the **Storage** tab, or pull them from the [API](https://apify.com/parsebird/alljobs-il-scraper/api).

For monitoring, turn on **Incremental mode**, give the run a **State name**, and [schedule](https://docs.apify.com/platform/schedules) it — each run returns only the jobs that changed.

### How much does it cost to scrape AllJobs.co.il?

This Actor uses the **pay-per-result** model — you are charged per job row pushed to the dataset.

| Plan | Price per job | Price per 1,000 jobs |
|------|---------------|----------------------|
| Free | $0.00149 | **$1.49** |
| Bronze | $0.00139 | **$1.39** |
| Silver | $0.00119 | **$1.19** |
| Gold | $0.00099 | **$0.99** |

Scraping 1,000 jobs on the Free plan costs about **$1.49**. In incremental mode you are charged only for the change rows returned, so a quiet daily run costs almost nothing. Your monthly Apify platform credits typically cover thousands of jobs.

### How it works

1. The Actor loads AllJobs' own search taxonomy so city, region, category, and job-type names resolve to the numeric IDs the site expects.
2. It builds one search per keyword × city × region × category × job-type combination and pages through `SearchResultsGuest.aspx` until `maxItems` is reached.
3. Each 30-job page is parsed into typed records — the listing card already holds the full description and requirements.
4. In `auto` detail mode, a job page is opened only for cards missing a company, location, or description; `always` opens every page; `cards-only` opens none.
5. Post-collection filters (recency, workplace type, English-only, named employers, region) are applied.
6. In incremental mode, the run is diffed against the saved state for the given `stateName`, repost lineage is resolved by content fingerprint, and only the selected change types are emitted (with an optional webhook summary).

### Using the Actor via API

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("parsebird/alljobs-il-scraper").call(run_input={
    "keyword": "data engineer",
    "city": "779",
    "detailMode": "auto",
    "maxItems": 200,
    "proxyConfiguration": {"useApifyProxy": True, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IL"},
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["title"], "—", item.get("companyName"), "—", item.get("skills"))
```

#### JavaScript

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('parsebird/alljobs-il-scraper').call({
    keywords: ['React', 'Vue'],
    englishOnly: true,
    maxItems: 100,
    proxyConfiguration: { useApifyProxy: true, apifyProxyGroups: ['RESIDENTIAL'], apifyProxyCountry: 'IL' },
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

The Actor runs on the [Apify platform](https://apify.com), so you also get [scheduling](https://docs.apify.com/platform/schedules), a full [REST API](https://docs.apify.com/api/v2), webhooks, and native integrations with Make, Zapier, Google Sheets, and Slack. Results export as JSON, CSV, Excel, XML, or RSS.

### Use cases

- **Tech recruiting in Israel** — track competitor openings, required skills, and experience levels by role and city.
- **Salary and market research** — collect the ILS salary lines AllJobs exposes, plus skill-demand trends.
- **Job boards and aggregators** — ingest fresh, structured Israeli listings for a niche vertical.
- **Newcomers and relocation** — filter to English-language roles and remote-friendly employers.
- **Alerting** — schedule incremental runs and push new or reposted jobs to Slack, a sheet, or a CRM.

### FAQ

**Do I need an AllJobs account?**
No. The Actor reads only public listings. You need an Apify account and Israel residential proxy (preset).

**Why is Israel residential proxy required?**
AllJobs is behind Radware Bot Manager, which blocks datacenter and non-Israeli IPs. The Actor rotates a fresh Israeli residential session on any block.

**Where do I get city, region, category, and job-type IDs?**
Run any search on [alljobs.co.il](https://www.alljobs.co.il) and read the URL: `&city=`, `&region=`, `&position=`, `&type=`. The `city` dropdown covers the major cities without needing an ID.

**Can I combine a keyword with a region?**
AllJobs applies the region filter only to keyword-free searches. When you set both, the Actor searches the keyword nationally and then keeps only jobs whose parsed location is in the region — so raise `maxItems`, or search a specific city instead.

**How does repost detection work?**
Every job gets a content fingerprint. When a new job ID appears with a fingerprint that matches a previously seen (often expired) job, it is marked `REPOSTED` with `repostOfJobId` and a shared `canonicalJobId`.

**Why are some fields empty?**
AllJobs shows fuller data on premium listing cards than on free ones. `detailMode: "always"` opens every job page; `auto` opens only thin cards. Salary, workplace type, and experience are populated only when the source states them.

**Can I schedule recurring runs?**
Yes. Use Apify's [scheduler](https://docs.apify.com/platform/schedules) with `incrementalMode` and a stable `stateName`. Found a problem? Open an issue on the **Issues** tab.

### Related Actors

- [Indeed Jobs Scraper](https://apify.com/parsebird/indeed-jobs-scraper) — job listings and company data from 60+ Indeed editions.
- [Job Bank Canada Scraper](https://apify.com/parsebird/jobbank-canada-scraper) — Canadian government job board with LMIA status.
- [Hiring.cafe Scraper](https://apify.com/parsebird/hiring-cafe-scraper) — aggregated tech and startup jobs with 20+ filters.
- Browse the full [ParseBird publisher page](https://apify.com/parsebird) for more scrapers.

### Legal and compliance

This Actor collects only publicly available job listings from AllJobs.co.il — data any visitor can view without logging in. It does not access private data or bypass authentication. You are responsible for using the scraped data lawfully, including under Israel's Protection of Privacy Law and the GDPR or CCPA where relevant, and for respecting the purpose limitations that apply to personal data. Do not use the output to spam candidates or employers. If you plan to scrape at scale or redistribute the data commercially, seek legal advice first. See Apify's guide on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `startUrls` (type: `array`):

Public AllJobs search URLs (`https://www.alljobs.co.il/SearchResultsGuest.aspx?...`) or single-job URLs (`.../Search/UploadSingle.aspx?JobID=...`). When set, these take precedence over the search-builder filters below.

## `keyword` (type: `string`):

One role or skill to search for, in Hebrew or English (for example, DevOps, Python, or מנהל מוצר). Used when the batch keywords list is empty.

## `keywords` (type: `array`):

Run several role or skill searches as one batch. Overrides the single keyword field.

## `city` (type: `string`):

Limit the search to one Israeli city. The batch cities list overrides this.

## `cities` (type: `array`):

AllJobs city IDs to combine with the keywords, copied from a public search URL (`&city=...`). City names are also accepted.

## `region` (type: `string`):

An AllJobs region ID copied from a public search URL (`&region=...`). For example, 11 = work from home, 2 = Center, 1 = Haifa area.

## `regions` (type: `array`):

AllJobs region IDs to combine with the keywords.

## `categoryIds` (type: `array`):

AllJobs position/category IDs copied from a public search URL (`&position=...`).

## `jobTypeIds` (type: `array`):

AllJobs job-type IDs copied from a public search URL (`&type=...`). For example, 4 = full time, 5 = part time, 10 = freelance.

## `postedWithinDays` (type: `integer`):

Keep only jobs whose parsed posting age is within this many days. 0 allows any age.

## `workplaceTypes` (type: `array`):

Keep only jobs whose text explicitly states this work arrangement.

## `englishOnly` (type: `boolean`):

Keep only jobs whose title and available text are detected as English.

## `namedEmployersOnly` (type: `boolean`):

Exclude confidential listings and listings that do not show an employer name.

## `detailMode` (type: `string`):

How much per-job text to collect.

## `incrementalMode` (type: `boolean`):

Compare this run's complete search with prior runs of the same state name and return only the selected changes.

## `stateName` (type: `string`):

A stable name that separates one watchlist or schedule from another.

## `changeTypes` (type: `array`):

Which monitoring transitions become dataset rows. Unchanged jobs are excluded unless you add UNCHANGED.

## `notificationWebhookUrl` (type: `string`):

Optional HTTPS endpoint that receives a compact JSON summary after a successful monitoring run.

## `notificationEvents` (type: `array`):

Which monitoring changes can trigger the webhook.

## `notifyOnNoChanges` (type: `boolean`):

Send a heartbeat to the webhook even when a monitoring run finds no selected changes.

## `maxItems` (type: `integer`):

Cap unique jobs across the whole run. Start small and raise it after checking the search.

## `outputMode` (type: `string`):

Full source-backed records for research, or compact records for alerts and automations.

## `proxyConfiguration` (type: `object`):

AllJobs blocks non-Israeli and datacenter IPs, so Israel residential routing is preset. Change it only for an account-specific setup.

## Actor input object example

```json
{
  "startUrls": [],
  "keyword": "Python",
  "keywords": [],
  "city": "any",
  "cities": [],
  "regions": [],
  "categoryIds": [],
  "jobTypeIds": [],
  "postedWithinDays": 0,
  "workplaceTypes": [],
  "englishOnly": false,
  "namedEmployersOnly": false,
  "detailMode": "auto",
  "incrementalMode": false,
  "stateName": "default",
  "changeTypes": [
    "NEW",
    "UPDATED",
    "REPOSTED",
    "REAPPEARED",
    "EXPIRED"
  ],
  "notificationEvents": [
    "NEW",
    "UPDATED",
    "REPOSTED",
    "REAPPEARED",
    "EXPIRED"
  ],
  "notifyOnNoChanges": false,
  "maxItems": 50,
  "outputMode": "full",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IL"
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrls": [],
    "keyword": "Python",
    "keywords": [],
    "cities": [],
    "region": "",
    "regions": [],
    "categoryIds": [],
    "jobTypeIds": [],
    "postedWithinDays": 0,
    "stateName": "default",
    "notificationWebhookUrl": "",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IL"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/alljobs-il-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 = {
    "startUrls": [],
    "keyword": "Python",
    "keywords": [],
    "cities": [],
    "region": "",
    "regions": [],
    "categoryIds": [],
    "jobTypeIds": [],
    "postedWithinDays": 0,
    "stateName": "default",
    "notificationWebhookUrl": "",
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IL",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/alljobs-il-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 '{
  "startUrls": [],
  "keyword": "Python",
  "keywords": [],
  "cities": [],
  "region": "",
  "regions": [],
  "categoryIds": [],
  "jobTypeIds": [],
  "postedWithinDays": 0,
  "stateName": "default",
  "notificationWebhookUrl": "",
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IL"
  }
}' |
apify call parsebird/alljobs-il-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/alljobs-il-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/yInCvJnhDEYW8GZJT/builds/Ea4rVyDkm4qB4Pdlm/openapi.json
