# AllJobs.co.il Scraper: משרות ודרושים API (`getascraper/alljobs-scraper`) Actor

AllJobs.co.il scraper and Israel jobs API for clean Hebrew job data (משרות בישראל). Search by keyword, city, category, and work type; export full descriptions, requirements, listed salaries, and new or updated job changes. $1.79 per 1,000 results on the Free plan; lower paid-plan rates.

- **URL**: https://apify.com/getascraper/alljobs-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 52 total users, 25 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $1.34 / 1,000 jobs

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

## 💼 AllJobs.co.il Scraper: משרות ודרושים API

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="4" style="border:none;padding:14px 18px;background:#E7EEFB;border-top:3px solid #0038B8;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:16px;font-weight:700;color:#1C1917">Israel's largest job board, in one clean structured feed.</span> <span style="font-size:15px;color:#57534E">Search AllJobs.co.il by role, city, or category and export listings with descriptions, requirements, and salary evidence for research or daily monitoring.</span>
</td>
</tr>
<tr>
<td colspan="4" style="border:none;padding:10px 14px;background:#0038B8;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;color:#FFFFFF">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Israel jobs coverage and recruiting leads</span>
<span style="color:#C7D9F5;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;AllJobs, Ethosia, GotFriends, JobMaster, and JobKarov listings and leads</span>
</td>
</tr>
<tr>
<td style="border:none;padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#E7EEFB;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-BHwwAt7NsCFLzDybH-DrSZ9iSIZs-CompressJPEG.Online_img%28512x512%29_%284%29.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/alljobs-scraper" style="color:#0038B8;text-decoration:none;font-weight:700;font-size:13px">AllJobs</a></span><br>
<span style="color:#0038B8;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="border:none;padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-lur7jnZIbBQhEgeTV-UStNr8Ujr8-CompressJPEG.Online_img%28512x512%29_%285%29.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/ethosia-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Ethosia</a></span><br>
<span style="color:#57534E;font-size:11px">Executive Israel tech jobs</span>
</td>
<td style="border:none;padding:10px 12px;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-dIVZ6sIePZrDJznqy-JpWd7rNptM-CompressJPEG.Online_img%28512x512%29_%283%29.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/gotfriends-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">GotFriends</a></span><br>
<span style="color:#57534E;font-size:11px">Startup Israel tech jobs</span>
</td>
<td style="border:none;padding:10px 12px;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-qVe73p7IzPRTgs19B-6de9T33KPg-unnamed_%289%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/getascraper/jobmaster-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">JobMaster</a></span><br>
<span style="color:#57534E;font-size:11px">Mainstream Israel jobs and contacts</span>
</td>
</tr>
<tr>
<td colspan="4" style="border:none;padding:10px 14px;background:#FFFFFF;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;text-align:center;color:#1C1917">
<span style="color:#57534E;font-size:13px"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-ehaqitII9E4WaPxfP-LybILke08L-images_%2873%29.jpeg" width="18" height="18" style="vertical-align:middle;border-radius:4px">&nbsp; More than one job board? <a href="https://apify.com/getascraper/israel-jobs-feed" style="color:#0038B8;text-decoration:none;font-weight:700">Israel Jobs Feed</a> covers the main ones in one run.</span><br>
<span lang="he" dir="rtl" style="color:#78716C;font-size:12px;direction:rtl;unicode-bidi:isolate"><span style="white-space:nowrap">יותר מאתר דרושים אחד?</span> <span style="white-space:nowrap">Israel Jobs Feed</span> <span style="white-space:nowrap">מכסה את המרכזיים בהרצה אחת.</span></span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#E7EEFB;border:1px solid #B8CBEF;border-top:none;color:#1C1917">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Get current Israel job listings, full public source text, and meaningful daily changes in one dataset.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search AllJobs.co.il by role, city, source category, or public URL. Export source-backed job fields for a spreadsheet, database, or scheduled hiring monitor.</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8CBEF;vertical-align:top;border-top:none;border-radius:0 0 0 10px;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0038B8">Search coverage</span><br>
<span style="font-size:12px;color:#57534E">Build repeatable Israel job searches from filters or a public AllJobs URL.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8CBEF;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0038B8">Source context</span><br>
<span style="font-size:12px;color:#57534E">Keep descriptions and requirements separate when the public listing exposes them.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8CBEF;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0038B8">Truthful normalization</span><br>
<span style="font-size:12px;color:#57534E">Keep listed ILS salaries, workplace wording, languages, and skills only when supported by source text.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8CBEF;border-left:none;vertical-align:top;border-top:none;border-radius:0 0 10px 0;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0038B8">Safe monitoring</span><br>
<span style="font-size:12px;color:#57534E">Send new and changed jobs to a daily workflow without treating a failed scan as a real change.</span>
</td>
</tr>
</table>

**Turn public AllJobs.co.il listings into a current Israel jobs dataset, including משרות ודרושים text, descriptions, requirements, and salary only when listed.** The actor is for job-data products, HR-tech teams, researchers, and market-intelligence teams that need a repeatable public-jobs feed without manually revisiting search pages.

### 🔍 What this AllJobs.co.il scraper returns

- Search results can include the job title, named employer, location, public job URL, posting age, source status, and employer page when disclosed.
- Description enrichment separates the Hebrew `דרישות:` requirements block from the job description when the listing provides it.
- Source text supports explicit skills, experience years, language, workplace wording, and source-disclosed ILS salary fields. Missing facts stay absent.
- Monitoring can emit `NEW`, `UPDATED`, `REPOSTED`, `REAPPEARED`, and `EXPIRED` rows. An expiration needs two complete missed scans of the same scope.
- Optional employer email: for each named employer, a public contact email from the company's own website when the company publishes one there.

### 💡 Why teams use it

- **I am a job-data product manager** looking to add current Israel jobs to a search product without maintaining a source-specific collector.
- **I am a labor-market analyst** looking to compare posted roles, stated requirements, skills, and listed salary evidence across Israeli hiring markets.
- **I am an HR-tech engineer** looking to run one stable daily search and receive only meaningful job changes in an automation-ready dataset.
- **I am a market-intelligence analyst** looking to treat employer hiring activity as a public signal while keeping each source URL and collection time available for review.

### 🧭 How it works

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#E7EEFB;border:1px solid #B8CBEF;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0038B8;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Define the search</span><br>
<span style="font-size:12px;color:#57534E">Paste a public AllJobs URL or choose the keyword, city, category, and source type.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#E7EEFB;border:1px solid #B8CBEF;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0038B8;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Choose detail and output</span><br>
<span style="font-size:12px;color:#57534E">Use automatic detail collection for missing source text, then choose full research rows or compact workflow rows.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#E7EEFB;border:1px solid #B8CBEF;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0038B8;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Schedule the monitor</span><br>
<span style="font-size:12px;color:#57534E">Reuse the same state name on a schedule to receive fresh jobs and verified changes.</span>
</td>
</tr>
</table>

### ⚙️ Input

| Field                    | Type             | Required | Description                                                                                                                 |
| ------------------------ | ---------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`              | array of URLs    | No       | Public AllJobs search or individual job URLs. When provided, these take precedence over search-builder filters.             |
| `keyword`                | string           | No       | One role or skill query, such as `DevOps`, `Python`, or `מנהל מוצר`. It is used when batch keywords are empty.              |
| `keywords`               | array of strings | No       | Separate role or skill searches to run as one batch. These override the single `keyword` field.                             |
| `city`                   | enum             | No       | One supported Israeli city. Batch city IDs override this setting.                                                           |
| `cities`                 | array of strings | No       | AllJobs city IDs to combine with the selected keywords. Use this for a small repeatable city batch.                         |
| `region`                 | string           | No       | An AllJobs region value copied from a public search URL. Batch region IDs override this setting.                            |
| `regions`                | array of strings | No       | AllJobs region values to combine with the selected source filters.                                                          |
| `categoryIds`            | array of strings | No       | Optional source position IDs copied from a public AllJobs search URL.                                                       |
| `jobTypeIds`             | array of strings | No       | Optional source type IDs copied from a public AllJobs search URL.                                                           |
| `postedWithinDays`       | integer          | No       | Keep listings with a parsed source-relative post date inside this limit. Set `0` to allow any parsed age.                   |
| `workplaceTypes`         | array of strings | No       | Keep roles only when source wording explicitly states remote, hybrid, or onsite work.                                       |
| `englishOnly`            | boolean          | No       | Keep roles whose title and available job text are detected as English.                                                      |
| `namedEmployersOnly`     | boolean          | No       | Exclude confidential listings and listings that do not show an employer name.                                               |
| `detailMode`             | enum             | No       | Choose automatic source-text enrichment, always collect job details, or keep listing cards only.                            |
| `incrementalMode`        | boolean          | No       | Compare the current complete search with its prior complete runs and return selected changes.                               |
| `stateName`              | string           | No       | A stable name that separates one customer, watchlist, or schedule from another.                                             |
| `changeTypes`            | array of strings | No       | Select monitoring changes that become dataset rows. Unchanged jobs stay excluded unless you explicitly include them.        |
| `notificationWebhookUrl` | string           | No       | An optional secret HTTPS endpoint for a compact summary after a successful monitoring run. It requires monitoring mode.     |
| `notificationEvents`     | array of strings | No       | Select the monitoring changes that can trigger the webhook. Unchanged rows never trigger a notification.                    |
| `notifyOnNoChanges`      | boolean          | No       | Send a successful-monitor heartbeat when no selected job changes are found.                                                 |
| `enrichEmails`           | boolean          | No       | Optional add-on. Adds a public contact email from each named employer's own website when one is published. Off by default. |
| `maxItems`               | integer          | No       | Cap unique jobs across the whole run. Start with a small dataset and raise the limit after checking the search.             |
| `outputMode`             | enum             | No       | Choose full source-backed records for research or compact records for alerts and automations.                               |
| `proxyConfiguration`     | object           | No       | Israel residential routing is prepared in the form for public AllJobs access. Change it only for an account-specific setup. |

### 📦 Output example

Each row is one public job listing. This historical example uses a real listing from a prior source run. Optional fields are omitted when the listing did not disclose them.

```json
{
    "jobId": "8714955",
    "url": "https://www.alljobs.co.il/Search/UploadSingle.aspx?JobID=8714955",
    "title": "Laravel Developer",
    "companyName": "דיאלוג",
    "location": "רחובות | תל אביב יפו | רמת גן | פתח תקווה | הרצליה",
    "jobType": "חברת השמה / כח אדם",
    "postedRelative": "1 ימים",
    "description": "לחברת פרויקטי תוכנה בוטיקית דרושים Laravel Developers...",
    "requirements": "שנתיים ומעלה ניסיון בפיתוח Laravel...",
    "source": "alljobs.co.il"
}
```

### 📧 Employer contact email (optional)

Turn on **Find employer contact email** to add a public contact address for each named employer, taken from the company's own website, such as `info@` or `jobs@`.

- It is off by default. Leave it off and the run works exactly as before.
- Each employer is looked up once per run, and the email is added to every listing of that employer.
- Only addresses the company publishes on its own website are returned. Nothing is guessed or made up.
- Many employers publish no email, so not every listing gets one. `emailEnrichmentStatus` tells you what happened for each row.
- Confidential companies are never looked up. For listings posted by a recruitment agency, the email found is the agency's own and the row keeps its agency label.
- For employer names that look like a private person, only a general company address is returned, never a personal one.
- You are billed only when an email is found, once per company per run, not once per listing.

The **📧 Employer emails** table view in the dataset shows the employer, email, where it was found, and the open role side by side.

### 📊 Data table

| Field                                                                                      | Type                                            | Description                                                                          |
| ------------------------------------------------------------------------------------------ | ----------------------------------------------- | ------------------------------------------------------------------------------------ |
| `jobId`                                                                                    | string                                          | Source job ID from AllJobs.                                                          |
| `canonicalJobId`                                                                           | string                                          | First job ID in a verified repost lineage.                                           |
| `url`                                                                                      | link                                            | Public AllJobs job URL.                                                              |
| `applyUrl`                                                                                 | link                                            | Source-provided application link when available.                                     |
| `title`                                                                                    | string                                          | Original public job title.                                                           |
| `companyName`                                                                              | string                                          | Employer name when disclosed by AllJobs.                                             |
| `isConfidentialCompany`                                                                    | boolean                                         | Present only when AllJobs explicitly marks the employer confidential.                |
| `employerId`                                                                               | string                                          | AllJobs employer profile ID when the source provides it.                             |
| `employerUrl`                                                                              | link                                            | Public AllJobs employer page when available.                                         |
| `location`, `locationRaw`, `locations`                                                     | string, string, array                           | Cleaned location, original source wording, and structured source locations.          |
| `jobType`, `employmentTypes`                                                               | string, array                                   | Raw source status and explicit work-pattern terms found in source text.              |
| `workplaceType`, `workplaceEvidence`                                                       | string, string                                  | Remote, hybrid, or onsite classification and the supporting source wording.          |
| `postedRelative`, `postedAt`, `postedAtPrecision`, `ageDays`                               | string, date, string, integer                   | Original posting age and a timestamp inferred from explicit source-relative wording. |
| `description`, `requirements`                                                              | string                                          | Public job text and a separate requirements block when the source exposes them.      |
| `contentCompleteness`                                                                      | string                                          | Whether both description and requirements were available.                            |
| `skills`                                                                                   | array                                           | Explicit technology or workflow terms found in source text.                          |
| `experienceMinYears`, `experienceMaxYears`                                                 | integer                                         | Years of experience parsed from explicit source wording.                             |
| `language`, `isEnglishJob`                                                                 | string, boolean                                 | Detected language of the available title and job text.                               |
| `isExclusive`, `isRecruitmentAgency`                                                       | boolean                                         | Source status indicators when AllJobs explicitly marks them.                         |
| `salaryText`, `salaryMin`, `salaryMax`, `salaryCurrency`, `salaryPeriod`, `salaryProvided` | string, number, number, string, string, boolean | Source-disclosed ILS salary evidence only.                                           |
| `source`, `contentHash`, `scrapedAt`                                                       | string, string, date                            | Source identity, stable source-content fingerprint, and collection time.             |
| `changeType`                                                                               | string                                          | Monitoring transition: new, updated, reposted, reappeared, unchanged, or expired.    |
| `isRepost`, `repostOfJobId`, `repostCount`                                                 | boolean, string, integer                        | Verified repost lineage fields.                                                      |
| `firstSeenAt`, `lastSeenAt`, `expiredAt`                                                   | date                                            | Monitoring timestamps for observed and expired listings.                             |
| `employerEmail`                                                                            | string                                          | Public contact email from the employer's own website. Only with the email add-on.    |
| `employerEmailKind`                                                                        | string                                          | `generic` for a role address such as info@, `named` for a person's work address.     |
| `employerEmailDomain`, `employerEmailSourceUrl`                                            | string, link                                    | Domain of the email and the employer page where it appears.                          |
| `emailEnrichmentStatus`                                                                    | string                                          | Email lookup result: found, not_found, skipped, or failed. Only with the add-on.     |

### 💰 Pricing

Pricing is pay per saved result and is shown on the Store price card. There is no subscription commitment. Monitoring can keep unchanged jobs out of the dataset by default, so recurring workflows focus on the rows that changed. The optional employer email lookup is billed separately, only when an email is found, once per company per run.

### ⭐ Enjoying AllJobs.co.il Scraper: משרות ודרושים API?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#E7EEFB;border:1px solid #B8CBEF;border-left:5px solid #0038B8;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">A useful Israel jobs monitor saves the work of rechecking the same public listings each day.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps job-data, HR-tech, and market-intelligence teams find this Actor. Feedback also guides the next improvement.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0038B8;border:1px solid #0038B8;border-left:5px solid #0038B8;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/alljobs-scraper/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>

### 🛠️ Monitoring notes

- Reuse the same search inputs, `stateName`, and result limit on scheduled monitoring runs. Changing them creates a different monitoring scope.
- The actor stores monitoring state only after a complete run. A source challenge or failed page does not create false updates or expirations.
- An `EXPIRED` row appears only after a job is absent from two complete scans of the same scope. A limited or incomplete scan skips expiry detection.
- Use the `run-summary` record to see coverage and changes when monitoring intentionally emits zero dataset rows.

### ❓ FAQ

##### Can the AllJobs.co.il scraper handle source protection?

The input form prepares Israel residential routing and the actor detects challenge pages instead of treating them as valid results. Protection can change, so a page that fails after retries fails the run rather than silently updating monitoring state with partial data.

##### האם אפשר לייצא משרות דרושים מ-AllJobs?

Yes. The AllJobs scraper exports fields exposed on public job listings, such as title, location, company when named, public description, requirements, and a source link. It does not collect private candidate profiles, resumes, private phone numbers, or private email addresses. The optional employer email lookup only returns addresses a company publishes on its own website.

##### איך עוקבים אחרי משרות חדשות בישראל?

Enable monitoring, choose a stable `stateName`, and schedule the same input. The first complete run establishes a baseline. Later complete runs can return new, updated, reposted, reappeared, or expired Israel job listings.

##### Are all AllJobs categories supported?

The actor accepts a public AllJobs search URL directly. It also accepts source category and job-type IDs copied from a public search URL, so you can target categories that AllJobs exposes without relying on guessed labels.

##### Can I get the employer's contact email?

Yes, with the optional **Find employer contact email** setting. For each named employer it looks for a contact email published on the company's own website and adds it to that employer's listings. Not every company publishes one, confidential employers are never looked up, and you are billed only when an email is found, once per company per run.

### 🛡️ Public-data use

This independent tool collects public AllJobs job-listing data. It is not affiliated with or endorsed by AllJobs. Review the source terms and applicable data-protection rules for your use case.

### 🔗 Other actors

- [Israel Jobs Feed משרות: Drushim, AllJobs, JobMaster, Ethosia](https://apify.com/getascraper/israel-jobs-feed) ↗ - reads several Israeli job boards in one run, in one format, with a monitor mode for new jobs.
- [Ethosia Scraper: Israel Tech Jobs](https://apify.com/getascraper/ethosia-scraper) ↗: executive and technology listings from Ethosia.
- [GotFriends Scraper: Israel Tech Jobs](https://apify.com/getascraper/gotfriends-scraper) ↗: startup and technology listings from GotFriends.
- [JobKarov Scraper: Israel Location Jobs and B2B Leads](https://apify.com/getascraper/jobkarov-scraper) ↗: location-focused job listings and hiring leads.
- [JobMaster Scraper: Israel Job Listings](https://apify.com/getascraper/jobmaster-scraper) ↗: public Israel job listings from JobMaster.

# Changelog

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

# Actor input Schema

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

Paste public AllJobs search or individual job URLs. URLs take precedence over the search-builder filters.

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

One job title or skill query, such as DevOps, Python, or מנהל מוצר.

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

Optional keywords to run as separate searches. These override the single keyword field.

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

Filter to one Israeli city. Batch cities override this field.

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

Optional AllJobs city IDs to combine with each keyword. These override the single city field.

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

Optional AllJobs region value from a public search URL. Batch region IDs override this field.

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

Optional AllJobs region values to combine with the selected search filters.

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

Optional source position IDs copied from a public AllJobs search URL.

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

Optional source type IDs from a public AllJobs search URL, such as a no-experience or part-time filter.

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

Keep only listings with a parsed source date within this many days. Set 0 for any age.

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

Keep listings where the source explicitly describes remote, hybrid, or onsite work.

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

Keep listings whose title and job text are detected as English.

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

Exclude confidential listings and listings without an employer name.

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

Auto fetches a job page only when the listing card is missing description or requirements.

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

Compare this search with its previous complete runs and return only selected changes.

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

A name that separates one customer, watchlist, or schedule from another.

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

Choose which monitoring changes become dataset rows. Unchanged jobs are excluded by default.

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

Optional secret HTTPS endpoint for a compact summary after a successful monitoring run.

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

Changes that can trigger the webhook. Unchanged jobs never trigger a notification.

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

Send a successful-monitor heartbeat when no selected job changes are found.

## `enrichEmails` (type: `boolean`):

Optional add-on. For each named employer, looks for a contact email on the company's own public website (for example info@ or jobs@) and adds it to every listing of that employer. Many employers publish no email, so not every listing gets one. Confidential companies are never looked up. For listings posted by a recruitment agency the email found is the agency's own, and those rows keep their recruitment-agency label. Charged once per employer whose email is returned in the run, not once per listing. Leave off for a normal scrape.

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

Maximum unique jobs saved across the whole run.

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

Full includes all available source fields. Compact keeps core fields for alerts, databases, and automations.

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

Israel residential proxy settings are preconfigured for reliable public AllJobs access.

## Actor input object example

```json
{
  "startUrls": [],
  "keyword": "",
  "keywords": [],
  "city": "any",
  "cities": [],
  "region": "any",
  "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,
  "enrichEmails": false,
  "maxItems": 10,
  "outputMode": "full",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IL"
  }
}
```

# Actor output Schema

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

No description

## `runSummary` (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": "",
    "keywords": [],
    "city": "any",
    "cities": [],
    "region": "any",
    "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,
    "enrichEmails": false,
    "maxItems": 10,
    "outputMode": "full",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IL"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/alljobs-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": "",
    "keywords": [],
    "city": "any",
    "cities": [],
    "region": "any",
    "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,
    "enrichEmails": False,
    "maxItems": 10,
    "outputMode": "full",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IL",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/alljobs-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": "",
  "keywords": [],
  "city": "any",
  "cities": [],
  "region": "any",
  "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,
  "enrichEmails": false,
  "maxItems": 10,
  "outputMode": "full",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IL"
  }
}' |
apify call getascraper/alljobs-scraper --silent --output-dataset

```

## MCP server setup

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