Platsbanken Scraper
Pricing
from $6.30 / 1,000 results
Platsbanken Scraper
Every open job on Sweden's Platsbanken, not just the first 2,100: filter by region, municipality, commuting area, occupation, job title, salary type and more. Full detail with employer org number, recruiter contacts, and coordinates, plus change tracking with Slack, Discord, or Telegram alerts.
Pricing
from $6.30 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

🇸🇪 Platsbanken Jobs Scraper (Arbetsförmedlingen)
Search Platsbanken, Sweden's national job board run by Arbetsförmedlingen, with the same filters the site offers plus a few it doesn't, and get every matching job with full detail: description, employer and organisation number, recruiter contacts, salary type, requirements, exact coordinates, and the application link. No login, no account.
Turn on change tracking and schedule it, and each run tells you which jobs are new, updated, back again, or gone, with an optional alert to Slack, Discord, Telegram, or your own webhook.
🎯 Who uses it?
🧑💼 Recruitment and staffing agencies
Spot new openings the day they are posted, in the regions and occupations you place, with the recruiter's name and phone number already on the row.
📣 B2B sales teams
Companies that are hiring are companies that are growing. Every row carries the employer's Swedish organisation number, ready to join with company registers and your CRM.
📊 Labour market analysts
Pull the full national job bank, not a 2,100 row slice, and break demand down by region, municipality, occupation, employment type, and working hours.
🔔 Job seekers and career services
Watch a narrow search, such as nurse jobs in Göteborg and its commuting area, and get pinged only when something new appears.
✨ What it does
- Search: keywords, any of Sweden's 21 regions and 290 municipalities, 21 occupation fields, around 400 occupations, and exact job titles, all multiselect.
- Commuting area: widen a municipality to the neighbouring municipalities with the most daily commuters.
- Job condition filters: employment type, full-time or part-time, published within any number of days, driving licence required or not, education requirement, salary type (fixed, fixed plus variable, or commission), employment support programmes, no experience required, remote work possible, adapted workplace, trainee, abroad, and no fixed workplace.
- External listings: optionally include the ads Arbetsförmedlingen indexes from other job sites.
- Look up: resolve known job IDs directly.
- Change tracking: remembers each search between runs and tags jobs NEW, UPDATED (with the exact fields that changed), REAPPEARED, or EXPIRED, and flags reposts of an earlier ad.
- Alerts: a short summary with links to Slack, Discord, Telegram, or any webhook when something new shows up.
Missing source values are returned as null, never invented.
Why this scraper
- Every matching job, not the first 2,100. Broad searches keep going until they reach the whole result set, up to the full national job bank of 40,000+ ads.
- Recruiter contacts and org numbers on every row. The named contact with role and phone, union representatives flagged separately, plus emails and phone numbers found in the description.
- Filters nobody else exposes. Commuting area, employment support programmes, education requirement, adapted workplace, and a driving licence filter that works both ways.
- Change tracking that only charges for news. Unchanged jobs are skipped, so a scheduled watch only writes, and only bills, what actually changed.
- Stable, clean output. Lists come back in a fixed order every run, so a job never shows up as "updated" just because the source reshuffled its contacts.
How it compares
| Capability | This actor | Closest full-featured competitor | Other Platsbanken actors |
|---|---|---|---|
| Results per search | every match | 2,100 | 2,100 or less |
| Multiselect location and occupation | yes | yes | rare |
| Commuting area expansion | yes | no | no |
| Employment support, education, and adapted workplace filters | yes | no | no |
| Driving licence and experience filters | yes | yes | rare |
| Listings from external job sites | yes | no | no |
| Recruiter contacts and organisation number | yes | yes | some |
| Change tracking with repost detection | yes | yes | no |
| Exact changed fields on updated jobs | yes | no | no |
| Slack, Discord, Telegram, and webhook alerts | yes | yes | no |
| WhatsApp alerts | no | yes | no |
| Exact job title filter | yes | yes | rare |
| Salary type filter | yes | yes | no |
| Skills filter | no | yes | no |
📦 What data you get
| Entity | Useful fields |
|---|---|
| Job | Title, full description, occupation, employment type, working hours, duration, conditions, number of positions, salary type and description, workplace model. |
| Employer | Name, organisation number, workplace name, website, logo when the employer has one, and phone when published. |
| Location | Street, post code, city, municipality, region, country, latitude and longitude, every workplace for multi-site ads. |
| Contacts | The primary recruiter's name, role, phone, and email, every listed contact with union representatives flagged, plus emails and phone numbers found in the description. |
| Requirements | Experience, education level, driving licences, own car, languages, skills, and work experience, each marked required or merit. |
| Application | Application link, email, reference, and instructions, with the application deadline. |
| Change tracking | Change type, changed fields, repost flag with the original job ID, first seen, previously seen, and expired dates. |
Every record includes scraped_at (UTC). Download your dataset from Apify as CSV, JSON, Excel, or XML.
💡 Use cases
🧑💼 Nurse openings in Göteborg and its commuting area
{ "mode": "search", "keywords": ["sjuksköterska"], "municipalities": ["Göteborg"], "includeCommutingArea": true, "maxItems": 500 }
📣 Every IT job published this week, as a lead list
{ "mode": "search", "occupationFields": ["Data/IT"], "publishedWithinDays": 7 }
🔔 A daily watch that alerts Slack on new warehouse jobs in Skåne
{ "mode": "search", "keywords": ["lager"], "regions": ["Skåne län"], "trackChanges": true, "stateKey": "skane-lager", "slackWebhookUrl": "https://hooks.slack.com/services/..." }
💼 Commission-based sales roles
{ "mode": "search", "keywords": ["säljare"], "salaryTypes": ["variable"], "maxItems": 200 }
🤝 Entry-level jobs open to newcomers
{ "mode": "search", "noExperienceRequired": true, "employmentSupport": ["introductionJob", "startupEmployment"], "drivingLicense": "notRequired" }
📊 The full national job bank
{ "mode": "search", "source": "both" }
🔎 Resolve known job IDs
{ "mode": "lookup", "jobIds": ["31512287", "31365886"] }
⚙️ How the input is organised
Maximum results sits at the very top, since it applies no matter what you're doing. Leave it empty to collect every matching job. Below it, the form is split into seven numbered sections:
| Section | What it's for |
|---|---|
| 1 · What to do | Search by filters or look up known job IDs. |
| 2 · Where and what | Keywords, regions, municipalities, the commuting area option, occupation fields, occupations, and exact job titles. |
| 3 · Job conditions | Employment type, working hours, publish date, driving licence, education, employment support, salary type, and the other job condition filters. |
| 4 · Listings and order | Platsbanken ads, external job site listings, or both, and the sort order. |
| 5 · Look up | Known job IDs to resolve directly. |
| 6 · Change tracking | Turn on tracking, name the watch, and choose whether unchanged and expired jobs are written. |
| 7 · Notifications | Webhook, Slack, Discord, and Telegram alerts. |
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
🛡️ Limits & responsible use
This Actor reads only the public Platsbanken job board. It never signs in and never accesses anything gated behind an account.
Job ads can name a contact person. That is personal data under the GDPR, published by the employer so applicants can reach them. Use it for recruitment and job related contact only, and make sure your own processing has a lawful basis.
External job site listings only carry keyword, location, occupation, and date information, so the other filters can't be applied to them. When you combine those filters with both listing types, the external listings are skipped so every row still matches your filters.
Change tracking marks a job expired only when the run covered every matching job. A run capped by Maximum results never marks anything expired.
A job ID that doesn't resolve in Look up mode writes a row with an error field instead of failing the run.
📧 Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
Local development
bun installbun testbun run src/main.ts