# Jobbland Jobs Details Scraper (`alexist/jobbland-jobs-details-scraper`) Actor

Scrape job details from Jobbland.se, Sweden's leading employment platform. Extract titles, salaries, locations, company info, application URLs, and 35+ structured fields per listing — perfect for recruiters, job aggregators, and labor market analysts.

- **URL**: https://apify.com/alexist/jobbland-jobs-details-scraper.md
- **Developed by:** [Alex](https://apify.com/alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Jobbland Jobs Scraper: Harvest Swedish Job Listings Data
---

### What Is Jobbland.se?

Jobbland.se is Sweden's largest job board, hosting thousands of active listings across industries from tech to healthcare, manufacturing to hospitality. Swedish employers and recruitment agencies rely on it to reach local talent. Manually collecting and organizing this data is tedious and error-prone — the **Jobbland Jobs Scraper** automates extraction, delivering clean, structured records ideal for talent intelligence, competitive hiring analysis, and job market research.

---

### Overview

The **Jobbland Jobs Scraper** extracts detailed job postings from Jobbland.se, converting unstructured web listings into machine-readable structured data. It serves:

- **Recruiters** monitoring Swedish job market trends and competitor activity
- **HR professionals** building salary benchmarks and skill demand datasets
- **Job aggregator platforms** syndicating Swedish listings at scale
- **Labor market researchers** analyzing employment patterns across regions and sectors
- **Career development tools** integrating current Swedish job opportunities

Core strengths include direct job URL targeting, flexible error handling, and 35+ output fields covering everything from salary information to location data and application methods.

---

### Input Format

The scraper uses a straightforward JSON configuration:

```json
{
  "urls": [
    "https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185"
  ],
  "ignore_url_failures": true
}
````

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array of strings | Direct links to individual Jobbland job detail pages. Paste one URL per entry, or bulk-add a prepared list. Each URL must point to a specific job posting. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail to load. Set to `false` to halt on the first error. Recommended: `true` for large batches. |

> **Note:** Use complete job detail page URLs (e.g., `https://jobbland.se/jobb/[job-title]-[id]`), not search results pages. If a URL is inaccessible or removed, it is skipped automatically when `ignore_url_failures` is enabled.

***

### Output Format

**Sample output**

```json
{
  "address": "Stockholm",
  "municipality_name": "Stockholm",
  "postal_code": null,
  "category": {
    "id": 452,
    "name": "Administration",
    "link": "/lediga-jobb/kategori/administration",
    "slug": "administration",
    "job_entry_count": null
  },
  "company_name": "AktivBo / Performiq",
  "company": {
    "id": 412234,
    "link": "https://jobbland.se/lediga-jobb/foretag/performiq",
    "slug": "performiq",
    "logo_url": null,
    "name": "Performiq AB",
    "search_url": "https://jobbland.se/lediga-jobb/foretag/performiq",
    "vat_id": "SE5567852677",
    "description_html": "",
    "description_additional_html": "",
    "location": {
      "id": 16126,
      "name": "Stockholms län",
      "latitude": null,
      "longitude": null,
      "search_url": "https://jobbland.se/lediga-jobb/stockholms-lan",
      "parent_name": "Sverige",
      "slug": "stockholms-lan"
    },
    "finances": {
      "year": 2024,
      "revenue": 96776000,
      "profit": -5515000,
      "employees": "26",
      "revenue_change": -36,
      "profit_change": 19,
      "employees_change": -9,
      "currency": "SEK"
    },
    "vainu_link": "https://vainu.io/company/1337771/",
    "gptw_status": null,
    "social_links": {
      "homepage": "performiq.se",
      "linkedin": "https://www.linkedin.com/company/991493/",
      "twitter": "https://twitter.com/PerformIQ",
      "facebook": "https://www.facebook.com/PerformIQ/",
      "instagram": null,
      "youtube": null
    }
  },
  "ends_at": "2026-08-30T21:59:59+00:00",
  "heading": "Digital Marketing Specialist till AktivBo",
  "id": 20377185,
  "slug": "digital-marketing-specialist-till-aktivbo-spser-20377185",
  "link": "https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185",
  "location": {
    "id": 15799,
    "name": "Stockholm",
    "latitude": null,
    "longitude": null,
    "search_url": "https://jobbland.se/lediga-jobb/stockholm",
    "parent_name": "Stockholms län",
    "slug": "stockholm"
  },
  "additional_locations": [],
  "logo_url": "https://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=300&s=9a1f464fb3bcd25e0826d43853c1bcf9",
  "posted_at": "2026-07-08T22:00:01+00:00",
  "publish_level": {
    "name": "Jobbland Publicera Mera standard",
    "type": "integration",
    "recommend_in_search": true
  },
  "product": {
    "name": "Jobbland Publicera Mera standard",
    "type": "integration",
    "recommend_in_search": true
  },
  "apply_method": "other",
  "salary": null,
  "salary_estimate": {
    "percentile_10": "43600.00",
    "percentile_25": "55500.00",
    "percentile_75": "90200.00",
    "percentile_90": "114900.00",
    "median": "72000.00",
    "average": "78500.00",
    "low": "55500.00",
    "high": "90200.00",
    "year": 2024,
    "jobtitle": {
      "name": "Marketing manager",
      "slug": "marketing-manager-swe",
      "link": "/lon/marketing-manager-swe"
    },
    "period": "month"
  },
  "job_location_type": "on-site",
  "lede": null,
  "seniority": null,
  "required_spoken_languages": null,
  "ended": false,
  "apply_url": "https://jobb.performiq.se/jobb/9078/ansok/",
  "days_left": 46,
  "description_html": "<strong>Tjänstebeskrivning &amp; erbjudande</strong><br />Vill du kombinera digital marknadsföring med internationell tillväxt i ett bolag som gör verklig skillnad för människor? AktivBo söker nu en Digital Marketing Specialist som vill ta en central roll i företagets fortsatta expansion på den europeiska marknaden. Rollen har ett nära samarbete med både den svenska och tyska verksamheten, vilket innebär att du behöver vara flytande i svenska och tyska, både i tal och skrift.\n<br />\n<br />I rollen blir du en del av AktivBos marknads- och säljteam där du arbetar nära Affärschef och VD för att stärka den digitala närvaron, generera kvalificerade leads och skapa affärsmöjligheter på flera marknader.\n<br />\n<br />Om rollen\n<br />Som Digital Marketing Specialist ansvarar du för att utveckla och genomföra marknadsaktiviteter genom hela den digitala kundresan - från att skapa intresse och driva trafik till att konvertera leads till affärsmöjligheter.\n<br />\n<br />Rollen kombinerar både strategiskt och operativt arbete och omfattar områden som digital annonsering, content marketing, marketing automation, SEO, SEM, webbplatsutveckling, webinars, PR och event. Du blir en viktig del av AktivBos fortsatta tillväxtresa och får stor möjlighet att påverka hur marknadsarbetet utvecklas framåt.\n<br />\n<br />Exempel på arbetsuppgifter\n<br />•\tPlanera, genomföra och följa upp digitala marknadsföringskampanjer.\n<br />•\tAnsvara för och utveckla arbetet med SEO, SEM och konverteringsoptimering.\n<br />•\tSkapa engagerande innehåll för webbplats, blogg, sociala medier, rapporter och PR-material.\n<br />•\tBygga och optimera landningssidor, kampanjer och workflows i HubSpot eller motsvarande plattform.\n<br />•\tArbeta med lead generation och marketing automation för att stötta försäljningsarbetet.\n<br />•\tKoordinera webinars, event och andra marknadsaktiviteter.\n<br />•\tBidra till utvecklingen av AktivBos digitala marknadsstrategi på internationella marknader.\n<br /><br /><strong>Personprofil</strong><br />Vi söker dig som\n<br />•\tHar erfarenhet av digital marknadsföring inom B2B.\n<br />•\tHar erfarenhet av lead generation samt arbete med SEO och SEM.\n<br />•\tHar erfarenhet av content marketing och marketing automation.\n<br />•\tHar erfarenhet av att driva projekt och koordinera aktiviteter mellan olika intressenter.\n<br />•\tHar relevant eftergymnasial utbildning inom exempelvis marknadsföring, kommunikation eller ekonomi.\n<br />•\tKommunicerar flytande på svenska och tyska, i tal och skrift.\n<br />•\tHar goda kunskaper i engelska.\n<br />\n<br />För att trivas i rollen tror vi att du är självgående, strukturerad och prestigelös. Du gillar att ta initiativ, drivs av att skapa resultat och trivs i en miljö där du får växla mellan strategiska frågor och operativt genomförande. Du är nyfiken, utvecklingsorienterad och motiveras av att arbeta i ett företag med internationella ambitioner.\n<br /><br /><strong>Övrigt</strong><br />Start: Enligt överenskommelse \n<br />Omfattning: Heltid\n<br />Plats: Stockholm\n<br />\n<br />I denna rekrytering samarbetar AktivBo med PerformIQ. Vid frågor om tjänsten är du välkommen att kontakta ansvarig rekryteringskonsult Filip Lundström på filip.lundstrom@performiq.se. Urval och intervjuer kommer ske under vecka 33 efter semesterperioden. \n<br /><br /><strong>Företagspresentation</strong><br />AktivBo är ett innovativt SaaS- och konsultbolag som hjälper bostads- och fastighetsbolag att utveckla sina kundrelationer och förbättra livskvaliteten för hyresgäster. Idag samarbetar företaget med över 500 bostads- och fastighetsbolag i 20 länder och fortsätter sin internationella expansion.\n<br />\n<br />På huvudkontoret på Östermalm i Stockholm arbetar cirka 30 medarbetare i en entreprenöriell miljö med korta beslutsvägar, stort eget ansvar och nära samarbete mellan olika funktioner. Här erbjuds du en varierad och utvecklande roll där du får möjlighet att påverka både ditt eget arbete och företagets fortsatta tillväxt.\n<br />\n<br />AktivBo erbjuder konkurrenskraftiga villkor, bra förmåner och tryggheten i ett väletablerat bolag - kombinerat med energin och möjligheterna som finns i ett företag med stark framtidstro och tillväxtambitioner.\n<br /><br />",
  "banner_url": null,
  "export_url": "https://duunitori.imgix.net/uploads/jobbland/og-images/jobbland-og.png?auto=format&w=1200&h=630",
  "source": {
    "name": "Performiq",
    "original_url": "https://jobb.performiq.se/jobb/9078/ansok/"
  },
  "jobtitles": [
    {
      "name": "marketing consult",
      "link": "/lediga-jobb/yrke/marketing-consult",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-consult",
      "job_entry_count": 64
    },
    {
      "name": "marketing specialist",
      "link": "/lediga-jobb/yrke/marketing-specialist",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-specialist",
      "job_entry_count": 64
    },
    {
      "name": "Marketing Automation Specialist",
      "link": "/lediga-jobb/yrke/marketing-automation-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "marketing-automation-specialist",
      "job_entry_count": 14
    },
    {
      "name": "Digital Marketing Specialist",
      "link": "/lediga-jobb/yrke/digital-marketing-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "digital-marketing-specialist",
      "job_entry_count": 15
    },
    {
      "name": "Marketing manager",
      "link": "/lediga-jobb/yrke/marketing-manager-swe",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-manager-swe",
      "job_entry_count": 71
    },
    {
      "name": "Marknadsföring specialist",
      "link": "/lediga-jobb/yrke/marknadsforing-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "marknadsforing-specialist",
      "job_entry_count": 14
    }
  ],
  "jobtitles_in_area": [
    {
      "name": "marketing consult",
      "link": "/lediga-jobb/yrke/marketing-consult",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-consult",
      "job_entry_count": 31
    },
    {
      "name": "marketing specialist",
      "link": "/lediga-jobb/yrke/marketing-specialist",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-specialist",
      "job_entry_count": 31
    },
    {
      "name": "Marketing Automation Specialist",
      "link": "/lediga-jobb/yrke/marketing-automation-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "marketing-automation-specialist",
      "job_entry_count": 5
    },
    {
      "name": "Digital Marketing Specialist",
      "link": "/lediga-jobb/yrke/digital-marketing-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "digital-marketing-specialist",
      "job_entry_count": 5
    },
    {
      "name": "Marketing manager",
      "link": "/lediga-jobb/yrke/marketing-manager-swe",
      "category_name": "Ledande befattningar",
      "category_link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "marketing-manager-swe",
      "job_entry_count": 33
    },
    {
      "name": "Marknadsföring specialist",
      "link": "/lediga-jobb/yrke/marknadsforing-specialist",
      "category_name": "Marknadsföring",
      "category_link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "marknadsforing-specialist",
      "job_entry_count": 5
    }
  ],
  "categories": [
    {
      "id": 473,
      "name": "Marknadsföring",
      "link": "/lediga-jobb/kategori/marknadsforing",
      "slug": "marknadsforing",
      "job_entry_count": 146
    },
    {
      "id": 682,
      "name": "Ledande befattningar",
      "link": "/lediga-jobb/kategori/ledande-befattningar",
      "slug": "ledande-befattningar",
      "job_entry_count": 1393
    },
    {
      "id": 476,
      "name": "Marknadsföring, media och kommunikation",
      "link": "/lediga-jobb/kategori/marknadsforing-media-och-kommunikation",
      "slug": "marknadsforing-media-och-kommunikation",
      "job_entry_count": 187
    },
    {
      "id": 637,
      "name": "Affärsutveckling",
      "link": "/lediga-jobb/kategori/affarsutveckling",
      "slug": "affarsutveckling",
      "job_entry_count": 553
    }
  ],
  "parent_categories": [
    {
      "id": 452,
      "name": "Administration",
      "link": "/lediga-jobb/kategori/administration",
      "slug": "administration",
      "job_entry_count": null
    },
    {
      "id": 476,
      "name": "Marknadsföring, media och kommunikation",
      "link": "/lediga-jobb/kategori/marknadsforing-media-och-kommunikation",
      "slug": "marknadsforing-media-och-kommunikation",
      "job_entry_count": null
    },
    {
      "id": 455,
      "name": "Ekonomi och juridik",
      "link": "/lediga-jobb/kategori/ekonomi-och-juridik",
      "slug": "ekonomi-och-juridik",
      "job_entry_count": null
    }
  ],
  "main_categories": [
    "Administration",
    "Ekonomi och juridik",
    "Marknadsföring, media och kommunikation"
  ],
  "subcategories": [
    "Affärsutveckling",
    "Ledande befattningar",
    "Marknadsföring"
  ],
  "logo_url_imgix": {
    "src": "https://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=59&s=4693a5fd59f43c3a03420d5346056e63",
    "srcset": "https://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=59&s=4693a5fd59f43c3a03420d5346056e63 59w,\nhttps://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=72&s=b24740782be1ec50e20704e113d77440 72w,\nhttps://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=118&s=4e2e75a35953c6005aa584b44fc91520 118w,\nhttps://duunitori-ext2.imgix.net/https%3A%2F%2Fcv-performiq-se.app.intelliplan.eu%2FJobAd%2FLogo%3Fjaid%3D9078?auto=format&w=177&s=eb4fc181a11102d6f5b680b32555b0e2 177w",
    "sizes": [
      59,
      72,
      118,
      177
    ]
  }
}
```

Each job scraped from Jobbland returns a comprehensive record with 35+ fields:

#### Core Identification

| Field | Purpose |
|---|---|
| `ID` | Unique Jobbland identifier for the job posting |
| `Slug` | URL-friendly identifier derived from the job title |
| `Heading` | Official job title as listed |
| `Link` | Direct URL to the job posting |
| `Apply URL` | URL for the application process or external application portal |

#### Geographic & Location Data

| Field | Purpose |
|---|---|
| `Address` | Full street address where the role is based |
| `Location` | Primary work location name |
| `Additional Locations` | Secondary or flexible work locations |
| `Municipality Name` | Swedish municipality (kommun) where the job is situated |
| `Postal Code` | Postal/ZIP code of the job location |
| `Job Location Type` | Classification (e.g., on-site, remote, hybrid) |

#### Company Information

| Field | Purpose |
|---|---|
| `Company` | Employer name and company entity |
| `Company Name` | Display name of the hiring company |
| `Logo URL` | URL to the company's logo image |
| `Logo URL Imgix` | Optimized logo URL via Imgix CDN for fast loading |
| `Banner URL` | Company banner image URL |
| `Source` | Original platform or listing source |

#### Job Classification & Categories

| Field | Purpose |
|---|---|
| `Category` | Primary job category (e.g., "Technology," "Healthcare") |
| `Categories` | All applicable categories for the role |
| `Parent Categories` | Higher-level category groupings |
| `Main Categories` | Broad industry classifications |
| `Subcategories` | Detailed job function classifications |
| `Job Titles` | All job titles associated with the posting |
| `Job Titles In Area` | Similar job titles in the same geographic region |

#### Compensation & Work Terms

| Field | Purpose |
|---|---|
| `Salary` | Stated salary range or amount if disclosed |
| `Salary Estimate` | Estimated salary based on industry data (if calculated) |
| `Seniority` | Experience level required (e.g., entry-level, senior) |
| `Required Spoken Languages` | Languages required for the role |

#### Content & Listings

| Field | Purpose |
|---|---|
| `Lede` | Opening paragraph or summary of the job description |
| `Description HTML` | Full job description in HTML format |
| `Product` | Internal categorization or product name |
| `Publish Level` | Publishing tier or visibility status |

#### Timing & Lifecycle

| Field | Purpose |
|---|---|
| `Posted At` | Timestamp when the job was published |
| `Ends At` | Deadline or expiry date for the listing |
| `Ended` | Boolean flag indicating if the listing has expired |
| `Days Left` | Number of days until the listing closes |

#### Administrative Fields

| Field | Purpose |
|---|---|
| `Apply Method` | How candidates apply (email, web form, external link) |
| `Export URL` | URL for exporting or sharing the job listing |

***

### How to Use

1. **Collect URLs** — Browse Jobbland.se and open job detail pages. Copy the full URL from the address bar.
2. **Build your input** — Add URLs to the `urls` array. For bulk runs, use the "Bulk edit" feature to paste multiple URLs at once.
3. **Configure error handling** — Set `ignore_url_failures` to `true` if running multiple URLs (recommended to prevent interruptions).
4. **Execute the scraper** — Start the run and monitor progress in the logs.
5. **Export data** — Download results as JSON, CSV, or Excel after completion.

**Best practices:**

- Test with 2–3 URLs first to verify data quality before large-scale runs.
- Ensure URLs are active and point to individual job postings, not listings or search pages.
- Use the `ignore_url_failures` option for batch operations to improve reliability.

***

### Use Cases & Business Value

- **Talent acquisition:** Track hiring trends across Swedish regions and industries
- **Salary benchmarking:** Analyze compensation data across roles and seniority levels
- **Job board aggregation:** Syndicate Swedish listings into multi-source job platforms
- **Market research:** Study labor demand patterns and skill requirements
- **Competitive intelligence:** Monitor competitor hiring activity and job positioning

The Jobbland Jobs Scraper transforms raw listings into actionable intelligence, saving hours of manual work and enabling data-driven HR decisions.

***

### Conclusion

The **Jobbland.se Jobs Scraper** is an efficient tool for anyone seeking structured Swedish employment data. With 35+ output fields and flexible configuration, it streamlines data collection and powers insights into Sweden's dynamic job market. Start scraping today and unlock the full potential of Jobbland listings.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Specific jobs urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## Actor input object example

```json
{
  "urls": [
    "https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185"
  ],
  "ignore_url_failures": true
}
```

# 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 = {
    "urls": [
        "https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185"
    ],
    "ignore_url_failures": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/jobbland-jobs-details-scraper").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 = {
    "urls": ["https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185"],
    "ignore_url_failures": True,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/jobbland-jobs-details-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://jobbland.se/jobb/digital-marketing-specialist-till-aktivbo-spser-20377185"
  ],
  "ignore_url_failures": true
}' |
apify call alexist/jobbland-jobs-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=alexist/jobbland-jobs-details-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jobbland Jobs Details Scraper",
        "description": "Scrape job details from Jobbland.se, Sweden's leading employment platform. Extract titles, salaries, locations, company info, application URLs, and 35+ structured fields per listing — perfect for recruiters, job aggregators, and labor market analysts.",
        "version": "0.0",
        "x-build-id": "JcKVORC04PQJbUeGI"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/alexist~jobbland-jobs-details-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-alexist-jobbland-jobs-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/alexist~jobbland-jobs-details-scraper/runs": {
            "post": {
                "operationId": "runs-sync-alexist-jobbland-jobs-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/alexist~jobbland-jobs-details-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-alexist-jobbland-jobs-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Specific jobs urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Specific jobs urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
