Sweden Active Job Ads - Structured Live Feed, Per Ad avatar

Sweden Active Job Ads - Structured Live Feed, Per Ad

Pricing

from $33.50 / 1,000 job ad records

Go to Apify Store
Sweden Active Job Ads - Structured Live Feed, Per Ad

Sweden Active Job Ads - Structured Live Feed, Per Ad

Sweden's currently active job ads (Arbetsformedlingen JobStream, jobtechdev.se) as clean per-ad records - title, employer organisation, occupation and location taxonomy, employment/salary type, vacancy count. Live feed; contacts, description, emails and addresses stripped. CC0. $0.05 per record.

Pricing

from $33.50 / 1,000 job ad records

Rating

0.0

(0)

Developer

NexGen Signal

NexGen Signal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Sweden's currently ACTIVE job ads from the national employment service (Arbetsformedlingen) as clean, per-ad records - job title, employer organisation, occupation and location taxonomy, employment and salary type, and vacancy count. A live feed of the active set, personal data stripped out.

What one record represents

The source is the Arbetsformedlingen JobStream snapshot at jobstream.api.jobtechdev.se, the same current-ad dataset the JobSearch API counts. Each record is one currently published job ad: its id and headline, the employer organisation (name, organisation number, workplace, url), the occupation / occupation-group / occupation-field taxonomy, the workplace municipality / region / country and coordinates, employment type, salary type, working-hours type, scope of work, driving-licence and experience flags, the publication and last-publication dates and the application deadline. It is the active-vacancy view of the Swedish labour market, at the grain of one live ad.

A live feed

This is a live product: each run returns the set of ads that are active at run time. Ads that have been filled or withdrawn drop out; new ads appear. Run it on a schedule and upsert on the ad id to keep a current mirror of the Swedish national ad set, using the removed flag and observed_at stamp to age out ads that have left the feed. The JobSearch total is read on every run and written to the receipt as the live active-ad count.

Personal data is removed, structurally

Swedish job ads carry a lot of personal data, and this cell drops all of it before any record is delivered. The applicant/recruiter contact block (names, e-mails, phone numbers), the free-text description, the application e-mail and other free-text, the employer phone number and e-mail, and the workplace street address and postcode are never selected. A built-in assertion rejects any record that carried one of those keys (planted-contact test). What remains is organisation-level and taxonomy data: the employer's registered name and organisation number, the occupation and location codes, and the structural ad fields. The delivered table is a clean, person-free record of which organisations are hiring for what, where.

Licence

Arbetsformedlingen job ads are open data under Creative Commons Zero (CC0 1.0) - a public-domain dedication, free for any use including commercial, no attribution required. Personal data is excluded by this cell as described above.

Fields, scheduling and joins

Every field in the record is either a source-native identifier, a source-native attribute, or one of the six provenance fields (source, source_dataset, licence, attribution, caveat, observed_at) the fleet attaches to every record. Nothing is derived or inferred beyond the small, documented transforms noted above, and nothing is dropped silently - the person-handling section spells out exactly which fields are excluded and why. The grain is one record per the natural unit of the source, which keeps each row independently meaningful, keeps the key stable across runs so re-running is a cheap upsert rather than a re-import, and lets you aggregate up to whatever unit you need without unpicking a pre-joined table.

Because the source republishes on its own cadence, a scheduled run keeps a downstream table current: new and changed records upsert over the old ones on the stable key, and the observed_at stamp on every record tells you when each was last seen live. Set Maximum records low to sample the shape of the data cheaply, then raise it once the cell fits your use; the Actor streams its source, so memory stays flat regardless of how many records you request, and you are billed only for what is delivered. There is no subscription and no minimum - the per-record price and the record cap together mean the spend on any run is known in advance and matched exactly to the data you receive.

Reconciling counts honestly

Where the live count differs from any previously published figure, the live measure is the honest one and is what this listing quotes; sources re-issue and re-version their files over time, and a workbook's declared row dimension can include trailing empty rows. The run receipt always states what was actually delivered and charged and confirms the two agree, so every run is auditable against itself regardless of what any external index expected.

Integration notes

The output is a flat table of typed records, so it drops straight into whatever you already use: load the run's dataset over the API or an export, key on the record id, and upsert. A common pattern is a light scheduled run that pulls the newest slice into a staging table, then a merge on the stable key into the table your product reads, so you never re-pay for rows you already hold and your history grows cleanly over time. Because identifiers are preserved exactly as the source publishes them, joins across the fleet's cells - and onto your own systems - work without a mapping layer: the same organisation, product, option or facility id lines up on both sides. If you only need a slice, the record cap and any partition inputs bound the run precisely, so a targeted pull costs cents rather than the price of the whole set. Nothing about the record shape assumes a particular warehouse, language or tool; it is deliberately plain so the integration work is a load and a merge, not a cleaning project.

Sibling Actors

The fleet's Singapore MyCareersFuture cell is the same active-ad grain for a different country and source; there is no row overlap. This is the Swedish national feed.

Provenance and compliance

Every run reads the door host's robots.txt at runtime and records the result (URL, status, byte length and, where a policy is served, its SHA-256) in the run's RUN_RECEIPT. Where the host serves no robots policy (HTTP 404), the gate records that as a flag and proceeds on the licence, which grants re-use. The endpoint is keyless and the Actor reads only the public data door - never a per-record detail page, never a mirror, and it never bypasses a block.

Data quality and freshness

Numbers arrive as real numbers, booleans as real booleans, and every other value as a string or null, so the dataset loads without a cleaning pass. Each record is keyed on a stable source identifier, so it is safe to diff, deduplicate or upsert. Every run re-reads the live door, so the data is as fresh as the source publishes, and each record's observed_at stamp dates the snapshot. The receipt records how many rows were delivered and charged and confirms charge_equals_delivered.

Billing, delivery and joins

Pricing is per record: you are billed only for records the Actor actually delivers, and the charge is raised after each record is pushed (push-then-charge), so a failed or empty run costs nothing. The Maximum records cap bounds every run, so spend is known before you start - sample cheaply, then raise it. Every record is a flat, typed object keyed on a stable id, so it loads without a cleaning pass, diffs cleanly between runs, and upserts into a table you keep over time; re-running keeps that table current without re-paying for rows you already hold, and each receipt reconciles delivered against charged. Because the source's own identifiers are preserved verbatim, the dataset joins onto other sources keyed on the same identifier.

Who buys this, and how they use it

This cell is bought by teams that need the source's published set as a typed, keyed table they can hold and refresh rather than a page they scrape: market-intelligence and analytics teams sizing and tracking a market, data engineers wiring a clean upstream feed into a warehouse, and product teams building on a stable identifier. The grain and the key are chosen so the output is a building block, not a one-off export - you run it on a schedule, keep the delta, and join it to your other sources on the identifiers it preserves verbatim. The spend on any run is the per-record price times the records delivered, matched exactly to what you receive.