Drushim.co.il Job Scraper | Israel Jobs in Hebrew & English avatar

Drushim.co.il Job Scraper | Israel Jobs in Hebrew & English

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Drushim.co.il Job Scraper | Israel Jobs in Hebrew & English

Drushim.co.il Job Scraper | Israel Jobs in Hebrew & English

Scrape drushim.co.il jobs across Israel by Hebrew or English keyword, category, region, 40 cities, experience and job type. Get 50+ fields: full description + requirements, geocoded addresses, salary in ILS, company, apply link, English translations. Incremental monitoring + alerts.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Corvuslab

Corvuslab

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does Drushim.co.il Job Scraper do?

Drushim.co.il Job Scraper extracts job listings from drushim.co.il, one of Israel's largest Hebrew job boards, and returns 50+ structured fields per job: full description and requirements, every workplace address with latitude/longitude, category and sub-categories, required experience, job type, remote/hybrid flags, salary range where published and the apply link. It is also bilingual. Every record comes with English translations of the city, areas, category, experience and job type next to the original Hebrew, and every filter is an English-labelled multi-select dropdown. It's no-code, and you can export to JSON, CSV or Excel, pull results from the API, or hand them to an AI agent.

Type keywords in Hebrew or English (מפתח, Python, נהג), tick the categories, regions, cities, experience levels and job types you want, and it returns every matching job as a clean record. You can also paste drushim.co.il search, category, sub-category, area or job links. Leave everything empty and you get jobs from all over Israel with no setup.

New to Apify? Sign up free and use the included monthly platform credit to try this Actor. No credit card needed.


What data can you extract from Drushim.co.il?

Every record carries 50+ fields, grouped like this:

GroupWhat you get
JobJob ID, URL, title, full title, employer job code, category + all categories, sub-categories, experience required, job types, remote / hybrid flags, "hot job" flag, no-CV flag, suitable-for tags, screening questions
LocationMain city in Hebrew + English, latitude / longitude, every address the posting lists (locations[] with coordinates), areas in Hebrew + English, regions
SalarySalary text, min / max, currency (ILS) and period, where the employer publishes it
CompanyCompany name, company ID, profile URL, logo, confidential-employer flag
Apply & datesApply link, external apply link, original posting date (postedAt), date the site last refreshed the listing (refreshedAt)
DescriptionFull description and requirements as plain text, HTML and/or Markdown. You choose the formats per run
TrackingSearch keyword, scrape time, content hash; in incremental mode also change type (NEW / UPDATED / UNCHANGED / EXPIRED) and repost detection

Key features

  • 🔎 Search or URL scraping: keyword search in Hebrew or English (several searches at once, duplicates removed), or paste drushim.co.il search, category, sub-category, area and job links.
  • 🇬🇧 English-labelled filters: every dropdown has readable names such as "Hi-Tech – Software", "Tel Aviv" or "3-4 years", so you never need a table of numeric codes to build a search.
  • 🎚️ Multi-select everywhere: pick several of the 34 categories, 7 regions, 40 cities/areas, 5 experience levels and 7 job types in one run. The region, city, experience and job-type filters also narrow any search links you paste.
  • 🌐 English translations on every record: cityEnglish, areasEnglish, categoryEnglish, experienceEnglish and jobTypesEnglish sit beside the Hebrew originals, ready for English dashboards, spreadsheets and LLMs.
  • 🧭 Search by place name or distance: type cities or regions in English or Hebrew (Tel Aviv, Haifa or ירושלים), or keep only jobs within a set number of km of any point. Jobs outside the radius are not charged.
  • 📍 Every address, geocoded: postings that list several workplaces return all of them with latitude and longitude, not just the first.
  • 🧠 Full details on every job: description and requirements in text, HTML or Markdown, plus screening questions, the employer's own job code and external apply links. You never need to toggle a separate details step.
  • 🟢 Zero-config start: an empty input returns jobs from all over Israel, so you get useful data on the first click.
  • ♻️ Incremental monitoring: schedule it and get only new and updated jobs, plus the ones taken down if you want them. Unchanged jobs are skipped and not charged.
  • 🔔 Notifications: Telegram, Slack, Discord or any webhook (n8n / Make / Zapier).
  • 🤖 AI-ready: compact mode, drop-empty mode and a description length cap keep payloads small for LLMs and MCP.

🚀 How to scrape Drushim.co.il

  1. Open the Actor and enter search keywords in Hebrew or English (e.g. Python or מפתח), or paste a drushim.co.il link. You can also leave it empty.
  2. Tick the categories, regions, cities/areas, experience levels and job types you want.
  3. Set Max results (0 = no limit).
  4. (Optional) Turn on incremental mode and a notification channel, then Schedule it.
  5. Click Start. Results stream into the Output tab, and you can download them as JSON, CSV or Excel or pull them from the API.

No login, no cookies, no setup. It runs out of the box.

Quick-start example input

{ "query": "Python", "maxResults": 100, "areas": ["1", "4"], "experience": ["2", "3"] }

This returns up to 100 Python jobs in Tel Aviv and Rishon LeZion that ask for 1–4 years of experience. Each one includes the full requirements, every workplace address and English labels, which makes it a quick way to map the mid-level developer market in central Israel.


Input

Configure it in the visual editor with no code, or pass JSON through the API. There are 42 inputs in seven groups. In the editor every filter is an English-labelled dropdown; in JSON you pass the value codes shown in the Actor's input tab.

FieldTypeWhat it does
querystringJob titles, skills or companies in Hebrew or English. Separate several searches with commas; each one runs separately and duplicates are removed.
locationstringCity or region names in English or Hebrew, comma-separated (e.g. Tel Aviv, Haifa or ירושלים). Combined with the Regions and Cities dropdowns, a job in any of them is included; names it doesn't recognise are skipped with a warning in the log.
startUrlsarrayPaste drushim.co.il search, category, sub-category, area or job links. Any filters in the link are kept, and the region, city, experience, job-type and no-CV filters below narrow search links further.
maxResultsintegerMaximum jobs across all searches (default 25; 0 = no limit).

🎚️ Filters

Several values inside one filter widen the search (OR). Different filters combined narrow it (AND).

FieldTypeWhat it does
categoriesmulti-select34 categories: Hi-Tech – Software, Hi-Tech – QA, Information Security, Engineering, Sales, Marketing, Customer Service, Finance / Capital Markets, Medicine / Health, Logistics / Shipping, Work from Home and more.
subcategoriesarraySub-category numbers from drushim.co.il links, e.g. 481 from /jobs/subcat/481/ (Python). Several are combined with OR.
regionsmulti-select7 regions: Center (Gush Dan), Sharon, Shfela, Jerusalem area, North (incl. Haifa), South, Judea & Samaria.
areasmulti-select40 cities / areas: Tel Aviv, Jerusalem, Haifa, Be'er Sheva, Petah Tikva, Rishon LeZion, Herzliya / Ramat HaSharon, Netanya / Even Yehuda, Ashdod / Gan Yavne, Modiin, Eilat / Arava and more. Combined with Regions, a job in either is included.
latitude + longitude + radiusKmnumberKeep only jobs with an address within this many km of the point (e.g. 32.0853, 34.7818 for Tel Aviv). Jobs without coordinates are kept, and jobs outside the radius are not charged. Combine it with a region or location so the search itself stays small.
experiencemulti-selectNo experience, 1-2 years, 3-4 years, 5-6 years, 7+ years.
jobTypesmulti-selectFull-time, Part-time, Temporary, Shifts, Work from home, Hybrid, Preferred employment (discharged soldiers).
noCvRequiredbooleanOnly jobs you can apply to without uploading a CV.

📄 Output

Descriptions and requirements are included by default.

FieldTypeWhat it does
includeDetailsbooleanOn by default. Turn it off to leave out the description and requirements text for much smaller records; descriptionLength is still included.
descriptionFormatenumall, text, html or markdown.
descriptionMaxLengthintegerCut description and requirements to N characters (0 = full text).
phoneExtractionModeenumstrict (clearly formatted numbers only) or lenient (also bare Israeli numbers like 0501234567) for the rare posting that lists a phone.
compactbooleanCore fields only. Ideal for AI agents and MCP clients.
excludeEmptyFieldsbooleanDrop null / empty fields for cleaner output.

♻️ Incremental monitoring

FieldTypeWhat it does
incrementalModebooleanRemember jobs between runs and emit only what changed; unchanged jobs are not charged.
stateKeystringStable name for the tracked search (auto-derived if blank).
emitUnchanged / emitExpiredbooleanAlso emit UNCHANGED jobs / jobs that have been taken down.
skipRepostsbooleanSkip new jobs whose title and company match a job already tracked under another ID (an employer re-listing the same ad). Skipped jobs are not charged.
allowNonIncrementalFallbackbooleanIf the saved tracking state can't be opened, run as a normal run instead of failing.

🔔 Notifications

Fill in only the channels you want. Bot tokens and webhook URLs are secret inputs: encrypted at rest, masked in the UI and never written to the run log.

FieldTypeWhat it does
telegramToken + telegramChatIdstring✈️ Telegram bot token (from @BotFather) + chat or channel ID.
slackWebhookUrlstring💬 Slack Incoming Webhook URL.
discordWebhookUrlstring🎮 Discord channel webhook URL.
webhookUrl + webhookHeadersstring / object🪝 POST structured JSON anywhere: n8n, Make, Zapier.
notificationLimitintegerHow many jobs to list in each message (1–20).
notionApiKey + notionDatabaseIdstring📓 Stream every job into a Notion database as its own page. Create an internal integration at notion.so/my-integrations, connect it to your database (⋯ → Connections), then paste the token and the database URL. An empty database works: the columns are created on the first run.
notionCreatePropertiesbooleanCreate any columns the database is missing, with the right types (on by default). Turn off to write only into columns you made yourself.

🗺️ Job list mode

FieldTypeWhat it does
sourceenumsearch (default) returns full job records. sitemap returns only id, url and lastModified for every active job on the site (about 14,000) in one pass, and ignores keywords and filters.
sitemapFromDatestringJob list mode only: keep jobs modified on or after this date (YYYY-MM-DD).

⚙️ Advanced

FieldTypeWhat it does
proxyConfigurationobjectOptional. Not needed normally.
maxPagesintegerSafety limit on result pages per search (0 = no limit). Max results is the main cost control.
maxRequestRetriesintegerRetries per failed request (0–10).
ignoreUrlFailuresbooleanSkip links that aren't drushim.co.il search or job pages instead of failing the run.

More example inputs

All hi-tech software and information-security jobs in the North, hybrid or remote:

{ "categories": ["6", "30"], "regions": ["north"], "jobTypes": ["5", "6"], "maxResults": 0 }

A daily Hebrew-keyword watch that sends only new jobs to Telegram:

{ "query": "נהג, מחסנאי", "regions": ["center", "sharon"], "incrementalMode": true, "telegramToken": "<BOT_TOKEN>", "telegramChatId": "@yourchannel" }

Paste a category page and keep only entry-level jobs:

{ "startUrls": [{ "url": "https://www.drushim.co.il/jobs/cat6/" }], "experience": ["1"], "descriptionFormat": "markdown" }

Output

Each dataset item is one job. Every job arrives with its full description, requirements, locations and company details, so there's no separate details step to turn on. Here is a real record, trimmed:

{
"id": "38486441",
"url": "https://www.drushim.co.il/job/38486441/7ed063b2/",
"title": "לארגון בטחוני בלוד, דרוש/ה מפתח אוטומציות בסייבר",
"employerJobCode": "233438",
"companyName": "TCMCAREER",
"companyId": "10312",
"isConfidentialCompany": false,
"companyUrl": "https://www.drushim.co.il/דרושים-10312-tcmcareer/",
"city": "לוד",
"cityEnglish": "Lod",
"latitude": 31.951014,
"longitude": 34.888075,
"locations": [
{ "city": "לוד", "cityEnglish": "Lod", "latitude": 31.951014, "longitude": 34.888075 }
],
"areasEnglish": ["Tel Aviv", "Ramat Gan / Givatayim", "Petah Tikva", "Lod / Ramla", "Modiin"],
"regions": ["Center"],
"category": "אבטחת מידע",
"categoryEnglish": "Information Security",
"subcategories": ["מומחה/ית אבטחת מידע", "אנליסט/ית סייבר"],
"experience": "5-6 שנים",
"experienceEnglish": "5-6 years",
"jobTypes": ["משרה מלאה"],
"jobTypesEnglish": ["Full-time"],
"isRemote": false,
"isHybrid": false,
"salaryText": "15000-18000",
"salaryMin": 15000,
"salaryMax": 18000,
"salaryCurrency": "ILS",
"salaryPeriod": "MONTH",
"noCvRequired": false,
"applyUrl": "https://www.drushim.co.il/sendcv.aspx?jobcode=38486441",
"postedAt": "2026-09-21T06:18:39+03:00",
"refreshedAt": "2026-09-26T06:51:39+03:00",
"description": "מהנדס/ת בכיר/ה לאוטומציית תגובה לאירועי סייבר\nלארגון בטחוני מוביל בלוד, דרוש/ה מפתח אוטומציות בסייבר. …",
"requirements": "דרישות *חובה*:\n- מעל 4 שנות ניסיון ב-SOC / Incident Response / DFIR.\n- שליטה ב-Python. …",
"source": "drushim.co.il",
"searchKeyword": "python",
"scrapedAt": "2026-09-26T06:51:39.318715+00:00",
"isRepost": false,
"changeType": "NEW"
}

Descriptions and requirements also come as descriptionHtml / descriptionMarkdown and requirementsHtml / requirementsMarkdown, depending on descriptionFormat, and descriptionLength gives the description's length in characters. Missing values come back as null; excludeEmptyFields drops them, and compact mode keeps only the core fields for lean AI/MCP payloads. The tracking fields changeType, isRepost, repostOfId and repostDetectedAt appear in incremental mode only; isRepost flags a new job whose title and company match one seen before under a different ID. Incremental records also carry firstSeenAt, lastSeenAt and previousSeenAt, and EXPIRED records add expiredAt. In Job list mode each record holds only id, url, lastModified, source and scrapedAt.

The Output tab also includes a ready-made Overview table: job title, company, city, category, experience, job type, salary, posted date and link, with city, category, experience and job type in English.


♻️ How to monitor Drushim.co.il with incremental mode

Schedule the Actor and turn on incremental mode. Each run compares against the previous one and emits only NEW and UPDATED jobs; turn on emitExpired to also get a record for each job that was taken down (EXPIRED). Unchanged jobs are recognised and skipped, and you are not charged for them. A job that is bumped back to the top of the list without any change to its content stays UNCHANGED, so daily re-dating doesn't flood your feed.

First run (baseline)Next run (nothing changed)
Jobs foundallall
Records emitted & billedallnone
Alert messageyesnone

After the baseline, your cost depends on how much Drushim.co.il changes, not on how much of it you watch:

Daily churnof 1,000 trackedbillable recordsyou save
5 %1,0005095 %
15 %1,00015085 %
30 %1,00030070 %

Setting up scheduled monitoring

  1. Configure your keywords and filters.
  2. Turn on Incremental mode.
  3. Run it once to seed the baseline.
  4. Open the Schedules tab and set a recurring run (e.g. hourly or daily).
  5. Add a notification channel so new jobs reach you as they're posted.

EXPIRED records are only produced on runs that read the whole search (not stopped early by Max results), so you never get a false "taken down" signal.


🔔 How to set up Drushim.co.il alerts

Fill in any of the channels listed under Notifications in the Input section: Telegram, Slack, Discord or a generic webhook for n8n / Make / Zapier. After each run that finds jobs, every configured channel gets one message listing them (notificationLimit sets how many are shown). Each channel works independently, so a broken channel can't stop the scrape or the other channels. Pair it with incremental mode so each message covers only jobs that are new or changed since the last run.

Want every job as a row rather than a message? Connect a Notion database (notionApiKey + notionDatabaseId) and each job becomes a page with typed columns (salary as numbers, dates as dates, job types as tags), streamed in while the run is still going. With incremental mode on, only new and updated jobs are added.


💡 What can you do with Drushim.co.il data?

Build an Israeli job feed in English

Feed Hebrew listings into an English-language job site, newsletter or relocation portal without translating filters or labels yourself. City, category, experience and job type arrive already translated.

Recruitment and talent sourcing

Watch the categories and cities you recruit for and get new openings on Telegram or Slack as they're posted. Screening questions and the employer's own job code help agencies match and de-duplicate roles.

Hiring signals for B2B sales

A company opening many roles in one category is usually growing or changing its tech stack. Company names, profile links and posting dates turn Drushim.co.il into a list of businesses to contact, which you can rank by how many roles each one is hiring for.

Labour-market and regional research

Count openings by category, region, city, experience level and job type over time, and map them with latitude/longitude. Scheduled incremental runs build a clean history of what was posted and what was taken down.

Salary benchmarking

Where employers publish a range, you get numeric min/max in ILS with the pay period. Combine it with category and experience to benchmark offers across roles and regions.

Feed AI agents and LLM pipelines

Send compact JSON straight into an LLM context, an MCP tool or a vector store. Markdown descriptions, excludeEmptyFields and descriptionMaxLength keep token costs low.


💰 How much does it cost to scrape Drushim.co.il?

This Actor uses Apify's pay-per-event model: a small fee when a run starts, plus a fee for each job returned. The Actor's Pricing tab shows the current numbers. Prices there update live, so this page never goes out of date.

Each job arrives complete in a single pass with no extra page per job, which keeps the per-record fee at the low end of the market. Two settings cut your bill further:

  • Site-side filters: jobs you filtered out are never fetched and never billed.
  • Incremental mode: after the baseline you pay only for what changed (see the table above).

🔌 Integrations & export

Export to JSON, CSV, Excel or an HTML table, or pull results from the REST API and the JavaScript / Python clients. You can run it on a schedule and connect it to Google Sheets, Slack, Make, Zapier and n8n. It also works as an MCP tool for AI agents, where compact mode keeps token usage low.


🔗 Using the API

Run this Actor from your own code. Example with the Apify Python client:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run_input = {
"query": "Python",
"regions": ["center"],
"maxResults": 50,
}
run = client.actor("corvuslab/drushim-jobs-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["cityEnglish"], item["categoryEnglish"])

It also works with the JavaScript/TypeScript client, the Apify CLI and the REST API.


❓ FAQ

Do I need a Drushim.co.il account or a Hebrew keyboard? No. It runs without login or cookies, the filters are labelled in English, and you can search with English keywords like Python or QA. Hebrew keywords work too.

How many jobs can I get? Drushim.co.il typically lists around 13,000–17,000 live jobs. Set maxResults to 0 to collect everything a search matches. With an empty input you get jobs from across all of Israel.

Why is salary empty on most jobs? Most Israeli employers don't publish pay on Drushim.co.il. Only about 1 in 10 postings includes a salary. When one does, you get salaryText plus numeric salaryMin / salaryMax in ILS with the period. Otherwise these fields are null.

Why is the company name missing on some jobs? About 12% of employers post confidentially (often through a recruitment agency). Those records have isConfidentialCompany: true and no company profile.

Are the job descriptions in English? Descriptions and requirements are returned exactly as the employer wrote them, which is usually Hebrew and sometimes English. The structured fields (city, areas, category, experience, job type) are translated to English on every record.

What's the difference between postedAt and refreshedAt? postedAt is when the job was first published. refreshedAt is the date Drushim.co.il last bumped the listing to the top. Many jobs are refreshed daily, so use postedAt to judge how new a job really is.

Can I filter by sub-category? Yes, in two ways. Enter the sub-category number in subcategories (e.g. 481 from /jobs/subcat/481/), or paste the sub-category page link into startUrls. Every job's subcategories field is filled either way.

Does it return contact emails or phone numbers? Rarely. Drushim.co.il is an apply-through-the-site board, and fewer than 2% of postings include an email or phone in the text. Plan to use the apply link instead.


This Actor collects only publicly available job listings. You're responsible for how you use the data, in particular any personal information, and for complying with the site's terms and applicable law, including Israel's Privacy Protection Law and the GDPR where they apply. This Actor is not affiliated with, endorsed by or sponsored by Drushim.co.il.


Keywords: drushim scraper · drushim.co.il scraper · drushim api · drushim job scraper · Israel jobs scraper · Israel job listings · Hebrew job board scraper · דרושים · Tel Aviv jobs · Israeli hi-tech jobs · job monitoring · recruitment data · salary benchmarking · export to CSV · export to Excel · no-code scraper · MCP tool for AI agents