AllJobs Israel Job Listings Scraper
Pricing
from $0.87 / 1,000 item extracteds
AllJobs Israel Job Listings Scraper
Search and export public AllJobs.co.il vacancies with job IDs, employers, locations, posting context, descriptions, requirements, categories, and canonical URLs.
Pricing
from $0.87 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
14 days ago
Last modified
Categories
Share
Search and export AllJobs Israel jobs as structured vacancy records for recruiting, sourcing, and labor-market analysis.
The Actor reads public AllJobs.co.il search and job pages and returns stable job IDs, titles, employers, locations, work arrangements, posting context, descriptions, requirements, categories when exposed, and canonical URLs.
No AllJobs account is required. This independent automation-lab Actor is not affiliated with or endorsed by AllJobs. It uses no AI models or external enrichment services.
What can you do with this AllJobs scraper?
- Build a current feed of public Israeli vacancies.
- Search recent listings by text found in titles, employers, descriptions, or requirements.
- Export jobs for one AllJobs city, region, position, or job type.
- Fetch one known public job URL.
- Schedule repeat runs and compare records by
jobId. - Send results to Google Sheets, a database, an ATS staging table, or a BI pipeline.
This Actor extracts public vacancy data. It does not apply for jobs, contact employers, or access candidate information.
Who is it for?
Recruiters and sourcers can refresh role-specific vacancy feeds and identify active employers.
Talent intelligence teams can monitor hiring activity by city or AllJobs category.
Labor-market analysts can collect normalized snapshots for aggregate research.
Data engineers can consume stable JSON records through datasets, webhooks, and the Apify API.
Job-search product teams can prototype lawful discovery workflows using public listing metadata.
Data extracted from every vacancy
| Field | Meaning |
|---|---|
jobId | Stable AllJobs vacancy ID |
title | Displayed job title |
employer | Public employer name, when displayed |
employerId | AllJobs employer ID, when exposed |
employerUrl | Public employer page |
postingStatus | Source label such as agency or exclusive; null when absent, never an inferred employer classification |
employerLogoUrl | Absolute HTTP(S) employer image URL from the vacancy card, or null |
locations | All displayed job locations |
location | Joined location summary |
employmentTypes | Work arrangements and audience tags |
benefits | Additional conditions shown on the card |
postingContext | Source-relative age such as “2 hours ago” |
description | Public role description |
requirements | Separately extracted requirements section |
categories | Category labels exposed by a job-detail page |
categoryIds | Position/category IDs exposed in source links |
sourcePage | Search-results page number |
url | Canonical AllJobs job URL |
scrapedAt | UTC extraction timestamp |
Nullable fields are returned as null or an empty array when AllJobs does not expose them.
Why use this Actor?
AllJobs pages are Hebrew-first and contain useful vacancy details inside server-rendered job cards.
The Actor parses those cards directly, so a normal search page can yield descriptions and requirements without opening every job in a browser.
That provides:
- low runtime overhead;
- stable source IDs for deduplication;
- explicit bounds through
maxItemsandmaxPages; - consistent text filters for search URLs and detail URLs;
- typed output ready for JSON, CSV, Excel, XML, or RSS export.
Getting started
- Open the Actor in Apify Console.
- Keep the prefilled Tel Aviv URL or remove it to scan the newest national vacancies.
- Optionally add
queryorlocation. To use numeric AllJobs filter IDs, clear the prefilled URL first. - Set
maxItemsto the number of matching jobs you need. - Click Start.
- Open the Dataset tab to preview or download records.
- Save the input as a Task if you want to schedule the same feed.
A useful broad run is:
{"query": "מכירות","maxItems": 10,"maxPages": 3}
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
startUrls | array | Tel Aviv search URL in prefill | Public AllJobs search-results or job-detail URLs |
query | string | — | Text required in title, employer, description, or requirements |
location | string | — | Text required in one displayed location |
positionId | integer | — | Positive AllJobs position/category ID |
cityId | integer | — | Positive AllJobs city ID |
regionId | integer | — | Positive AllJobs region ID |
jobTypeId | integer | — | Positive AllJobs job-type ID |
maxItems | integer | 20 in the form; 25 if omitted from API input | Maximum unique matching jobs, up to 1,000 |
maxPages | integer | 10 | Maximum pages per search seed, up to 100 |
maxRequestRetries | integer | 2 | Retries for transient request failures, from 0 to 5 |
Nonempty startUrls override positionId, cityId, regionId, and jobTypeId; these numeric values do not modify supplied URLs. Clear the prefilled Tel Aviv URL (or send startUrls: []) to use the numeric search builder. With no URLs or numeric IDs, the Actor scans the national feed. query and location are client-side literal, case-insensitive filters over the selected bounded feed, not source-side semantic searches.
You can copy numeric filter values from a public AllJobs search URL.
For example, city=779 represents the source's Tel Aviv city selection.
Search URL and explicit job URL modes
A search URL has this shape:
https://www.alljobs.co.il/SearchResultsGuest.aspx?page=1&position=&type=&city=779®ion=
The Actor preserves its source filters and changes only the page number while paginating.
A detail URL has this shape:
https://www.alljobs.co.il/Search/UploadSingle.aspx?JobID=8123456
Detail mode returns only the requested current job, even when the page includes related vacancies.
If query or location is also supplied, that same filter is applied before the explicit job is saved.
Example output
{"jobId": "8123456","title": "מפתח/ת תוכנה","employer": "חברה לדוגמה","employerId": "123456","employerUrl": "https://www.alljobs.co.il/Employer/HP/Default.aspx?cid=123456","postingStatus": "חברת השמה / כח אדם","employerLogoUrl": "https://www.alljobs.co.il/Uploads/Employer/example-logo.png","locations": ["תל אביב יפו"],"location": "תל אביב יפו","employmentTypes": ["משרה מלאה"],"benefits": [],"postingContext": "לפני 2 שעות","description": "תיאור תפקיד לדוגמה.","requirements": "ניסיון קודם בתחום.","categories": ["תוכנה"],"categoryIds": ["123"],"sourcePage": 1,"url": "https://www.alljobs.co.il/Search/UploadSingle.aspx?JobID=8123456","scrapedAt": "2026-01-15T12:00:00.000Z"}
The README example is anonymized. Live output contains the public source text available at run time.
How pagination and limits work
Search pages are processed sequentially.
The Actor deduplicates records by jobId, applies text filters, and stops as soon as maxItems accepted records have been saved.
A selective text query may require a larger maxPages because filtering happens against the full normalized vacancy text. maxItems is an upper bound, not a guaranteed count within the run timeout. Large scans may require increasing Run options → Timeout beyond the unchanged 300-second default; source latency varies.
The run also stops at a recognized legitimate empty search, a short final page, or a repeated page with no unseen source job IDs for that seed. Unseen pages with no text matches still continue. Unrecognized empty pages and wholly malformed cards fail explicitly rather than pretending the feed is empty.
How much does it cost to extract AllJobs Israel jobs?
The Actor uses pay-per-event pricing:
- $0.00005 once per run;
- $0.001448 per saved job on the Bronze plan;
- lower item prices on higher plans, down to $0.0008688 per job on Gold, Platinum, and Diamond.
Example Bronze Actor charges:
| Saved jobs | Estimated Actor charge |
|---|---|
| 10 | $0.01453 |
| 100 | $0.14485 |
| 1,000 | $1.44805 |
Only unique records written to the default dataset incur the item charge.
Rejected text matches, duplicate job IDs, empty pages, and failed records are not charged as items.
Apify plan and platform-usage terms may also apply; check Console for the active price before a large run.
Recurring recruiting feed workflow
- Choose a source category, city, or search URL.
- Run once and retain
jobId,postingContext, andscrapedAt. - Save the input as an Apify Task.
- Add a daily or weekly schedule.
- Send the dataset to your destination through an integration or webhook.
- Compare current
jobIdvalues with the previous snapshot. - Treat missing IDs as candidates for manual status verification, not guaranteed deletions.
The Actor does not maintain historical state or classify changes itself.
Export to Google Sheets or another pipeline
After a run, open the dataset and select JSON, CSV, Excel, XML, or RSS.
For a recurring pipeline, connect the Task to:
- Google Sheets;
- Make;
- Zapier;
- a webhook;
- an Apify integration;
- your own dataset API consumer.
Use jobId as the source identity and scrapedAt as the observation time.
Run through the Apify API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~alljobs-israel-job-listings-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"positionId":366,"maxItems":20,"maxPages":2}'
To wait for results directly:
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~alljobs-israel-job-listings-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"query":"מכירות","maxItems":10,"maxPages":3}'
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/alljobs-israel-job-listings-scraper').call({cityId: 779,maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map(({ jobId, title, employer }) => ({ jobId, title, employer })));
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/alljobs-israel-job-listings-scraper').call(run_input={'location': 'תל אביב', 'maxItems': 25, 'maxPages': 5})items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in items:print(item['jobId'], item['title'], item.get('employer'))
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/alljobs-israel-job-listings-scraper"
Claude Desktop
Add this server entry to Claude Desktop's MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/alljobs-israel-job-listings-scraper"}}}
Cursor
Add the same apify server URL in Cursor Settings → MCP and enable it for the workspace.
VS Code
Add the same apify server URL through your VS Code MCP extension or workspace MCP configuration.
Example prompts:
- “Find up to 20 current AllJobs insurance jobs and summarize employers by location.”
- “Run the Tel Aviv AllJobs feed and return job ID, title, employer, and requirements.”
- “Export current AllJobs sales vacancies as a CSV-ready table.”
Reliability and retry behavior
The Actor validates the hostname and URL path before making a request.
Transient network errors, HTTP 408/425/429, and 5xx responses receive bounded exponential-backoff retries, up to maxRequestRetries + 1 total attempts. Permanent HTTP errors, challenge pages, unsupported URLs, and unrecognized shapes are not retried on the same route.
A missing job, unsupported URL, challenge page, or unrecognized source shape fails explicitly instead of silently returning a successful empty scrape.
No automatic residential proxy or browser fallback is enabled, which keeps runs predictable and inexpensive.
Limits and source behavior
- AllJobs content is primarily Hebrew.
postingContextis source-relative text, not a fabricated timestamp.- Search cards may expose category IDs without category names.
- Category labels are included only when tied to the selected job card. Page-global SEO navigation and related-job links are excluded; arrays may be empty.
- Employers can be anonymous, so employer fields may be null.
- A job can expire between discovery and extraction.
- Source markup and public availability can change without notice.
- Text filtering is literal, case-insensitive matching; it is not semantic search.
- The Actor does not translate, rank, enrich, or apply to jobs.
Failure diagnostics and privacy
Failed operations send sanitized diagnostic input, exceptions, safe request/retry/card/duplicate/match/saved counters, and Actor/build/run IDs to our private GlitchTip service for repair. Secret fields, private text filters, and URL queries are removed; reports are retained for 30 days. Raw response bodies, cookies, and credentials are not sent. Empty telemetry is not proof of successful extraction.
Vacancy data is processed transiently and saved to the run's Apify dataset, not a cross-run cache. Dataset, input, and log retention follow your Apify account settings; delete the run and its storage in Console when no longer needed. You control downstream export retention. No paid proxy or third-party data account is required; operating dependencies are paid by us, with only the documented Store events charged to you.
Responsible use and legality
Use the Actor only for legitimate purposes and public information you are permitted to process.
Follow AllJobs.co.il terms, robots guidance, applicable database rights, copyright rules, privacy law, and employment regulations.
Avoid republishing full descriptions without a lawful basis.
Do not use job data for unlawful discrimination, spam, deceptive recruitment, or decisions that require human review.
You are responsible for your input, retention policy, downstream processing, and compliance obligations.
Troubleshooting
Why did my keyword search return fewer jobs than maxItems?
The keyword is matched against jobs found within maxPages. Increase maxPages, simplify the query, or use a source position/city URL.
Why is an employer null?
Some vacancies do not display an employer name. The Actor preserves that absence rather than inventing a value.
Why did a detail URL fail?
The job may have expired, the JobID may be missing, or the URL may not be a supported public AllJobs path.
Why are category names empty?
Cards often expose only position IDs. Category names appear only when the source ties them to that job card. Page-global SEO navigation is not reliable job classification and is excluded.
FAQ
Does this Actor require an AllJobs login?
No. It extracts public guest search and job pages.
Can I search in Hebrew?
Yes. Hebrew text is the normal choice for query and location.
Can I scrape every AllJobs job?
The Actor supports up to 1,000 accepted jobs and 100 pages per search seed. Choose a bounded scope that is necessary for your use case.
Are results translated to English?
No. Source text is preserved.
Can I schedule monitoring?
Yes. Save an input as a Task and schedule it. Compare jobId values downstream; the Actor itself does not send alerts or store prior snapshots.
Is the output available as CSV or Excel?
Yes. Apify datasets can be downloaded in both formats, along with JSON, XML, and RSS.
Related automation-lab Actors
For wider geographic recruiting research, explore other job-listing Actors from the automation-lab Apify portfolio.
Choose a source-specific Actor when you need that board's native fields, and normalize records downstream using stable source IDs and canonical URLs.
Support
If a run fails, include the public input shape, run ID, expected scope, and whether the affected URL is a search or detail page.
Do not include credentials, candidate data, or other private information in a support report.