IrishJobs.ie [$1.45/1K💰] Ireland Jobs Scraper + Salary avatar

IrishJobs.ie [$1.45/1K💰] Ireland Jobs Scraper + Salary

Pricing

from $1.45 / 1,000 job postings

Go to Apify Store
IrishJobs.ie [$1.45/1K💰] Ireland Jobs Scraper + Salary

IrishJobs.ie [$1.45/1K💰] Ireland Jobs Scraper + Salary

Search IrishJobs.ie by keyword, county & salary — or any URL. Structured salary bands, skills, employer + geo. Only-new-jobs mode for scheduled runs, Telegram/Slack/Discord/WhatsApp alerts, AI-agent compact output, optional contact-email enrichment. JSON/CSV out.

Pricing

from $1.45 / 1,000 job postings

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

4

Monthly active users

4 days ago

Last modified

Categories

Share

IrishJobs.ie Ireland Jobs Scraper

Turn Ireland's leading job board into clean, structured hiring data. Type a keyword and county the way you would on the site — or paste any IrishJobs.ie URL — and get one flat row per job posting: title, employer with logo, structured EUR salary band, work type, skills, dates, full description in text/HTML/Markdown, and the apply URL. Schedule it with only-new-jobs mode and get pinged on Telegram, Slack, Discord, WhatsApp, or your webhook the moment new Irish roles appear. No browser, no flakiness, no per-request proxy bills.

How it works

How the IrishJobs.ie Scraper works

✨ Why use this scraper?

  • All-Ireland coverage — every sector and county on IrishJobs.ie, Dublin to Donegal, thousands of live postings.
  • Search like a human — keyword(s), location or county select, radius, sort, posted-within, minimum salary, agency-vs-employer. The actor builds the site's own search URLs for you; batch several keywords in one run.
  • Any search URL works too — the query string is honoured server-side, so every filter the IrishJobs web search supports (keyword, location, salary, posted date…) works here as well. No filter-mapping surprises.
  • A real monitoring feedskipReposts remembers every job you've already received (90-day window) and skips it before the page fetch: never charged twice, and scheduled runs dig until they find genuinely new postings. Pair with notifications and you have a new-jobs alert bot.
  • Notifications to your own channels — Telegram, Discord, Slack, WhatsApp, or any webhook (n8n / Make / Zapier), with job titles, salaries, and links. Silent when nothing new appeared.
  • Filters the site can't do — include/exclude keywords across title/description/skills, date windows, minutes-level recency, fully-remote-only, and a custom rule DSL on any output field. All applied before you're charged.
  • Built for AI agents — compact 15-field rows, description length caps, dot-notation field selection, empty-field pruning, and description in plain text, HTML, and Markdown.
  • Efficient JSON-based pagination — listings are walked through the site's own structured feed (25 jobs per call), not scraped from HTML. Faster, cheaper, far more robust to redesigns.
  • Three data sources merged per row — the listing feed, the JobPosting JSON-LD, and the job-ad app state. You get fields (structured salary, work type, employer jobs count, skills) that plain HTML scrapers miss.
  • Structured EUR salary bandmin / max / currency / period parsed when the employer disclosed one; the honest "€ Not Disclosed" raw text when they didn't. Never fabricated.
  • Built-in residential proxy at no extra cost — traffic is pre-routed; nothing to configure, no proxy add-ons to buy.

🎯 Use cases

WhoWhat they do with it
Recruiters & staffing agenciesMonitor competitor postings, source niches by county, track when roles close (validThrough).
HR & compensation analystsBenchmark Irish salaries by sector using the structured salary band + work type.
Job aggregators & boardsIngest a clean JSON feed of Irish vacancies with stable numeric IDs for dedup.
Market & labour researchersTrack hiring volume by industry, employer, county over time (datePosted, industry, employer.jobsCount).
Lead-gen teamsCompanies that are hiring are companies that are buying — enrich rows with contact emails (opt-in) and qualify by payment stack.

📥 Supported inputs

Keyword search (no URL needed): set query (e.g. software engineer) plus optional location/county, radius, sort, postedWithin, minSalary, companyType. Batch extra keywords via queries — each runs as its own search into one dataset. URLs below work in addition.

Input URLExampleWhat happens
Keyword listinghttps://www.irishjobs.ie/jobs/software-engineerPaginates all matches, one row per job
Keyword + locationhttps://www.irishjobs.ie/jobs/accountant/in-corkServer-side location filter honoured
Location / countyhttps://www.irishjobs.ie/jobs/dublinAll jobs for that area
Company jobs pagehttps://www.irishjobs.ie/jobs-at/{company-slug}All live postings for one employer
Filtered searchany listing URL + query string (?salary=…, ?postedWithin=…, …)Filters honoured verbatim, server-side
Job detailhttps://www.irishjobs.ie/job/{slug}/{org}-job{id}Scraped directly — exactly 1 row

Not supported: URLs from other domains (including UK Stepstone sister sites — use the dedicated TotalJobs / Caterer / CWJobs scrapers for those), CV-search or recruiter-side pages, and pages behind a login.

🔄 How it works

  1. Classify every input URL — listing vs job detail.
  2. Walk listings through IrishJobs' structured resultlist feed, 25 jobs per call, ?page=N pagination, until your maxItems cap or the result set ends.
  3. Fetch each job page in parallel (sliding-window concurrency) through the built-in residential proxy, racing three independent HTTP stacks for reliability.
  4. Parse & merge the JobPosting JSON-LD, the job-ad app state (salary text, work type, company card), and the listing item (structured salary, skills, dates) into one flat row.
  5. Push one row per job to the dataset — no padding rows, you pay per real result.

⚙️ Input parameters

Search

FieldTypeDefaultDescription
querystringJob keyword, e.g. software engineer. Leave empty to browse all jobs.
queriesarrayBatch keywords — one search each, sharing location + filters.
locationstringCity / town / region, e.g. Dublin.
countystringOne of the 26 Irish counties — matches the site's own county pages. Overrides location.
radiusintegerKm around the location (5–200).
sortstringrelevancerelevance / date / salary_high / salary_low / distance.
postedWithinintegerLast N days (site windows 1/3/7/14 — other values snap up).
minSalaryintegerMinimum annual EUR salary (site's "at least" facet).
companyTypestringemployer (direct) or agency.
startUrlsarrayListing and/or job-detail URLs — scraped in addition to the keyword search.

Filters (applied after fetch, before you're charged)

FieldTypeDescription
remoteOnlybooleanFully remote only (Remote / TELECOMMUTE tag). Hybrid does not pass.
includeKeywordsobject{"keywords":["React","Node.js"],"matchTitle":true,"matchDescription":true,"matchSkills":true} — at least one must match.
excludeKeywordsobjectSame shape — drop jobs containing any.
fromDate / toDatestringPosted-date window, YYYY-MM-DD or ISO-8601.
maxAgeMinutesintegerOnly jobs posted in the last N minutes — for hourly feeds.
customFiltersarrayRules on any field: [{"field":"salary.min","op":"gte","value":50000}]. Ops: includes / notIncludes / equals / notEquals / gt / gte / lt / lte.

Job monitoring & notifications

FieldTypeDefaultDescription
skipRepostsbooleanfalseOnly new jobs across runs (90-day memory, never charged twice, doesn't consume maxItems).
dedupStoreNamestringirishjobs-seen-jobsNamed store for the seen-jobs memory — share it across tasks or keep searches separate.
telegramToken + telegramChatIdstringYour bot from @BotFather + target chat.
discordWebhookUrl / slackWebhookUrlstringIncoming webhooks.
whatsappPhoneNumberId + whatsappAccessToken + whatsappTostringMeta Cloud API trio.
webhookUrl (+ webhookHeaders)stringAny HTTPS endpoint — JSON POST with counts, dataset link, newest items.
notificationLimitinteger10Jobs listed per message (max 25).
notifyOnlyChangesbooleantrueStay silent when nothing (new) was found.

Output & AI-agent controls

FieldTypeDefaultDescription
descriptionFormatstringallWhich derived description fields to add: all / text / html / markdown.
descriptionMaxLengthinteger0Truncate description fields to N chars (0 = off).
compactbooleanfalseFlat 15-field core rows for AI-agent / MCP pipelines.
outputFieldsarrayKeep only these fields, dot-notation (salary.min, employer.name).
excludeEmptyFieldsbooleanfalseDrop null / empty values from each row.

Volume, enrichment & advanced

FieldTypeDefaultDescription
maxItemsinteger1000Max job rows per search / listing URL. Direct detail URLs always emit 1 row each.
maxConcurrencyinteger4Parallel detail-page fetches. 3–6 is the sweet spot.
maxRequestRetriesinteger6Per-URL retry budget; each retry rotates the proxy session.
enrichEmailsbooleanfalseOpt-in: discover a contact email for each hiring employer. Billed per email found, never for misses.
qualifyByPaymentbooleanfalseOpt-in, requires enrichEmails: flag employers whose websites take payments online (Stripe, Shopify, PayPal…). Free with enrichment.
proxyobjectbuilt-inOptional override. Leave empty — the built-in residential proxy is already configured and free.

📊 Output overview

Each dataset record is one job posting as a flat row. Identity fields (jobId, jobUrl, title) sit at the top level; the employer, location, and salary are small nested objects so CSV export stays readable (employer.name, salary.min, …). Every row records which search URL it was discovered on (sourceSearchUrl), so multi-URL runs stay traceable.

The description ships in every format your pipeline could want: the original description (as the site publishes it), plus derived descriptionText (clean plain text), descriptionHtml, and descriptionMarkdown — pick a subset with descriptionFormat, or flip compact for lean AI-agent rows.

📦 Output sample

Real row from a live run (description trimmed):

{
"rowType": "job",
"jobId": "107578248",
"jobUrl": "https://www.irishjobs.ie/job/healthcare-assistant-home-care/hibernia-home-care-job107578248",
"sourceSite": "irishjobs.ie",
"title": "Dublin North Central - Healthcare Assistant / Home Care Support Worker (Full-Time)",
"description": "<div><strong>Job Title: Healthcare Assistant / Home Care Support Worker (Full-Time)</strong>…",
"descriptionText": "Job Title: Healthcare Assistant / Home Care Support Worker (Full-Time)…",
"descriptionHtml": "<div><strong>Job Title: Healthcare Assistant / Home Care Support Worker (Full-Time)</strong>…",
"descriptionMarkdown": "**Job Title: Healthcare Assistant / Home Care Support Worker (Full-Time)**…",
"datePosted": "2026-06-24T03:13:45.33Z",
"validThrough": "2026-07-24T22:00:00Z",
"industry": "Health, Health-Nursing",
"directApply": true,
"workType": "Permanent",
"contractType": null,
"workFromHome": null,
"skills": [],
"employer": {
"name": "Hibernia Home Care",
"url": "https://www.irishjobs.ie/jobs/hibernia-home-care-group?cmpId=1348188&cmp=1",
"logoUrl": "https://www.irishjobs.ie/CompanyLogos/715b3506-a4ef-4baa-a31b-9bf506f2c173.png",
"id": 1348188,
"jobsCount": 10
},
"location": {
"text": "Dublin, County Dublin, Dublin, IE",
"locality": "Dublin, County Dublin",
"region": "Dublin",
"postalCode": null,
"country": "IE",
"lat": 53.33306,
"lng": -6.24889
},
"salary": {
"rawText": "€32,691 per annum",
"min": 32691,
"max": null,
"currency": "EUR",
"period": "annum"
},
"applyUrl": "https://www.irishjobs.ie/job/healthcare-assistant-home-care/hibernia-home-care-job107578248",
"applyType": "internal",
"scrapedAt": "2026-07-13T13:13:47.372Z"
}

🗂 Key output fields

FieldNotes
Identity
jobIdStable numeric ID from the URL suffix — use for dedup across runs.
jobUrlCanonical job page on IrishJobs.ie.
sourceSearchUrlThe listing URL this row was discovered on (null for direct detail inputs).
Posting
title, descriptionDescription is the full HTML body as published.
descriptionText / descriptionHtml / descriptionMarkdownDerived formats for pipelines, LLMs, and rendering — control with descriptionFormat, cap length with descriptionMaxLength.
datePosted, validThroughISO 8601. validThrough = closing date.
industryIrishJobs category tag, e.g. "Health, Health-Nursing".
workType"Permanent" / "Contract" / "Temporary" / "Part Time" — from the job-ad metadata.
workFromHome"Hybrid" / "Remote" / null — from the listing feed.
skillsSkill tags from the listing feed, when the employer added them.
Employer
employer.name, employer.id, employer.logoUrlemployer.url is the IrishJobs company-jobs page (not the company's own website).
employer.jobsCountLive postings count for this employer — a hiring-intensity signal.
Location
location.lat / location.lngPopulated when the posting carries geo data.
Salary
salary.rawTextAlways present — "€ Not Disclosed" when the employer hid it (common in Ireland).
salary.min/max/currency/periodOnly set when a real band was disclosed. Never inferred or predicted.
Apply
applyType"internal" (one-click on IrishJobs, applyUrl = job page) / "external" (recruiter ATS — resolve by opening jobUrl) / "unknown".
Enrichment (opt-in)
contactEmail, contactWebsite, emailEnrichmentOnly when enrichEmails: true.

❓ FAQ

Do I need to paste a URL? No. Type a keyword (and optionally pick a county, radius, salary floor, sort order…) and the actor builds the search itself. URLs still work for exotic filter combos — and both can run together.

How do I get only NEW jobs on a schedule? Turn on skipReposts, schedule the actor (hourly/daily), and add a notification channel. The actor remembers every job it has emitted for 90 days, skips them before fetching (never charged twice), keeps digging until it finds maxItems genuinely new postings, and pings you only when something new landed (notifyOnlyChanges).

Which notification channels are supported? Telegram (your own bot), Discord and Slack incoming webhooks, WhatsApp via Meta's Cloud API, and a generic JSON webhook for n8n / Make / Zapier / your backend. Messages include job title, employer, location, salary, and link.

Can I filter for remote jobs? Yes — remoteOnly: true keeps only fully remote roles (tagged Remote or TELECOMMUTE; hybrid is excluded). IrishJobs has no server-side remote facet, so this filter runs after fetch: the run scans up to maxItems jobs and emits the remote subset — filtered-out jobs are never charged.

Do search filters from the website work? Yes — your URL is passed to IrishJobs' own search backend verbatim, so anything the web UI can filter (keyword, county, salary, posted date, remote…) is honoured server-side. If the URL works in your browser, it works here.

Why is salary.min null on many rows? Because the employer chose "€ Not Disclosed" — roughly half of Irish postings do. The row keeps the honest raw text, and min/max stay null. We deliberately do not copy the site's "predicted salary" widget: those are estimates, not the posting's own data.

Is applyUrl always the recruiter's site? No. When applyType is "internal", the application happens on IrishJobs itself and applyUrl equals jobUrl. When it's "external", the recruiter URL is resolved by JavaScript at click-time, which a server-side scraper can't run — open jobUrl in a browser and click Apply.

How many rows will a listing produce? Up to min(maxItems, total results) per listing URL. The first API call reports the exact total, and the run log shows it up front.

Do I need to configure a proxy? No — every request already goes through the actor's built-in residential proxy at no extra cost. The proxy input exists only if you insist on your own pool.

How fresh is the data? Every run hits the live site — rows are as current as the moment the run executes. Schedule the actor for continuous monitoring.

💬 Support

  • Found a bug or need a field added? Open an issue on the actor's Issues tab — I usually respond within a day.
  • Custom requirements (other Stepstone-family boards, bespoke output shapes, delivery to your DB)? Message me through Apify.

🛠 Additional services

  • Contact-email enrichment — flip enrichEmails on to get a contact email per hiring employer, billed only per email found.
  • Payment qualification — flip qualifyByPayment on (free with enrichment) to flag employers that take payments online: processor stack, Stripe key exposure, confidence score.

🔎 Explore more scrapers

Scraping other Stepstone-family boards? Same engine, dedicated actors:

Plus CharityJob, Goodmoves, and 100+ other actors on the memo23 profile.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by IrishJobs.ie, The Stepstone Group, or any of their subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available job-posting pages — no authenticated endpoints, recruiter-only features, or content behind an IrishJobs login. Users are responsible for ensuring their use complies with IrishJobs.ie's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organisation.


SEO Keywords

irishjobs scraper, scrape irishjobs.ie, irishjobs api, Apify irishjobs, ireland jobs scraper, irish job board scraper, dublin jobs data, cork jobs scraper, ireland job postings api, jobs ireland dataset, irish salary benchmark data, recruitment data ireland, hiring trends ireland, job market analysis ireland, ireland vacancy data, stepstone ireland scraper, jobs.ie alternative scraper, indeed ireland alternative, job listings extraction ireland, EUR salary data, JobPosting JSON-LD scraper, jobs to CSV ireland, labour market data ireland