FINN.no Job Scraper
Pricing
from $1.00 / 1,000 results
FINN.no Job Scraper
[💰 $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.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
15
Total users
3
Monthly active users
a month ago
Last modified
Categories
Share
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.
positionsshows 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:
{"searchQueries": ["utvikler"],"maxResults": 50}
Filtered County + Occupation Search
The most useful combination — narrow by region, category, and freshness:
{"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:
{"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):
{"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.
{"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
fetchJobDetailsfor 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"withpostedTodayfor 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
workLanguagetoenglishto surface jobs aimed at non-Norwegian speakers, ideal for relocation and global-talent use cases. - Combine
sectorandmanagerRolefor executive search —publicorprivatesector 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.