FINN.no Jobs Scraper avatar

FINN.no Jobs Scraper

Pricing

from $0.06 / 1,000 result extracteds

Go to Apify Store
FINN.no Jobs Scraper

FINN.no Jobs Scraper

Scrape public FINN.no job listings with titles, companies, locations, deadlines, salaries, descriptions, and URLs.

Pricing

from $0.06 / 1,000 result extracteds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Categories

Share

FINN.no Jobs Scraper πŸ‡³πŸ‡΄πŸ’Ό

Extract structured job listings from FINN.no, Norway's largest classifieds marketplace and a major source of public Norwegian job ads.

Use this actor to collect job titles, companies, locations, published dates, application deadlines, salaries when shown, easy-apply flags, descriptions, and listing URLs from public FINN.no job search pages.

What does FINN.no Jobs Scraper do?

FINN.no Jobs Scraper turns public FINN.no job search pages into clean dataset rows.

It can:

  • πŸ”Ž Search by keyword such as sykepleier, developer, or marketing
  • πŸ”— Accept direct FINN.no /job/search URLs with filters
  • πŸ“„ Paginate through search results until your maxItems limit is reached
  • 🧾 Fetch job detail pages for descriptions and richer metadata
  • πŸ“ Capture location and coordinate data when FINN.no provides it
  • πŸ’° Capture salary or hourly wage fields when visible on the job ad
  • βœ… Detect easy-apply listings
  • πŸ“¦ Export results as JSON, CSV, Excel, XML, RSS, or HTML table from Apify

Who is it for?

This scraper is useful for several personas:

  • Recruiters monitoring competitors and high-demand roles
  • Staffing agencies building Norwegian vacancy intelligence
  • Job aggregators collecting fresh listings for downstream products
  • Labor-market analysts tracking hiring trends by company, title, and region
  • HR teams benchmarking advertised salaries and open roles
  • Data teams feeding dashboards, alerts, and NLP pipelines

Why use this actor?

FINN.no has rich public job data, but manually copying listings is slow and error-prone.

This actor provides:

  • πŸš€ Fast HTTP extraction without a heavy browser
  • 🧩 Structured fields ready for analytics
  • πŸ” Repeatable runs for scheduled monitoring
  • 🧠 Optional full descriptions for AI classification and enrichment
  • 🧰 Apify integrations for datasets, webhooks, APIs, and MCP tools

Data extracted

FieldDescription
adIdFINN.no job ad ID
urlDirect public job ad URL
titleJob title used for display
headingFull listing heading
companyNameEmployer name
jobTitleFINN.no job title/category field
locationPrimary location
locationsLocation hierarchy from search result
publishedAtPublished timestamp/date when available
applicationDeadlineDeadline from the detail page when available
employmentTypeEmployment type from structured job data
salarySalary/hourly wage when disclosed
noOfPositionsNumber of positions when disclosed
easyApplyWhether FINN easy apply is shown
labelsFINN labels such as easy apply
latitude / longitudeCoordinates when provided
sectorEmployer sector from detail page
industryIndustry from detail page
occupationJob function from detail page
workingLanguagesListed working languages
keywordsKeywords shown on the ad
descriptionTextPlain-text job description
descriptionHtmlHTML job description
searchUrlSearch page that produced the listing
scrapedAtActor scrape timestamp

How much does it cost to scrape FINN.no jobs?

The actor uses pay-per-event pricing.

You pay a small start fee per run and a per-result fee for each saved job listing. Exact live pricing is shown on the Apify Store page before you run the actor.

Tips for keeping costs low:

  • Start with a small maxItems value
  • Turn off includeDetails if search-result fields are enough
  • Use a specific keyword or filtered FINN.no URL
  • Schedule smaller recurring runs instead of one very broad run

How to use FINN.no Jobs Scraper

  1. Open the actor on Apify.
  2. Enter a keyword or paste one or more FINN.no job search URLs.
  3. Set maxItems to the number of listings you need.
  4. Keep includeDetails enabled if you need descriptions, salary, deadlines, and extra metadata.
  5. Click Start.
  6. Download the dataset or connect it to your workflow.

Input example

{
"query": "sykepleier",
"maxItems": 25,
"sort": "PUBLISHED_DESC",
"includeDetails": true
}

Direct URL input example

{
"startUrls": [
{ "url": "https://www.finn.no/job/search?q=developer&sort=PUBLISHED_DESC" }
],
"maxItems": 50,
"includeDetails": true
}

Output example

{
"adId": 452696347,
"url": "https://www.finn.no/job/ad/452696347",
"title": "Elektriker/SvakstrΓΈmsmontΓΈr",
"companyName": "Brannslokkesystemer AS",
"location": "Sofiemyr",
"publishedAt": "2026-06-11T08:09:48.000Z",
"applicationDeadline": "Snarest",
"salary": "370 - 400 kr NOK HOUR",
"easyApply": true,
"descriptionText": "Brannslokkesystemer AS er et solid selskap...",
"scrapedAt": "2026-06-11T08:20:00.000Z"
}

Search tips

  • Use Norwegian keywords for best coverage.
  • Paste filtered FINN.no URLs when you need region, occupation, or industry filters.
  • Use PUBLISHED_DESC for monitoring fresh postings.
  • Use RELEVANCE when exploring broad keywords.
  • Keep maxItems low during test runs.

Detail page enrichment

When includeDetails is enabled, the actor visits each job ad URL and extracts additional public fields from JSON-LD and HTML labels.

This may include:

  • Full description
  • Application deadline
  • Salary or hourly wage
  • Employment type
  • Sector
  • Industry
  • Job function
  • Working languages
  • Keywords

Disable detail fetching if you only need fast search-result metadata.

Integrations

Use Apify integrations to connect FINN.no jobs data to your systems:

  • Send new listings to Google Sheets
  • Trigger webhooks when a scheduled run finishes
  • Load datasets into BigQuery, Snowflake, or S3
  • Feed job descriptions into an LLM classification workflow
  • Monitor company hiring trends in a dashboard

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/finn-no-jobs-scraper').call({
query: 'developer',
maxItems: 50,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/finn-no-jobs-scraper').call(run_input={
'query': 'sykepleier',
'maxItems': 25,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~finn-no-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"query":"marketing","maxItems":25,"includeDetails":true}'

MCP usage

You can use this actor through Apify MCP in Claude Code or Claude Desktop.

MCP server URL:

https://mcp.apify.com/?tools=automation-lab/finn-no-jobs-scraper

Add it in Claude Code with:

$claude mcp add apify-finn-jobs https://mcp.apify.com/?tools=automation-lab/finn-no-jobs-scraper

Claude Desktop JSON config example:

{
"mcpServers": {
"apify-finn-jobs": {
"url": "https://mcp.apify.com/?tools=automation-lab/finn-no-jobs-scraper"
}
}
}

Example prompts:

  • "Find the newest nursing jobs on FINN.no and summarize the top employers."
  • "Scrape 50 developer jobs from FINN.no and group them by city."
  • "Get FINN.no job ads for marketing roles and extract salary mentions."

Scheduling

For monitoring workflows, schedule the actor daily or weekly.

Recommended setup:

  • Use sort=PUBLISHED_DESC
  • Use focused keywords or filtered URLs
  • Store previous datasets for comparison
  • Trigger a webhook after each run

Data quality notes

FINN.no listings vary by employer. Some ads include salary, deadline, and detailed taxonomy; others omit one or more of those fields.

The actor returns null or an empty array when a public field is not present.

Troubleshooting

Why are salary fields empty?

Many employers do not publish salary ranges. The actor only returns salary when FINN.no shows it publicly.

Why did I get fewer items than requested?

Your keyword or filtered URL may have fewer public listings than maxItems, or FINN.no may cap paging for that query.

Should I enable detail pages?

Enable detail pages for descriptions and richer metadata. Disable them for faster, cheaper discovery runs.

Legality

This actor extracts publicly available job listing data from FINN.no. You are responsible for using the data in compliance with applicable laws, FINN.no terms, privacy rules, and your own legal obligations.

Do not scrape private account data, bypass access controls, or use the output for prohibited purposes.

Explore other automation-lab actors for recruitment and market intelligence:

FAQ

Yes. Paste the filtered /job/search URL into startUrls.

Does the actor need a FINN.no account?

No. It uses public search and job ad pages.

Does it use a browser?

No. The actor is HTTP-only for lower cost and faster runs.

Can I export to CSV?

Yes. Apify datasets can be exported as CSV, JSON, Excel, XML, RSS, and HTML.

Can I monitor new jobs every day?

Yes. Use Apify schedules with newest-first sorting and a focused query.

Changelog

  • Initial version: public FINN.no job search scraping with optional detail page enrichment.