# Israel Jobs Feed משרות: Drushim, AllJobs, JobMaster, Ethosia (`getascraper/israel-jobs-feed`) Actor

Israel jobs from Drushim, AllJobs, JobMaster, Ethosia, GotFriends and JobKarov in one feed. Hebrew and English city names, shekel pay, cross-board duplicate groups, and new, updated or closed jobs per run. Export to JSON, CSV or Excel for your ATS or Sheets. Pay per job row.

- **URL**: https://apify.com/getascraper/israel-jobs-feed.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.12 / 1,000 job postings

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

## Israel Jobs Feed משרות: Drushim, AllJobs, JobMaster, Ethosia

<table width="100%" style="display:table;width:100%;border-collapse:collapse;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EFF4FF;border:1px solid #C7D7FA;border-top:4px solid #1D4ED8;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Six Israeli job boards in one feed, in one clean format</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search Drushim, AllJobs, Ethosia, JobMaster, GotFriends and JobKarov together, with Hebrew and English city names, shekel pay and duplicate jobs already sorted out.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:collapse;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FA;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1E3A8A">🇮🇱 Hebrew and English</span><br><span style="font-size:12px;color:#334155">Search in either language. Tel Aviv and תל אביב are one city.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FA;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1E3A8A">💰 Shekel pay</span><br><span style="font-size:12px;color:#334155">Pay ranges read from the ad, with the original wording beside them.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FA;border-left:none;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1E3A8A">🔗 One job, one row</span><br><span style="font-size:12px;color:#334155">The same role on several boards is grouped, or collapsed to one row.</span></td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C7D7FA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:15px;font-weight:800;color:#1E3A8A">📡 New and closed jobs</span><br><span style="font-size:12px;color:#334155">Schedule it and see what is new, changed or gone since last run.</span></td>
</tr>
</table>

Get Israeli job listings from Drushim (דרושים), AllJobs (אולג'ובס), Ethosia (אתוסיה), JobMaster (ג'ובמאסטר), GotFriends (גוטפרנדס) and JobKarov (ג'וב קרוב) in one dataset. It is built for recruiters, staffing agencies, job-aggregator and HR-tech teams, and analysts who track the Israeli hiring market. Every board returns the same fields, so you filter and compare once instead of six times.

### 🔎 What this feed does

You choose the boards, add optional filters, and get one row per job. Every row says which board it came from and links back to the original ad.

| Board | Strongest for | What you get |
| --- | --- | --- |
| Drushim | Broad Israeli market, strong in high-tech | Title, company, city, category, job scope, experience, posted date, and with full details the description and requirements |
| AllJobs | Broad Israeli market across industries | Title, company, city, the full ad text, scope, experience and skills when the ad states them |
| Ethosia | Technology and specialist roles through a recruiting agency | Title, city, description, requirements, posted and updated dates, apply link |
| JobMaster | Broad Israeli market, searched by keyword and city | Title, company, cities, job scope, posted date, a short teaser, and with full details the description, requirements, category and pay line |
| GotFriends | Technology and startup roles through a recruiting agency | Title, region, description and requirements |
| JobKarov | The latest ads near you across industries | Title, company, city and address, coordinates, description, requirements, job scope, posted date |

Ethosia and GotFriends are recruiting agencies, so their rows are marked as agency jobs and carry no employer name. AllJobs, GotFriends and JobKarov need an Israeli connection, which this Actor uses automatically; they are the premium boards, and each row from them carries a small extra charge shown in the pricing panel.

Know these limits before you choose a board:

- **JobMaster returns the first 10 jobs of every search.** The site shows more only to signed-in visitors, and this Actor never signs in. To collect more, add several keywords and cities: each combination is its own search with its own 10 jobs. JobMaster has no all-jobs page, so give it a keyword, a city, or leave both empty and it reads a few regional pages.
- **JobKarov is a list of the latest ads, not a search.** The site returns the same recent ads whatever you type, so a keyword keeps only the ads of that list that mention it and often returns only a few rows. Because the list is not complete, JobKarov jobs are never marked closed. It is off by default; add it to the boards when you want its latest ads.
- **GotFriends ads carry no posting date and no job scope.** Choosing posted within days or a job scope removes all of its jobs, and `RUN_HEALTH` says so. Its place is a region such as Tel Aviv and the centre, so a Tel Aviv search also returns its centre jobs. Categories you can read: software, AI, hardware, data security, algorithms, QA, executive positions, graduates, systems, projects and big data. A city page works as a pasted link.

What the feed does for you:

- **City names in both languages.** `cityHe` and `cityEn` are filled for known Israeli cities, with the region and a nationwide flag. Spelling variants such as Kiryat and Qiryat are treated as one place.
- **Shekel pay.** When an ad states a salary in shekels, you get `salaryMin`, `salaryMax`, the period (hour, month or year) and a monthly equivalent for monthly pay. The original wording stays in `salaryText`. Hourly pay is never turned into a monthly figure. When an ad shows numbers without a currency, no pay is guessed.
- **Duplicate groups.** Rows that look like the same job at the same company and city share a `clusterId`. Turn on `uniqueOnly` to get one row per group. Matching is strict on purpose, so the same company posting one role in two cities stays as two rows.
- **Job lifecycle.** Give your run a name with `monitorScope` and schedule it. Rows are marked `NEW`, `UPDATED`, `UNCHANGED`, `CLOSED` or `REOPENED`. A job is only closed after a complete scan of its board missed it twice in a row, so a small test run never closes jobs by mistake.
- **Hebrew kept as published.** Titles, descriptions and requirements keep their quotes and line breaks. Mixed Hebrew and English ads are labelled `he`, `en` or `mixed`.

If a run reaches its time limit, the feed stops cleanly and returns the rows it already has with `lifecycleStatus` set to `PARTIAL`. Your saved monitor history is left untouched, and `RUN_SUMMARY` says what happened in plain words.

### 🎯 Who uses it

- **I run a recruiting agency** and want every new Israeli opening in my field, from every board, without opening several sites each morning.
- **I build a job aggregator or HR-tech product** and need one consistent Hebrew and English record per job, with the source link kept.
- **I analyse the Israeli labour market** and want cities, regions, categories and published pay in a form I can count and chart.
- **I sell to hiring companies** and want to know who is hiring now, which roles repeat, and which jobs just closed.

### 🚀 How it works

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="padding:16px 14px;width:33%;background:#EFF4FF;border:1px solid #C7D7FA;border-radius:10px 0 0 10px;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 1</span><br><span style="font-size:14px;font-weight:700;color:#1E293B">Pick boards and filters</span><br><span style="font-size:12px;color:#334155">Choose boards, then add keywords, cities or a minimum pay. Hebrew or English both work.</span></td>
<td style="padding:16px 14px;width:33%;background:#EFF4FF;border:1px solid #C7D7FA;border-left:none;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 2</span><br><span style="font-size:14px;font-weight:700;color:#1E293B">Run it</span><br><span style="font-size:12px;color:#334155">Every board answers in the same row format, with duplicates grouped.</span></td>
<td style="padding:16px 14px;width:33%;background:#EFF4FF;border:1px solid #C7D7FA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top"><span style="font-size:12px;font-weight:800;color:#1D4ED8;letter-spacing:1px">STEP 3</span><br><span style="font-size:14px;font-weight:700;color:#1E293B">Export or schedule</span><br><span style="font-size:12px;color:#334155">Download the dataset, or name a monitor and run it daily to see only what changed.</span></td>
</tr>
</table>

You can also paste a link to a search page, a category page or a single job on a supported board. Those pages are read as they are and added to the boards you selected.

### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `sources` | array of enum | No | Boards to search: Drushim, AllJobs, Ethosia, JobMaster, GotFriends, JobKarov. Drushim, AllJobs, Ethosia and JobMaster are selected by default; JobKarov (latest ads only) and GotFriends are opt-in. Rows from the premium boards (AllJobs, GotFriends, JobKarov) carry a small extra charge, shown in the pricing panel. |
| `startUrls` | array of URLs | No | Links to a search page or a single job on a supported board. Each link goes to the board it belongs to. |
| `keywords` | array of strings | No | Job titles or skills in Hebrew or English. A job matches when it contains every word of at least one keyword. |
| `locations` | array of strings | No | Israeli cities or regions in Hebrew or English. English and Hebrew spellings are one place. |
| `categories` | array of enum | No | Shared job categories. Each board's own categories are mapped to this list. |
| `hiTechOnly` | boolean | No | Keep only software, QA, data, DevOps, product and design, or hardware jobs. |
| `jobScope` | enum | No | Full, part, temporary, student or shift jobs. Jobs from a board that does not publish a scope are left out when you choose one. |
| `seniority` | enum | No | Entry to executive level, read from the title and the years of experience. |
| `workplaceType` | enum | No | On-site, hybrid or remote, where the board says so. |
| `minMonthlySalaryIls` | integer | No | Keep jobs whose published monthly pay reaches this amount. Jobs with no published pay are left out. |
| `onlySalaryDisclosed` | boolean | No | Keep only jobs that show a shekel salary. |
| `postedWithinDays` | integer | No | Keep jobs published in the last N days. |
| `companyNames` | array of strings | No | Keep jobs whose company name contains one of these names. |
| `excludeKeywords` | array of strings | No | Remove jobs containing any of these words. |
| `excludeAgencies` | boolean | No | Remove jobs posted by recruiting or staffing companies, where the board says so. |
| `englishOnly` | boolean | No | Keep only jobs with an English title. |
| `includeDescription` | boolean | No | Open each job for its full description and requirements. Slower, off by default. |
| `extractContacts` | boolean | No | Add an email or phone number when the ad publishes one. Needs the full description. |
| `includeGeo` | boolean | No | Add latitude and longitude when the board publishes them. |
| `monitorScope` | text | No | A name for a saved monitor. Reuse it on a schedule to mark jobs new, updated, closed or reopened. Leave empty for a one-off search. |
| `outputMode` | enum | No | `all` returns every job with its status, `changesOnly` skips unchanged jobs on named monitors, `compact` returns a short row per distinct job. |
| `uniqueOnly` | boolean | No | One row per duplicate group, taken from the board that lists it most completely. |
| `maxItemsPerSource` | integer | No | Most jobs read from each board. Defaults to 10. JobMaster gives at most 10 per search. |
| `maxTotalRows` | integer | No | Most jobs returned in one run. Defaults to 25. Free plan runs are capped at 25. |
| `maxPagesPerSource` | integer | No | Most result pages opened per board. Defaults to 3. |
| `proxyConfiguration` | object | No | Leave the default. The Actor picks the cheapest working connection per board and uses an Israeli one where a board needs it. |

### 🧾 Data table

Fields are left out when the board does not publish them. Nothing is filled with a placeholder.

| Field | Type | Description |
| --- | --- | --- |
| `listingKey` | string | Stable id made of the board and its job id. Use it to join runs. |
| `sourceBoard` | string | Board the job came from. |
| `listingUrl` | string | Link to the original ad. |
| `applyUrl` | string | Apply link, when the board gives one. |
| `title` | string | Job title as published. |
| `titleLang` | string | `he`, `en` or `mixed`. |
| `category` | string | Shared category across boards. |
| `sourceCategory` | string | The board's own category text. |
| `seniority` | string | Level read from the title and experience. |
| `experienceMinYears`, `experienceMaxYears` | integer | Years of experience when stated. |
| `jobScope` | string | Full, part, temporary, student, shift and similar. |
| `company` | string | Employer name. Absent when the board hides it. |
| `isAgency` | boolean | True when the board says the posting is from a recruiting company. |
| `companyConfidential` | boolean | True when the board says the employer is hidden. |
| `location` | string | Place text as published. |
| `cityHe`, `cityEn` | string | City in Hebrew and English. |
| `districtHe`, `districtEn` | string | Region in Hebrew and English. |
| `locations` | array | Every city named in a multi-city ad. |
| `workplaceType` | string | On-site, hybrid or remote, when stated. |
| `salaryText` | string | The pay wording from the ad. |
| `salaryMin`, `salaryMax` | number | Pay range in shekels. |
| `salaryPeriod` | string | Hour, month or year. |
| `salaryMonthlyMin`, `salaryMonthlyMax` | number | Monthly figures for monthly pay. |
| `postedAt`, `updatedAt` | string | Dates as the board publishes them. |
| `description`, `requirements` | string | Text of the ad. Filled when the list carries it or when `includeDescription` is on. |
| `skills` | array | Skills named by the board. |
| `language` | string | Language of the ad text. |
| `clusterId`, `clusterSize`, `isCanonical` | string, integer, boolean | Duplicate group, its size, and whether this row is the preferred copy. |
| `lifecycleStatus` | string | `NEW`, `UPDATED`, `UNCHANGED`, `CLOSED`, `REOPENED` or `PARTIAL`. |
| `firstSeenAt`, `lastSeenAt`, `closedAt` | string | Monitor history for the job. |
| `changedFields` | array | Which fields changed on an `UPDATED` row. |
| `provenance` | object | Board-specific extras that have no shared field. Nothing the boards publish is dropped. |

The Output tab has four views: **Jobs**, **Pay & Experience**, **Cross-Board Duplicates** and **Monitor Changes**.

### 📦 Run reports

Every run, including empty ones, writes two records to the key-value store:

- `RUN_SUMMARY`: rows delivered, what was complete or partial, and a plain message.
- `RUN_HEALTH`: one entry per board with its status, rows, rows removed by your filters, and a reason when a board returned nothing.

### 🛡️ Limits and safety

This feed returns the public listings of the boards you select. It does not claim to cover the whole Israeli job market. A board that is down, or that asks visitors to sign in or solve a puzzle, is reported as unavailable in `RUN_HEALTH` while the other boards still run. Nothing needs your login, key or cookie.

Free plan runs return up to 25 rows, with a limited number of runs per day and a short wait between them.

### 💰 Pricing

Pay per returned job row. Empty runs cost nothing for results, and there is no subscription. Every returned row is one `Job posting`. Rows from the premium boards (AllJobs, GotFriends and JobKarov) carry one small extra `Premium board` charge on top, because those boards need an Israeli connection. Rows from Drushim, Ethosia and JobMaster have no extra charge. Current rates for your plan are shown live in the pricing panel.

To keep a run cheap, choose only the boards you need (AllJobs is selected by default and is a premium board), keep `maxItemsPerSource` small, and turn on `uniqueOnly` so a job posted twice is returned once. Leave `includeDescription` off unless you need the full text.

### ⭐ Enjoying Israel Jobs Feed?

<table width="100%" style="display:table;width:100%;border-collapse:collapse">
<tr>
<td style="padding:20px 24px 14px;background:#EFF4FF;border:1px solid #C7D7FA;border-left:5px solid #1D4ED8;border-radius:10px 10px 0 0"><span style="font-size:20px;letter-spacing:4px;color:#1E293B">⭐ ⭐ ⭐ ⭐ ⭐</span><br><span style="font-size:17px;font-weight:800;color:#1E293B">Saved you a morning of checking several job boards? Tell other recruiters.</span><br><span style="font-size:14px;color:#334155">A 5-star rating takes 10 seconds and helps other recruiters, job-aggregator builders and market analysts find a single Israeli jobs feed. Your feedback also tells us which boards to add next.</span></td>
</tr>
<tr>
<td style="padding:0;background:#1D4ED8;border:1px solid #C7D7FA;border-top:none;border-radius:0 0 10px 10px;text-align:center"><a href="https://apify.com/getascraper/israel-jobs-feed/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a></td>
</tr>
</table>

### ❓ FAQ

##### Which job boards are included?

Drushim, AllJobs, Ethosia, JobMaster, GotFriends and JobKarov. Each one is read directly, and all rows come back in the same format. JobMaster returns the first 10 jobs of each search, and JobKarov returns only its latest ads, so read the limits above before you choose them. More boards can be added over time.

##### איך מחפשים משרות בישראל מכמה אתרים בבת אחת?

Select the boards, type your keywords in Hebrew or English (for example מפתח תוכנה or Python), add a city such as תל אביב or Haifa, and run. Every board's results arrive in one dataset, with duplicates grouped.

##### Why is pay missing on many jobs?

Most Israeli ads do not state a salary. When one does and names shekels, you get the numbers. When it shows figures without a currency, only the original text is kept and no pay is guessed.

##### How do I get only new jobs every day?

Set `monitorScope` to a name, for example `tel-aviv-devops`, and schedule the run. Use the same boards and filters each time. Choose `changesOnly` to receive only new, updated and closed jobs.

##### When is a job marked closed?

Only when a complete scan of its board, not cut short by your limits, missed it on two runs in a row. With a small per-board limit most scans are cut short, so jobs stay open rather than closing by mistake.

##### Why did a board return no rows?

`RUN_HEALTH` gives the reason in plain words: a filter removed everything (for example a job scope the board does not publish), the board returned nothing for the search, or the board was unreachable. Other boards still return their rows.

##### Does the same job appear twice?

It can, because rows are kept per board. Rows that match on company, title and city share a `clusterId`. Turn on `uniqueOnly` for one row per group.

### 🔗 Other actors

- [💼 AllJobs.co.il Scraper: משרות ודרושים API](https://apify.com/getascraper/alljobs-scraper) ↗: Collect AllJobs listings on their own.
- [🇮🇱 Ethosia Scraper: Israel Tech Jobs | אתוסיה](https://apify.com/getascraper/ethosia-scraper) ↗: Collect Ethosia technology roles on their own.
- [💼 JobMaster scraper: משרות דרושים בישראל](https://apify.com/getascraper/jobmaster-scraper) ↗: Collect JobMaster listings on their own.
- [💼 GotFriends Scraper: Israel Tech Jobs](https://apify.com/getascraper/gotfriends-scraper) ↗: Collect GotFriends technology roles on their own.
- [India Jobs Feed: Internshala, Instahyre, CutShort, Apna, Shine](https://apify.com/getascraper/india-job-inventory-feed) ↗: The same one-feed idea for Indian job boards.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/israel-jobs-feed/changelog.md

# Actor input Schema

## `sources` (type: `array`):

Choose the Israeli job boards to search. Each board is read inside this Actor and all rows come back in one shared format. Boards marked premium need an Israeli connection and can carry a small extra charge per row, shown in the Store pricing panel. Leave the default for a quick sample across four boards. JobMaster shows only the first 10 jobs of every search, so use several keywords or cities for more. JobKarov is not part of the default: it lists only the latest ads and ignores keywords, so a keyword keeps only the ads of that list that mention it.

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

Optional links to a search page, a category page or a single job page on a supported board (Drushim, AllJobs, Ethosia, JobMaster, GotFriends or JobKarov). When you paste links, those pages are read in addition to the selected boards, and each link is routed to the board it belongs to. Leave empty to search with the filters below.

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

Job titles or skills to search, in Hebrew or English, such as מפתח תוכנה or Python. A job matches when it contains all words of any one keyword. Leave empty to return the latest jobs from each board.

## `locations` (type: `array`):

Israeli cities or regions in Hebrew or English, such as Tel Aviv, תל אביב, Haifa or the North. English and Hebrew spellings of the same city are treated as one place.

## `categories` (type: `array`):

Keep only jobs in these shared categories. Each board's own category text is mapped to this list, so one choice works across all boards.

## `hiTechOnly` (type: `boolean`):

Keep only jobs in software, QA, data, DevOps, product and design, or hardware categories.

## `jobScope` (type: `string`):

Keep only jobs with this employment scope. Leave empty to keep all.

## `seniority` (type: `string`):

Keep only jobs at this level, read from the title and the stated years of experience. Jobs with no clear level are dropped when you pick one.

## `workplaceType` (type: `string`):

Keep only on-site, hybrid or remote jobs. Only jobs where the board states this are kept when you pick one.

## `minMonthlySalaryIls` (type: `integer`):

Keep only jobs whose published monthly pay reaches this amount in shekels. Hourly pay is never converted. Jobs with no published pay are dropped when you set this.

## `onlySalaryDisclosed` (type: `boolean`):

Keep only jobs where the board shows a shekel salary.

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

Keep only jobs published in the last N days. Jobs with no published date are dropped when you set this.

## `companyNames` (type: `array`):

Keep jobs whose company name contains any value you enter, in Hebrew or English. Leave empty to include every company.

## `excludeKeywords` (type: `array`):

Remove jobs whose title, company, location or description contains any of these words.

## `excludeAgencies` (type: `boolean`):

Remove jobs posted by recruiting or staffing companies when the board says so.

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

Keep only jobs whose title is written in English.

## `includeDescription` (type: `boolean`):

Fetch each job's full description and requirements. This opens one extra page per job, so runs are slower. Free plan runs always keep this off.

## `extractContacts` (type: `boolean`):

Add an email or phone number when the job text publishes one. Needs the full description. Nothing is guessed.

## `includeGeo` (type: `boolean`):

Add latitude and longitude when the board publishes them.

## `monitorScope` (type: `string`):

Optional name for a saved monitor. Reuse the same name with the same boards and filters on a schedule to mark jobs as new, updated, unchanged, closed or reopened versus the previous run. Use a different name for each independent monitor. Leave empty for a one-off search; unnamed runs never block each other.

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

All rows returns every job with its change status. Changes only skips jobs that did not change since the last named monitor run. Compact returns a short 8-field row per distinct job, one per cross-board duplicate group.

## `uniqueOnly` (type: `boolean`):

When the same job appears on several boards, return only the highest-priority copy. Duplicates are matched by company, title and city.

## `maxItemsPerSource` (type: `integer`):

The most jobs read from each board. Keep it small for quick runs.

## `maxTotalRows` (type: `integer`):

The most jobs returned across all boards in one run. Free plan runs are capped at 25.

## `maxPagesPerSource` (type: `integer`):

The most search result pages opened on each board.

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

Leave the default so the Actor picks the cheapest working connection for each board and uses an Israeli connection where a board needs it. Changing it disables that automatic choice.

## Actor input object example

```json
{
  "sources": [
    "drushim",
    "alljobs",
    "ethosia",
    "jobmaster"
  ],
  "startUrls": [],
  "keywords": [],
  "locations": [],
  "categories": [],
  "hiTechOnly": false,
  "jobScope": "",
  "seniority": "",
  "workplaceType": "",
  "onlySalaryDisclosed": false,
  "companyNames": [],
  "excludeKeywords": [],
  "excludeAgencies": false,
  "englishOnly": false,
  "includeDescription": false,
  "extractContacts": false,
  "includeGeo": false,
  "monitorScope": "",
  "outputMode": "all",
  "uniqueOnly": false,
  "maxItemsPerSource": 10,
  "maxTotalRows": 25,
  "maxPagesPerSource": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `jobs` (type: `string`):

No description

## `summary` (type: `string`):

No description

## `health` (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 = {
    "sources": [
        "drushim",
        "alljobs",
        "ethosia",
        "jobmaster"
    ],
    "startUrls": [],
    "keywords": [],
    "locations": [],
    "categories": [],
    "hiTechOnly": false,
    "jobScope": "",
    "seniority": "",
    "workplaceType": "",
    "onlySalaryDisclosed": false,
    "companyNames": [],
    "excludeKeywords": [],
    "excludeAgencies": false,
    "englishOnly": false,
    "includeDescription": false,
    "extractContacts": false,
    "includeGeo": false,
    "monitorScope": "",
    "outputMode": "all",
    "uniqueOnly": false,
    "maxItemsPerSource": 10,
    "maxTotalRows": 25,
    "maxPagesPerSource": 3,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/israel-jobs-feed").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 = {
    "sources": [
        "drushim",
        "alljobs",
        "ethosia",
        "jobmaster",
    ],
    "startUrls": [],
    "keywords": [],
    "locations": [],
    "categories": [],
    "hiTechOnly": False,
    "jobScope": "",
    "seniority": "",
    "workplaceType": "",
    "onlySalaryDisclosed": False,
    "companyNames": [],
    "excludeKeywords": [],
    "excludeAgencies": False,
    "englishOnly": False,
    "includeDescription": False,
    "extractContacts": False,
    "includeGeo": False,
    "monitorScope": "",
    "outputMode": "all",
    "uniqueOnly": False,
    "maxItemsPerSource": 10,
    "maxTotalRows": 25,
    "maxPagesPerSource": 3,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/israel-jobs-feed").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 '{
  "sources": [
    "drushim",
    "alljobs",
    "ethosia",
    "jobmaster"
  ],
  "startUrls": [],
  "keywords": [],
  "locations": [],
  "categories": [],
  "hiTechOnly": false,
  "jobScope": "",
  "seniority": "",
  "workplaceType": "",
  "onlySalaryDisclosed": false,
  "companyNames": [],
  "excludeKeywords": [],
  "excludeAgencies": false,
  "englishOnly": false,
  "includeDescription": false,
  "extractContacts": false,
  "includeGeo": false,
  "monitorScope": "",
  "outputMode": "all",
  "uniqueOnly": false,
  "maxItemsPerSource": 10,
  "maxTotalRows": 25,
  "maxPagesPerSource": 3,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call getascraper/israel-jobs-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/israel-jobs-feed"
        }
    }
}
```

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/ehaqitII9E4WaPxfP/builds/2yhxCYzB2LacyyAw2/openapi.json
