AllJobs Israel Job Listings Scraper avatar

AllJobs Israel Job Listings Scraper

Pricing

from $0.87 / 1,000 item extracteds

Go to Apify Store
AllJobs Israel Job Listings Scraper

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

Automation Lab

Maintained by Community

Actor 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

FieldMeaning
jobIdStable AllJobs vacancy ID
titleDisplayed job title
employerPublic employer name, when displayed
employerIdAllJobs employer ID, when exposed
employerUrlPublic employer page
postingStatusSource label such as agency or exclusive; null when absent, never an inferred employer classification
employerLogoUrlAbsolute HTTP(S) employer image URL from the vacancy card, or null
locationsAll displayed job locations
locationJoined location summary
employmentTypesWork arrangements and audience tags
benefitsAdditional conditions shown on the card
postingContextSource-relative age such as “2 hours ago”
descriptionPublic role description
requirementsSeparately extracted requirements section
categoriesCategory labels exposed by a job-detail page
categoryIdsPosition/category IDs exposed in source links
sourcePageSearch-results page number
urlCanonical AllJobs job URL
scrapedAtUTC 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 maxItems and maxPages;
  • consistent text filters for search URLs and detail URLs;
  • typed output ready for JSON, CSV, Excel, XML, or RSS export.

Getting started

  1. Open the Actor in Apify Console.
  2. Keep the prefilled Tel Aviv URL or remove it to scan the newest national vacancies.
  3. Optionally add query or location. To use numeric AllJobs filter IDs, clear the prefilled URL first.
  4. Set maxItems to the number of matching jobs you need.
  5. Click Start.
  6. Open the Dataset tab to preview or download records.
  7. 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

InputTypeDefaultDescription
startUrlsarrayTel Aviv search URL in prefillPublic AllJobs search-results or job-detail URLs
querystring—Text required in title, employer, description, or requirements
locationstring—Text required in one displayed location
positionIdinteger—Positive AllJobs position/category ID
cityIdinteger—Positive AllJobs city ID
regionIdinteger—Positive AllJobs region ID
jobTypeIdinteger—Positive AllJobs job-type ID
maxItemsinteger20 in the form; 25 if omitted from API inputMaximum unique matching jobs, up to 1,000
maxPagesinteger10Maximum pages per search seed, up to 100
maxRequestRetriesinteger2Retries 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&region=

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 jobsEstimated 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

  1. Choose a source category, city, or search URL.
  2. Run once and retain jobId, postingContext, and scrapedAt.
  3. Save the input as an Apify Task.
  4. Add a daily or weekly schedule.
  5. Send the dataset to your destination through an integration or webhook.
  6. Compare current jobId values with the previous snapshot.
  7. 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 os
from apify_client import ApifyClient
client = 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().items
for 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.
  • postingContext is 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.

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.