Stepstone.it Italy Job Scraper
Under maintenancePricing
from $1.50 / 1,000 result items
Stepstone.it Italy Job Scraper
Under maintenanceScrape job listings from Stepstone Italy. Filter by keyword, location and contract type. Returns salary, full descriptions, geocoordinates and repost detection. No API key required.
Pricing
from $1.50 / 1,000 result items
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Stepstone.it Scraper

Scrape structured job listings from Stepstone.it — Italy's leading employment platform. 100,000+ active listings. No API key required.
v2.0 — Upgraded to JSON-HTML extraction (
__NEXT_DATA__). Stepstone.it is a Next.js SSR app; all search results are now extracted from the embedded JSON blob rather than CSS selectors, making parsing faster and more resilient to layout changes. Falls back to JSON-LD and CSS selectors automatically if the JSON path is absent.
Why this scraper?
🇮🇹 Stepstone.it — Italy's job market
Retrieve job data from Stepstone Italy covering all major industries, contract types, and regions.
📄 Full job descriptions
Enable fetchDetails to retrieve complete job descriptions in HTML, plain text, and Markdown — ideal for AI pipelines and RAG systems.
💰 Structured salary data
Salary ranges are returned as structured numeric fields (salaryMin, salaryMax, salaryType) alongside the formatted display string.
🔁 Repost detection
The scraper detects duplicate listings posted multiple times by the same employer. Use skipReposts: true to exclude them or check the isRepost field to filter later.
📍 Geocoding included
City names are automatically resolved to latitude/longitude coordinates via Nominatim — no extra cost.
📋 Three description formats
Job descriptions are available as HTML (for rendering), plain text (for search/indexing), and Markdown (for LLMs/RAG).
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | developer | Job title, skill, or keyword |
location | string | Milano | City or region (e.g. Roma, Torino, Napoli) |
radius | integer | 40 | Search radius in km |
maxItems | integer | 5 | Maximum results to return |
daysOld | integer | — | Only return listings posted within N days |
skipReposts | boolean | false | Skip listings posted more than once |
fetchDetails | boolean | false | Fetch full description from detail pages |
startUrls | array | — | Specific Stepstone.it search or job URLs |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
url | string | Job listing URL |
jobId | string | Unique Stepstone job ID |
source | string | Always stepstone.it |
language | string | Always it |
title | string | Job title |
company | string | Employer name |
companyUrl | string|null | Employer website |
companyLogoUrl | string|null | Company logo image URL (new in v2.0) |
city | string|null | City |
location | string|null | Normalised location string |
country | string | Always IT |
contractType | string|null | e.g. FULL_TIME, PART_TIME, TEMPORARY |
workSchedule | string|null | Work schedule description |
salary | string|null | Formatted salary (e.g. €35.000 – €45.000 (YEAR)) |
salaryMin | number|null | Minimum salary (numeric) |
salaryMax | number|null | Maximum salary (numeric) |
salaryType | string|null | YEAR, MONTH, or HOUR |
salaryCurrency | string|null | Always EUR when present |
publishDate | string|null | Publication date (YYYY-MM-DD) |
publishDateISO | string|null | Publication date (ISO 8601) |
daysOld | integer|null | Days since publication |
expiryDate | string|null | Expiry date (YYYY-MM-DD) |
applyUrl | string|null | Direct apply URL when available via __NEXT_DATA__ (new in v2.0) |
isRemote | boolean | Whether the role is fully remote (new in v2.0) |
tags | array|null | Job tags / categories from Stepstone metadata (new in v2.0) |
snippet | string|null | Short description snippet from search results (new in v2.0) |
isRepost | boolean | Whether this listing was posted before |
scrapedAt | string | Scrape timestamp (ISO 8601) |
latitude | number|null | Geocoded latitude |
longitude | number|null | Geocoded longitude |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string|null | Full job description (HTML) |
descriptionText | string|null | Full job description (plain text) |
descriptionMarkdown | string|null | Full job description (Markdown) |
summary | string|null | First 200 characters of description |
skills | array|null | Skills / requirements list from job data (new in v2.0) |
benefits | array|null | Benefits / perks list from job data (new in v2.0) |
extractionMethod | string | Which method extracted data: nextdata, jsonld, or css (new in v2.0) |
Example output
{"url": "https://www.stepstone.it/offerte-lavoro/software-engineer-milano--12345678-inline.html","jobId": "12345678","source": "stepstone.it","language": "it","title": "Software Engineer","company": "Tech Company SPA","companyUrl": "https://www.techcompany.it","companyLogoUrl": "https://www.stepstone.it/upload_de/logo/example.gif","city": "Milano","location": "Milano","country": "IT","contractType": "FULL_TIME","workSchedule": "Full time","salary": "€40.000 – €55.000 (YEAR)","salaryMin": 40000,"salaryMax": 55000,"salaryType": "YEAR","salaryCurrency": "EUR","publishDate": "2026-05-01","publishDateISO": "2026-05-01T00:00:00Z","daysOld": 3,"expiryDate": "2026-06-01","applyUrl": null,"isRemote": false,"tags": null,"snippet": null,"isRepost": false,"scrapedAt": "2026-05-04T10:00:00.000Z","latitude": 45.4642,"longitude": 9.19}
Examples
Basic search — developer jobs in Milan
{"searchQuery": "developer","location": "Milano","maxItems": 50}
Filter by age and work type
{"searchQuery": "marketing","location": "Roma","daysOld": 7,"maxItems": 100}
Full descriptions for AI processing
{"searchQuery": "data scientist","location": "Torino","fetchDetails": true,"maxItems": 25}
Specific job URLs
{"startUrls": [{ "url": "https://www.stepstone.it/offerte-lavoro/software-engineer-milano--12345678-inline.html" }],"fetchDetails": true}
💰 Pricing
$1.50 per 1,000 results (Pay-Per-Event)
| Action | Cost |
|---|---|
| Actor start | $0.00005 |
| Per result | $0.0015 |
| 1,000 results | ~$1.50 |
| 10,000 results | ~$15.00 |
Unlike flat-rate scrapers that charge the same whether you get 10 or 10,000 results, you only pay for what you actually receive.
Performance
| Scenario | Speed | Cost |
|---|---|---|
| 100 listings (fetchDetails: false) | ~1 min | ~$0.15 |
| 100 listings (fetchDetails: true) | ~3 min | ~$0.15 + compute |
| 1,000 listings | ~10 min | ~$1.50 |
Known limitations
applyUrlis alwaysnull— Stepstone Italy uses a login modal for applications- Salary data is not published by all employers —
nullvalues are normal - Without a location, the scraper returns national results
fetchDetails: trueis slower and uses more compute credits
Technical details
- HTTP-only scraper (no browser required) — fast and cost-efficient
- RESIDENTIAL proxy for reliable access
- Self-healing health monitoring with automatic failure detection
- Cross-run repost deduplication via Key-Value Store
- Nominatim geocoding for coordinates
Additional services
Need a custom scraper, scheduled runs, or data integration? Contact us at info@unfencedgroup.nl.
Built by unfenced-group · Stepstone.it is a trademark of The Stepstone Group