# Ireland Jobs Scraper: jobs.ie & IrishJobs.ie Combined + Salary (`getascraper/ireland-jobs-feed`) Actor

Combines jobs.ie and IrishJobs.ie, Ireland's two leading job boards, into one structured feed per run: full salary, employer, and location data. Includes a bonus Employers hiring-signal dataset for B2B prospecting, plus 5-state monitor mode. Pulls into n8n, Zapier, or Clay via API. $0.003/job.

- **URL**: https://apify.com/getascraper/ireland-jobs-feed.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 18 total users, 15 monthly users, 98.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.25 / 1,000 job postings

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

## 💼 Ireland Jobs Scraper: jobs.ie & IrishJobs.ie Combined + Salary

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-bottom:0">
<tr>
<td style="padding:24px 28px;background:#EAF5EF;border:1px solid #C5DFD0;border-top:4px solid #0B3D2E;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Both of Ireland's big job boards, in one clean feed.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Search jobs.ie and IrishJobs.ie together and get one list: title, employer, location, salary and full description. A second list shows which companies are hiring, ready for outreach.</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 #C5DFD0;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#0B3D2E">🌐 Two boards, one format</span><br>
<span style="font-size:12px;color:#57534E">jobs.ie and IrishJobs.ie are searched in one run and returned in one consistent format.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DFD0;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0B3D2E">💶 Salary as numbers</span><br>
<span style="font-size:12px;color:#57534E">Minimum, maximum, currency and pay period are split out wherever the employer shares a figure.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DFD0;border-left:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#0B3D2E">🏢 Who is hiring</span><br>
<span style="font-size:12px;color:#57534E">A second dataset lists each employer with its open roles, counties and sample job titles.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #C5DFD0;border-left:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#0B3D2E">🔔 What changed</span><br>
<span style="font-size:12px;color:#57534E">Turn on monitor mode to see new, updated, reappeared and expired jobs since your last run.</span>
</td>
</tr>
</table>

Ireland Jobs Scraper collects the public listings on [jobs.ie](https://www.jobs.ie) and [IrishJobs.ie](https://www.irishjobs.ie), Ireland's two leading job boards. It returns them in one dataset with the same fields for every job. You get structured salary, the employer, the location with coordinates, and the full description.

The two boards mostly carry different roles, so searching both gives you wider coverage than either one alone. If a role is posted on both, the Actor matches the two and returns one result with both links. This is a safeguard, and it applies rarely. No login or account is needed.

### 🎯 Why use Ireland Jobs Scraper?

**"I need both boards covered, but I don't want to run two tools and merge two formats."**
A recruiter, staffing agency or job-board owner runs one search and gets one list from both boards, ready to publish or forward.

**"I want to know which Irish companies are hiring this week."**
A sales or business development team uses the Employers dataset: one row per company across both boards, with open-role counts, counties and sample job titles. It makes a ready list for outreach.

**"I'm building a jobs dashboard and need clean data from both boards."**
A market analyst or aggregator builder schedules the Actor and gets one structured feed. Monitor mode shows what changed between runs.

### 🚀 How to use Ireland Jobs Scraper

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#EAF5EF;border:1px solid #C5DFD0;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0B3D2E;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Pick your categories</span><br>
<span style="font-size:12px;color:#57534E">Enter slugs like it, sales or healthcare. Every category is searched on both boards.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF5EF;border:1px solid #C5DFD0;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0B3D2E;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run it</span><br>
<span style="font-size:12px;color:#57534E">Both boards are searched and merged into one feed, with the Employers list alongside.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#EAF5EF;border:1px solid #C5DFD0;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#0B3D2E;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Schedule it</span><br>
<span style="font-size:12px;color:#57534E">Turn on monitor mode to get what is new, updated or gone on every run.</span>
</td>
</tr>
</table>

### 📥 Input

| Field | Type | Required | Description |
|---|---|---|---|
| Categories | array of strings | No | Category slugs to search, for example `it`, `sales`, `healthcare`, `accountancy` or `hr`. Each one is searched on both boards. |
| Job type | enum | No | Any, Permanent, Part time, Contract, Temporary or Work from home. Applied by the boards themselves, so it narrows results at the source. |
| Company type | enum | No | Any, Direct employer only, or Agency only. Pick one: the boards cannot combine both. |
| Posted within (days) | integer | No | Only jobs posted in the last 1, 3, 7 or 14 days. Leave empty for no date limit. |
| Minimum salary period | enum | No | Annual, Daily or Hourly. This is the period the minimum salary amount is measured in. |
| Minimum salary amount | integer | No | Only jobs paying at least this much in euro, in the period you chose. Ignored unless a period is set. |
| Max items per source | integer | No | Most jobs to collect from each board, per category. |
| Include full description | boolean | No | Add the complete job description to every row. |
| Monitor mode | enum | No | `Snapshot` returns the current feed. `Changes` compares with your last run and flags new, updated, reappeared, unchanged and expired jobs. |
| Include unchanged jobs | boolean | No | Only used when Monitor mode is `Changes`. Also returns jobs that have not changed. |
| Monitor state name | string | No | A label that keeps the change history of one schedule separate from another. |
| Proxy configuration | proxy | No | Defaults to an Irish residential proxy, which both boards need in order to answer. |
| Max concurrency | integer | No | Most pages fetched at the same time across both boards. Lower it if the log shows retries. |
| Max request retries | integer | No | How many times a failed page is tried again before it is skipped. |

### 📤 Output

Every run returns two datasets:

- **🔍 Jobs** (the default dataset): one row per job, merged across both boards. A role found on one board has one source link. A role found on both has both links and the evidence that justified merging them.
- **🏢 Employers** (open it from the Storage tab): one row per employer across both boards, with total open roles, counties, industries and the board or boards hiring. Roles posted on both boards count once.

Download either dataset as JSON, CSV, HTML or Excel. You can also connect it to tools like n8n, Zapier or Clay.

#### Sample job

```json
{
  "id": "jobs_ie:108183257",
  "title": "Senior IT Support Engineer",
  "employer": {
    "name": "New Payment Innovation Limited",
    "url": "https://www.jobs.ie/jobs/new-payment-innovation-limited-1?cmpId=1457507&cmp=1",
    "logoUrl": "https://www.jobs.ie/companyprofileslogos/3ed529d6-e1ce-4faf-b6ae-c009a83861ec.png"
  },
  "location": {
    "locality": "Dublin, County Dublin",
    "region": "Leinster",
    "country": "IE",
    "lat": 53.3330612,
    "lng": -6.2488899,
    "text": "Dublin, County Dublin, Leinster"
  },
  "salary": {
    "rawText": "€65,000 per annum",
    "min": 65000,
    "max": 65000,
    "currency": "EUR",
    "period": "annum"
  },
  "datePosted": "2026-10-15T16:20:11.39Z",
  "validThrough": "2026-11-15T00:00:00Z",
  "industry": "IT, IT-Support",
  "description": "<div><p><strong>About Us</strong></p><p>This role will sit across our two ...</p></div>",
  "applyUrl": "https://www.jobs.ie/job/senior-it-support-engineer/new-payment-innovation-limited-job108183257",
  "category": "it",
  "sources": [
    {
      "site": "jobs_ie",
      "siteLabel": "jobs.ie",
      "url": "https://www.jobs.ie/job/senior-it-support-engineer/new-payment-innovation-limited-job108183257",
      "jobId": "108183257",
      "postedDate": "2026-10-15T16:20:11.39Z"
    }
  ],
  "isCrossPosted": false,
  "scrapedAt": "2026-10-18T17:09:39.539Z"
}
```

#### Sample employer

```json
{
  "employerKey": "connolly motor",
  "employerName": "Connolly Motor Group",
  "employerUrl": "https://www.jobs.ie/jobs/connolly-motor-group-1?cmpId=1258098&cmp=1",
  "totalOpenRoles": 1,
  "sources": ["jobs_ie"],
  "sourceLabels": ["jobs.ie"],
  "industries": ["IT, IT-Infrastructure"],
  "counties": ["Connaught"],
  "sampleJobTitles": ["IT Systems Administrator"],
  "lastSeenAt": "2026-10-18T17:09:49.144Z",
  "scrapedAt": "2026-10-18T17:09:49.144Z"
}
```

### 🗂️ Data table

#### Jobs

| Field | Type | Description |
|---|---|---|
| id | string | Stable ID for this job across runs. |
| title | string | Job title. |
| employer | object | Employer name, profile link and logo. |
| location | object | Place name, locality, region, country and coordinates where available. |
| salary | object | Minimum, maximum, currency and pay period where the employer shares a figure, plus the original text. |
| contractType | string | Permanent, Contract, Temporary or Part time, as the board shows it. |
| datePosted | string | Date and time the job was posted. |
| validThrough | string | Application deadline, when published. |
| industry | string | Industry, when published. |
| description | string | Full job description. |
| applyUrl | string | Link to apply. |
| category | string | The category the job was found under. |
| sources | array | Each board the job was found on: one normally, two when posted on both. |
| isCrossPosted | boolean | True when the job was matched and merged across both boards. |
| dedupMatch | object | On merged jobs: the title, date and salary agreement behind the match. |
| changeType | string | With monitor mode on: new, updated, reappeared, unchanged or expired. |
| changedFields | array | With monitor mode on: which fields changed since the last run. |
| firstSeenAt | string | With monitor mode on: when the job first appeared in your runs. |
| lastSeenAt | string | With monitor mode on: when the job was last seen. |
| expiredAt | string | With monitor mode on: when the job stopped appearing. |
| scrapedAt | string | Date and time the row was collected (UTC). |

#### Employers

| Field | Type | Description |
|---|---|---|
| employerKey | string | Lower-case company key used to group roles. |
| employerName | string | Company name. |
| employerUrl | string | Link to the company profile on the board. |
| logoUrl | string | Company logo, when published. |
| totalOpenRoles | integer | Open roles found for this company in the run. |
| sources | array | Board IDs where the company is hiring. |
| sourceLabels | array | Board names where the company is hiring. |
| industries | array | Industries of its open roles. |
| counties | array | Counties or regions of its open roles. |
| sampleJobTitles | array | A few of its open job titles. |
| firstSeenAt | string | With monitor mode on: when the company first appeared. |
| lastSeenAt | string | When the company was last seen hiring. |
| scrapedAt | string | Date and time the row was collected (UTC). |

### 💰 Pricing

Pricing is pay per result. You pay for each job returned in the Jobs dataset, an empty run costs nothing, and there are no subscriptions. The Employers dataset is included at no extra charge.

### ⭐ Enjoying Ireland Jobs Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#EAF5EF;border:1px solid #C5DFD0;border-left:5px solid #0B3D2E;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">Saved a morning of copying listings from two job boards? Say so in a review.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other recruiters and analysts find this Actor. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#0B3D2E;border:1px solid #0B3D2E;border-left:5px solid #0B3D2E;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/ireland-jobs-feed/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>

### 💡 Tips

- Start with one category and a small Max items per source to see the fields before you scale up.
- Schedule the Actor with monitor mode on for a weekly "what is new" feed, instead of downloading the full list each time.
- Give each schedule its own Monitor state name, so their change histories never mix.

### ❓ FAQ

##### Do I need a jobs.ie or IrishJobs.ie account?

No. Every field comes from the boards' public job pages. No login, password or API key is needed.

##### Will the boards block it?

Both boards refuse ordinary connections, so the Actor uses an Irish residential proxy by default. Keep that setting, and lower Max concurrency if the run log shows retries.

##### How fresh is the data?

Every run reads the live job pages, so you get the listings as they are at that moment.

##### Do jobs.ie and IrishJobs.ie post the same jobs?

Mostly not. In our test runs the two boards carried largely different roles, which is why searching both gives wider coverage. When a role does appear on both, the Actor matches it on employer, title and date, checks disclosed salary where both show one, and returns one result with both links. An uncertain match is left separate, so two different jobs are never merged.

##### What happens to a job that is only on one board?

It is returned as a normal result with one source link. Matching only affects jobs found on both boards.

##### Will monitor mode count a job twice if it moves from one board to both?

No. Monitor mode compares against the merged feed, so a job you already had that now also appears on the other board stays unchanged.

### 🔗 Other actors

- [CWJobs Scraper: UK Tech Jobs, Salary Bands, and Geo Coordinates](https://apify.com/getascraper/cwjobs-scraper) ↗ - UK tech and IT job listings from CWJobs, from the same family of job boards as jobs.ie and IrishJobs.ie.
- [S1 Jobs Scraper: Scotland Vacancies, Salaries, and Coordinates](https://apify.com/getascraper/s1jobs-scraper) ↗ - Vacancies, salaries and coordinates from Scotland's leading job board.
- [TargetJobs UK scraper: graduate jobs, schemes, and internships](https://apify.com/getascraper/targetjobs-uk-scraper) ↗ - UK graduate and early-career jobs from TARGETjobs.
- [Welcome to the Jungle (WTTJ) Jobs Scraper: Salary and RAG Data](https://apify.com/getascraper/welcome-to-the-jungle-jobs-scraper) ↗ - Tech and startup jobs across Europe from Welcome to the Jungle.
- [NoFluffJobs Scraper: Tech Jobs, Salaries and Skills, No Login](https://apify.com/getascraper/nofluffjobs-scraper) ↗ - Tech jobs with transparent salary ranges from Poland's NoFluffJobs.

# Changelog

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

# Actor input Schema

## `categories` (type: `array`):

Category URL slugs to search, taken from either site's /jobs/<slug> path. Verified identical on both sites: it, sales, healthcare, accountancy, hr - other slugs from either site's own category pages also work. One category keeps the mandatory default run fast; add more to widen the search.

## `jobType` (type: `string`):

Restrict to one employment type. Changes the site's own listing URL (e.g. /jobs/permanent/it) so it narrows results at the source, not after the fact.

## `companyType` (type: `string`):

Restrict to roles posted directly by the employer, or only by recruitment agencies. Single-select: both sites' own facet filter does not reliably support selecting both types at once (confirmed live - it silently falls back to unfiltered).

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

Only show jobs posted in the last N days. Must be exactly 1, 3, 7, or 14 - the site's own real facet options; any other value is ignored (no date filter applied). Leave blank for no date limit.

## `salaryPeriod` (type: `string`):

Which pay period the Minimum Salary Amount below is measured in. Leave as "No minimum" to skip salary filtering entirely - both sites only expose these three periods (no weekly or monthly option exists on either platform).

## `salaryMin` (type: `integer`):

Only show jobs paying at least this much, in euro, measured in the period chosen above (e.g. 45000 with Annual salary = €45,000+ per year). Ignored unless Minimum Salary Period is also set.

## `maxItemsPerSource` (type: `integer`):

Maximum jobs to fetch from EACH source site per category (so up to 2x this many raw jobs before dedup). Kept at 10-15 by default: this Actor always fetches both sites at once and then runs cross-source matching on top, which adds real processing time beyond what a single-site scraper's equivalent limit would take.

## `includeDescription` (type: `boolean`):

Include the full job description text. Unlike a typical enrichment toggle this adds no extra request: every job already needs its detail page fetched for structured salary, employer, and location data, so the description comes along for free. Turn off only to shrink the dataset size.

## `monitorMode` (type: `string`):

"Snapshot" outputs the current deduplicated feed with no history. "Changes" computes NEW / UPDATED / REAPPEARED / UNCHANGED / EXPIRED status against the previous run of the same category set, over the ALREADY-DEDUPLICATED feed - so a job already seen on jobs.ie that simply also turns up on IrishJobs.ie this run is correctly left UNCHANGED, not wrongly flagged NEW the way a single-site monitor pointed at either board alone would.

## `includeUnchanged` (type: `boolean`):

Only applies when Monitor Mode is "Changes". Off by default so the dataset stays focused on what actually moved (NEW/UPDATED/REAPPEARED/EXPIRED); turn on to also emit every UNCHANGED job on every run.

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

Optional label that keeps this run's Monitor Mode history separate from another schedule using different categories. Leave blank unless you run this Actor on multiple schedules with different category sets and want each to track its own NEW/UPDATED/EXPIRED history independently.

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

Residential proxy in Ireland is required: jobs.ie and IrishJobs.ie both return an Akamai edge-ACL "Access Denied" page to datacenter-proxy and unproxied requests on listing and detail pages (confirmed live during this build), so switching this to datacenter will silently return zero jobs.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests across both sites. Lower this if the run log shows retries or blocked attempts; raise it to finish larger custom runs faster.

## `maxRequestRetries` (type: `integer`):

How many times to retry a failed page request, listing or detail, before giving up on it.

## Actor input object example

```json
{
  "categories": [
    "it"
  ],
  "jobType": "any",
  "companyType": "any",
  "salaryPeriod": "",
  "maxItemsPerSource": 12,
  "includeDescription": true,
  "monitorMode": "snapshot",
  "includeUnchanged": false,
  "stateName": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IE"
  },
  "maxConcurrency": 5,
  "maxRequestRetries": 3
}
```

# Actor output Schema

## `jobs` (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 = {
    "categories": [
        "it"
    ],
    "jobType": "any",
    "companyType": "any",
    "salaryPeriod": "",
    "maxItemsPerSource": 12,
    "includeDescription": true,
    "monitorMode": "snapshot",
    "includeUnchanged": false,
    "stateName": "",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "IE"
    },
    "maxConcurrency": 5,
    "maxRequestRetries": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/ireland-jobs-feed").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 = {
    "categories": ["it"],
    "jobType": "any",
    "companyType": "any",
    "salaryPeriod": "",
    "maxItemsPerSource": 12,
    "includeDescription": True,
    "monitorMode": "snapshot",
    "includeUnchanged": False,
    "stateName": "",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "IE",
    },
    "maxConcurrency": 5,
    "maxRequestRetries": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/ireland-jobs-feed").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 '{
  "categories": [
    "it"
  ],
  "jobType": "any",
  "companyType": "any",
  "salaryPeriod": "",
  "maxItemsPerSource": 12,
  "includeDescription": true,
  "monitorMode": "snapshot",
  "includeUnchanged": false,
  "stateName": "",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IE"
  },
  "maxConcurrency": 5,
  "maxRequestRetries": 3
}' |
apify call getascraper/ireland-jobs-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/ireland-jobs-feed"
        }
    }
}
```

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/DeB89xGIdK3oFCaSH/builds/Sgt0C5DM9rXD9JaCs/openapi.json
