FINN.no Jobs Scraper
Pricing
from $0.06 / 1,000 result extracteds
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
Maintained by CommunityActor 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, ormarketing - π Accept direct FINN.no
/job/searchURLs with filters - π Paginate through search results until your
maxItemslimit 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
| Field | Description |
|---|---|
adId | FINN.no job ad ID |
url | Direct public job ad URL |
title | Job title used for display |
heading | Full listing heading |
companyName | Employer name |
jobTitle | FINN.no job title/category field |
location | Primary location |
locations | Location hierarchy from search result |
publishedAt | Published timestamp/date when available |
applicationDeadline | Deadline from the detail page when available |
employmentType | Employment type from structured job data |
salary | Salary/hourly wage when disclosed |
noOfPositions | Number of positions when disclosed |
easyApply | Whether FINN easy apply is shown |
labels | FINN labels such as easy apply |
latitude / longitude | Coordinates when provided |
sector | Employer sector from detail page |
industry | Industry from detail page |
occupation | Job function from detail page |
workingLanguages | Listed working languages |
keywords | Keywords shown on the ad |
descriptionText | Plain-text job description |
descriptionHtml | HTML job description |
searchUrl | Search page that produced the listing |
scrapedAt | Actor 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
maxItemsvalue - Turn off
includeDetailsif 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
- Open the actor on Apify.
- Enter a keyword or paste one or more FINN.no job search URLs.
- Set
maxItemsto the number of listings you need. - Keep
includeDetailsenabled if you need descriptions, salary, deadlines, and extra metadata. - Click Start.
- 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_DESCfor monitoring fresh postings. - Use
RELEVANCEwhen exploring broad keywords. - Keep
maxItemslow 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 ApifyClientclient = 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().itemsprint(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.
Related scrapers
Explore other automation-lab actors for recruitment and market intelligence:
- https://apify.com/automation-lab/linkedin-jobs-scraper
- https://apify.com/automation-lab/indeed-jobs-scraper
- https://apify.com/automation-lab/google-maps-lead-finder
- https://apify.com/automation-lab/trustpilot-scraper
FAQ
Can I scrape a specific FINN.no filtered search?
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.