# FINN.no Job Scraper (`solidcode/finn-no-scraper`) Actor

\[💰 $1.00 / 1K] Extract job listings from FINN.no, Norway's largest classifieds and job marketplace. Search by keyword and county, filter by occupation, employment type, contract, remote work and sector, and get titles, employers, locations, salaries, deadlines and full descriptions.

- **URL**: https://apify.com/solidcode/finn-no-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Features:** Limited permissions
- **Stats:** 15 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

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

## FINN.no Job Scraper

Pull job listings from FINN.no — Norway's dominant classifieds and job marketplace — at scale, with employer names, locations down to the county (fylke), published pay ranges, application deadlines, contact persons, and full Norwegian job descriptions in one clean row per posting. Filter by 16 counties, 13 occupation categories, working hours, contract type, remote work, sector, and work language. Built for Norwegian recruiters, HR-tech platforms, labor-market analysts, and relocation services who need structured finn.no/job data without copy-pasting ads one page at a time.

### Why This Scraper?

- **All 16 Norwegian counties (fylke)** — from Oslo and Akershus to Troms, Finnmark, and Svalbard. Each row's county matches the job's listed location, and multi-site ads list every place they hire in (`workLocations`).
- **13 occupation categories (yrkeskategori)** — narrow to Nursing, Healthcare staff, Engineering, Skilled trades, Teaching, Childcare, Logistics, Management, and more without crafting search links by hand.
- **Six precision filters in one actor** — full-time vs. part-time, four contract types (permanent, temporary, engagement/project, summer/seasonal), partial or fully remote, private vs. public sector, work language (Norwegian or English), and management-roles-only (leder, direktør, fagleder). Most filters are also stamped on every matching row (for example Heltid, Offentlig, Engelsk), so fast runs stay labeled.
- **Full job descriptions and named contacts** — opt-in detail enrichment adds each ad's full description (text and HTML), street address, contact person with title, company website, industry, contract type, hours, home-office policy, work languages, and FINN's own job-function categories.
- **Structured pay ranges** — minimum and maximum pay in NOK, per year or per hour, plus the employer's own pay note, whenever the ad publishes a salary. `positions` shows how many seats the employer is hiring for.
- **Deadlines you can act on** — every ad with a fixed closing date carries it, and an Apply ASAP flag (`deadlineAsap`) marks ads that say "Snarest" instead of a date.
- **"Posted today" and newest-first sorting** — surface fresh listings the moment they hit finn.no, or leave the keyword box empty to list every job that matches your filters.
- **Up to ~2,500 jobs per search** — follows FINN.no's own ceiling, with exact result limits up to 50; combine county and occupation facets to push total coverage far beyond that.
- **Direct FINN.no URL replay** — paste any filtered finn.no/job search you built in the browser and the scraper honors those exact filters, with automatic de-duplication across overlapping keyword searches.

### Use Cases

**Recruitment & Talent Sourcing**

- Build candidate-outreach lists from named contact persons on every detail-enriched ad
- Track competitor job postings by employer across counties
- Monitor newly posted roles in a single occupation category daily
- Map open-position counts to gauge which employers are hiring at volume

**Labor Market Research**

- Measure hiring demand by county, occupation, and sector over time
- Compare full-time vs. part-time and permanent vs. temporary mix across regions
- Track salary signals and remote-work adoption across Norwegian industries
- Quantify public-sector vs. private-sector hiring activity

**Competitive Hiring Intelligence**

- Watch a rival employer's open roles, job functions, and deadlines
- Benchmark your job-ad volume against sector peers
- Detect expansion signals from sudden spikes in a company's postings
- Identify which roles competitors recruit for in English vs. Norwegian

**Relocation & Immigration Services**

- Surface English-language roles for international candidates relocating to Norway
- Filter remote-eligible positions for clients working from abroad
- Map opportunities by county to advise on where to settle
- Pull application deadlines so clients never miss a closing date

**Aggregators & Data Products**

- Feed a job board or vertical search engine with fresh Norwegian listings
- Enrich an existing CRM with employer, location, and contact data
- Power salary-benchmarking and hiring-trend dashboards
- Build alerting systems for new postings in target categories

### Getting Started

#### Simple Keyword Search

The fastest way to start — one keyword, default limit:

```json
{
    "searchQueries": ["utvikler"],
    "maxResults": 50
}
```

#### Filtered County + Occupation Search

The most useful combination — narrow by region, category, and freshness:

```json
{
    "searchQueries": ["sykepleier"],
    "counties": ["Oslo", "Akershus"],
    "occupations": ["Sykepleier"],
    "employmentExtent": "fulltime",
    "sortBy": "published",
    "maxResults": 500
}
```

#### Advanced Multi-Filter Run

Most options populated for deep, targeted research — permanent, full-time, English-speaking engineering and management roles on the west coast, with full details:

```json
{
    "searchQueries": ["prosjektleder", "ingeniør"],
    "counties": ["Vestland", "Rogaland"],
    "occupations": ["Ingeniør", "Ledelse"],
    "employmentExtent": "fulltime",
    "contractType": "permanent",
    "sector": "private",
    "workLanguage": "english",
    "sortBy": "published",
    "fetchJobDetails": true,
    "maxResults": 500
}
```

#### Replay a Direct FINN.no Search

Already dialed in a search on finn.no? Paste the URL as-is (this one lists developer jobs in Oslo):

```json
{
    "startUrls": ["https://www.finn.no/job/search?q=utvikler&location=1.20001.20061"],
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | array | `[]` (form prefilled with `utvikler`) | Job titles or keywords. Each keyword runs a separate search; results are merged and de-duplicated. Up to 50 keywords. Leave empty to list all jobs that match your filters. |
| `startUrls` | array | `[]` | Full FINN.no job-search URLs. Filters baked into each URL are scraped exactly as-is (the filters below apply to keyword searches only). Up to 50 URLs. |
| `maxResults` | integer | `100` | Max jobs per search keyword or URL. Limits of 50 or less are exact; larger limits can run slightly over (by less than 2%). Set to `0` for all available. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `counties` | array | `[]` | One or more of 16 Norwegian counties (Oslo, Akershus, Vestland, Rogaland, Trøndelag, Innlandet, Agder, Østfold, Buskerud, Vestfold, Nordland, Møre og Romsdal, Telemark, Troms, Finnmark, Svalbard). Empty = all of Norway. |
| `occupations` | array | `[]` | One or more of 13 categories, entered by their Norwegian name: `Barnehage` (childcare), `Butikkansatt` (retail), `Helsepersonell` (healthcare staff), `Håndverker` (skilled trades), `Ingeniør` (engineering), `Kontor og administrasjon` (office & administration), `Kundeservice` (customer service), `Ledelse` (management), `Logistikk og lager` (logistics & warehouse), `Mat og servering` (food & hospitality), `Omsorg og sosialt arbeid` (care & social work), `Sykepleier` (nursing), `Undervisning og pedagogikk` (teaching & education). |
| `employmentExtent` | string | `""` (Any) | Working hours: `fulltime` (heltid) or `parttime` (deltid). |
| `contractType` | string | `""` (Any) | Contract: `permanent` (fast), `temporary` (vikariat), `engagement` (engasjement + prosjekt), or `seasonal` (sommer/sesong). |
| `remoteWork` | string | `""` (Any) | Remote arrangement: `partial` (delvis hjemmekontor) or `full` (kun hjemmekontor). |
| `sector` | string | `""` (Any) | Employer sector: `private` (privat) or `public` (offentlig). |
| `workLanguage` | string | `""` (Any) | Working language: `norwegian` (norsk) or `english` (engelsk). |
| `managerRole` | boolean | `false` | Only return management / leadership positions (leder, direktør, fagleder). |
| `postedToday` | boolean | `false` | Only return jobs posted in the last 24 hours (Nye i dag), counted from when the run starts, so runs scheduled once a day don't overlap. |

#### Sorting & Detail

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | string | `"relevant"` | `relevant` (Most relevant) or `published` (Newest first). |
| `fetchJobDetails` | boolean | `false` | Turn on to fetch the full description, street address, contact person, company website, industry, and each ad's own contract type, hours, sector, work languages, home-office policy and job-function categories from its detail page. Off by default for fast scans; enable it whenever you need descriptions or contacts. |

### Output

Each job is one flat row. Fast runs already include the title, employer, logo, location, county, all work locations, coordinates, position title, open positions, pay range (when listed), published date, deadline, and the Apply ASAP flag. Contract type, hours, sector, work language, home office, and occupation category are also filled on fast runs whenever your filter pins a single value (one occupation category; a permanent, temporary, or seasonal contract; or any hours, sector, language, or home-office choice). Turn on `fetchJobDetails` to add the description, street address, contact person, company website, and industry, plus each ad's own contract type, hours, sector, work languages, home-office policy, and job-function categories.

```json
{
    "adId": "477251093",
    "title": "Senior backend-utvikler til voksende produktteam",
    "employer": "Nordlys Teknologi AS",
    "companyUrl": "https://www.nordlysteknologi.no/",
    "logoUrl": "https://images.finncdn.no/dynamic/default/jobs/company-profile/logo/nordlys.jpg",
    "location": "Oslo - Sentrum",
    "county": "Oslo",
    "workLocations": [
        { "place": "Oslo", "municipality": "Sentrum", "county": "Oslo", "country": "Norge" },
        { "place": "Bergen", "municipality": "Bergen", "county": "Vestland", "country": "Norge" }
    ],
    "address": { "street": "Storgata 1", "postcode": "0155", "city": "Oslo", "country": "NO" },
    "coordinates": { "lat": 59.9139, "lng": 10.7522 },
    "sector": "Privat",
    "industry": "IT",
    "occupations": ["Utvikler (generell)", "Full stack utvikler"],
    "jobFunction": "Senior backend-utvikler",
    "employmentType": "Fast",
    "extent": "Heltid",
    "managerRole": null,
    "remoteWork": "Delvis hjemmekontor",
    "positions": 2,
    "salary": "650 000 – 810 000 NOK per year",
    "salaryMin": 650000,
    "salaryMax": 810000,
    "salaryPeriod": "year",
    "salaryNote": "Pensjon og forsikring i tillegg.",
    "workLanguages": ["Norsk", "Engelsk"],
    "published": "2026-09-23T11:37:14Z",
    "deadline": "2026-10-11",
    "deadlineAsap": false,
    "contactName": "Kari Nordmann",
    "contactTitle": "Teamleder",
    "descriptionText": "Vi søker en erfaren backend-utvikler...",
    "descriptionHtml": "<p>Vi søker en erfaren backend-utvikler...</p>",
    "labels": ["Enkel søknad"],
    "url": "https://www.finn.no/job/ad/477251093",
    "searchQuery": "utvikler",
    "scrapedAt": "2026-09-26T14:07:49.588017Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `adId` | string | FINN.no ad identifier (finnkode). |
| `title` | string | Job ad headline as posted. |
| `jobFunction` | string | Position title the employer lists (for example "Senior backend-utvikler"). |
| `employmentType` | string | Contract type in FINN's words: Fast, Vikariat, Engasjement, Prosjekt, Sommer/Sesong, and others. Filled on detail runs, and on fast runs filtered to permanent, temporary, or seasonal contracts. |
| `extent` | string | Heltid (full-time) or Deltid (part-time). Filled on detail runs and on fast runs using the full-time / part-time filter. |
| `managerRole` | boolean | `true` on every row of a Management Roles Only run; empty otherwise. |
| `remoteWork` | string | Home-office policy as the ad states it: Ingen hjemmekontor, Delvis hjemmekontor, or Kun hjemmekontor. Filled on detail runs when the ad names a policy, and on fast runs using the remote-work filter. |
| `positions` | number | Number of open seats for the role. |
| `occupations` | array | FINN's job-function categories in Norwegian (for example Ingeniør, Prosjektledelse, Ledelse). Detail runs list every category on the ad; fast runs fill it when you filter by exactly one occupation category. |
| `url` | string | Link to the live job ad on FINN.no. |

#### Salary

Salary fields are filled only when the employer publishes pay on the ad; otherwise they are empty.

| Field | Type | Description |
|-------|------|-------------|
| `salary` | string | Pay range as text, for example "650 000 – 810 000 NOK per year" or "244 – 248 NOK per hour". |
| `salaryMin` | number | Lowest listed pay in NOK. |
| `salaryMax` | number | Highest listed pay in NOK (empty when only one figure is given). |
| `salaryPeriod` | string | `year` or `hour`. |
| `salaryNote` | string | The employer's own note about pay and benefits, when given. |

#### Company

| Field | Type | Description |
|-------|------|-------------|
| `employer` | string | Employer / company name. |
| `companyUrl` | string | Company website, when listed (detail runs). |
| `logoUrl` | string | Employer logo image URL. |
| `sector` | string | Privat (private), Offentlig (public), or Organisasjoner (non-profit). Filled on detail runs and on fast runs using the sector filter. |
| `industry` | string | Industries (bransje) the employer lists, comma-separated (detail runs). |

#### Location

| Field | Type | Description |
|-------|------|-------------|
| `location` | string | Work location as displayed on the ad (place, municipality, or "Oslo - district"). |
| `county` | string | Norwegian county (fylke) of the listed location. |
| `workLocations` | array | Every place the ad hires in, each as `{ place, municipality, county, country }`. Multi-site ads list several. |
| `address` | object | Street address as `{ street, postcode, city, country }` (detail runs). `street` is empty when the ad gives only a postcode and city. |
| `coordinates` | object | `{ lat, lng }` geographic coordinates. |

#### Job Details

| Field | Type | Description |
|-------|------|-------------|
| `descriptionText` | string | Full job description as plain text (detail runs). |
| `descriptionHtml` | string | Full job description with original HTML formatting (detail runs). |
| `deadline` | string | Application deadline (ISO 8601), when the ad has a fixed closing date. |
| `deadlineAsap` | boolean | `true` when the ad says "Snarest" (apply as soon as possible) instead of a fixed date. On ads where the employer set both "Snarest" and a date, fast runs can miss the flag — turn on `fetchJobDetails` to catch them. |
| `contactName` | string | Named contact person for the role (detail runs). |
| `contactTitle` | string | Contact person's job title, when listed (detail runs). |
| `workLanguages` | array | Working languages: `["Norsk"]`, `["Engelsk"]`, or both. Filled on detail runs when the ad names them, and on fast runs using the work-language filter. |
| `labels` | array | Badges shown on the listing: "Enkel søknad" (easy apply) and "Siste frist" (closing soon). |

#### Metadata

| Field | Type | Description |
|-------|------|-------------|
| `published` | string | Publication date and time (ISO 8601). |
| `searchQuery` | string | The keyword or pasted URL that surfaced this row; empty for an all-jobs search with no keyword. |
| `scrapedAt` | string | When the row was collected (ISO 8601). |

### Tips for Best Results

- **Break the ~2,500-per-search ceiling by faceting** — FINN.no caps any single search at roughly 2,500 ads. Split a broad keyword across counties or occupation categories and merge the runs to collect far more.
- **Turn on `fetchJobDetails` for descriptions and contacts** — full descriptions, street addresses, named contact persons, company websites, and industry only appear when detail enrichment is enabled. Deadlines, pay ranges, and locations are already on fast runs, so leave it off for quick volume scans.
- **Replay browser searches with `startUrls`** — dial in the exact filters you want on finn.no, copy the URL, and paste it. The scraper honors every filter baked into the URL (the form filters are not added on top), which is handy for niche facets not exposed as inputs.
- **Use `sortBy: "published"` with `postedToday` for daily monitors** — newest-first ordering plus the "posted today" filter gives you a clean feed of fresh listings for alerting workflows.
- **Target English-language roles for international hiring** — set `workLanguage` to `english` to surface jobs aimed at non-Norwegian speakers, ideal for relocation and global-talent use cases.
- **Combine `sector` and `managerRole` for executive search** — `public` or `private` sector plus management-roles-only narrows straight to leadership openings.
- **Leave keywords empty to list every matching job** — with an empty keyword box, the filters alone decide the results (for example every public-sector job posted today). Several keywords in one run merge and de-duplicate automatically, so synonyms like "utvikler" and "developer" won't double-count.

### Pricing

**From $1.00 per 1,000 results** — predictable pay-per-result pricing that gets cheaper as you reach higher Apify loyalty tiers.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.12 | $0.113 | $0.1065 | $0.10 |
| 1,000 | $1.20 | $1.13 | $1.065 | $1.00 |
| 10,000 | $12.00 | $11.30 | $10.65 | $10.00 |
| 100,000 | $120.00 | $113.00 | $106.50 | $100.00 |

Until October 11, 2026, every plan pays the flat Gold price of $1.00 per 1,000 results. The No discount, Bronze, and Silver prices above take effect on October 11, 2026; Gold stays at $1.00.

A "result" is one job row returned to your dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new job listings
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This scraper collects publicly available job listings from FINN.no for legitimate purposes such as recruitment, labor-market research, and business analysis. You are responsible for using the collected data in compliance with FINN.no's terms of service, applicable data-protection laws (including Norwegian and EU/EEA GDPR rules), and any restrictions on personal data. Do not use contact details for unsolicited bulk outreach that violates anti-spam regulations. Always respect the rights of data subjects and use the data ethically and responsibly.

# Actor input Schema

## `searchQueries` (type: `array`):

Job titles or keywords to search for, such as 'utvikler', 'sykepleier', or 'prosjektleder'. Each keyword runs a separate search and results are merged and de-duplicated. Up to 50 keywords per run. Leave empty to list all jobs (optionally narrowed by the filters below), or if you are only using direct search URLs.

## `startUrls` (type: `array`):

Paste full FINN.no job-search URLs (for example https://www.finn.no/job/search?q=utvikler\&location=1.20001.20061 for developer jobs in Oslo). The filters baked into each URL are scraped exactly as-is; the filters below are not added to pasted URLs. Useful when you have already dialed in a search on the FINN.no website. Up to 50 URLs per run.

## `maxResults` (type: `integer`):

Maximum number of jobs to collect per search keyword (or per URL). Use 50 for a quick scan or a higher number for deep research. Limits of 50 or less are exact; larger limits can run slightly over (by less than 2%). Set to 0 to collect all available results. Note: FINN.no returns at most ~2,500 jobs for any single search — to gather more, split your search across counties or occupation categories.

## `counties` (type: `array`):

Limit results to one or more Norwegian counties. Leave empty to search all of Norway.

## `occupations` (type: `array`):

Limit results to one or more job categories (yrkeskategori). Leave empty for all categories.

## `employmentExtent` (type: `string`):

Filter by working hours. Leave on 'Any' for both.

## `contractType` (type: `string`):

Filter by the type of employment contract. Leave on 'Any' for all contract types.

## `remoteWork` (type: `string`):

Filter by home-office / remote arrangement. Leave on 'Any' for jobs with or without remote work.

## `sector` (type: `string`):

Filter by employer sector. Leave on 'Any' for both private and public.

## `managerRole` (type: `boolean`):

Only return management / leadership positions (leder, direktør, fagleder).

## `workLanguage` (type: `string`):

Only return jobs where the working language is the one selected. Leave on 'Any' to include all.

## `postedToday` (type: `boolean`):

Only return jobs posted in the last 24 hours, counted back from when the run starts, so runs scheduled once a day don't overlap. Leave off to include jobs from any date. (FINN.no only offers this 'new today' window — longer windows such as 3 or 7 days are not available on the site.)

## `sortBy` (type: `string`):

How to order the search results.

## `fetchJobDetails` (type: `boolean`):

Turn on to fetch each job's detail page, adding the full description, application deadline, named contact person, street address and structured fields. Off by default for fast, lightweight scans (detail fetching makes a run several times slower because it loads every ad individually). Enable this whenever you need descriptions, deadlines, or contacts.

## Actor input object example

```json
{
  "searchQueries": [
    "utvikler"
  ],
  "startUrls": [],
  "maxResults": 100,
  "counties": [],
  "occupations": [],
  "employmentExtent": "",
  "contractType": "",
  "remoteWork": "",
  "sector": "",
  "managerRole": false,
  "workLanguage": "",
  "postedToday": false,
  "sortBy": "relevant",
  "fetchJobDetails": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped job listings with key fields.

## `detail` (type: `string`):

Complete job data including descriptions, deadlines, employer details, and structured fields.

# 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 = {
    "searchQueries": [
        "utvikler"
    ],
    "startUrls": [],
    "maxResults": 100,
    "counties": [],
    "occupations": [],
    "employmentExtent": "",
    "contractType": "",
    "remoteWork": "",
    "sector": "",
    "managerRole": false,
    "workLanguage": "",
    "postedToday": false,
    "sortBy": "relevant",
    "fetchJobDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/finn-no-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 = {
    "searchQueries": ["utvikler"],
    "startUrls": [],
    "maxResults": 100,
    "counties": [],
    "occupations": [],
    "employmentExtent": "",
    "contractType": "",
    "remoteWork": "",
    "sector": "",
    "managerRole": False,
    "workLanguage": "",
    "postedToday": False,
    "sortBy": "relevant",
    "fetchJobDetails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/finn-no-scraper").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 '{
  "searchQueries": [
    "utvikler"
  ],
  "startUrls": [],
  "maxResults": 100,
  "counties": [],
  "occupations": [],
  "employmentExtent": "",
  "contractType": "",
  "remoteWork": "",
  "sector": "",
  "managerRole": false,
  "workLanguage": "",
  "postedToday": false,
  "sortBy": "relevant",
  "fetchJobDetails": false
}' |
apify call solidcode/finn-no-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solidcode/finn-no-scraper"
        }
    }
}
```

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/YnnMtusXidR66oKcg/builds/BGJhU5fcqge7nVOm0/openapi.json
