# Subito.it Jobs Scraper (`emastra/subito-it-lavoro`)

Automatically extract job listings from Subito.it with structured data on company, position, contract, and location. Ideal for job boards, HR tech, and market analysis. Export in JSON, CSV, Excel, or via API. Simple and scalable automation.

- **URL**: https://beta-securitybyobscurity.apify.com/emastra/subito-it-lavoro.md
- **Developed by:** [Emiliano Mastragostino](https://beta-securitybyobscurity.apify.com/emastra) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 6 total users, 5 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 results

This Actor is paid per result. You are not charged for the Apify platform usage, but only a fixed price for dataset items the Actor outputs.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-result

# README

## Scraper Subito.it Lavoro | Estrazione Annunci Offerte di Lavoro in Italia

Lo **Scraper Subito.it Lavoro** è lo strumento ideale per estrarre **annunci di lavoro aggiornati** da [Subito.it](https://www.subito.it/) nella sezione **Offerte di Lavoro**. Automatizza la raccolta di offerte pubblicate da aziende o privati in tutta Italia, con dati strutturati e pronti all’uso.

Perfetto per **HR tech**, **portali lavoro**, **agenzie di selezione**, **analisti di mercato** e sviluppatori di **motori di job search**, questo scraper ti consente di monitorare il mercato del lavoro italiano in tempo reale.

### 💼 Cosa Puoi Fare con lo Scraper Subito.it Lavoro?

- 🔄 Estrai automaticamente **centinaia di annunci di lavoro** in ogni settore.
- 🧑‍💼 Raccogli dati su **azienda, posizione, contratto, orari e settore professionale**.
- 📍 Filtra gli annunci per regione, città o categoria.
- 📅 Monitora nuove offerte e analizza trend di pubblicazione.
- 📤 Esporta i dati in **JSON, CSV, Excel, XML** o collegati via **API**.

### ⚙️ Input Configurabile

| Campo            | Tipo       | Descrizione                                                                                                                                                                                                                                         |
| ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `startUrls`      | `string[]` | URL di partenza: link a **pagine di ricerca lavoro** (es. `https://www.subito.it/annunci-italia/vendita/offerte-lavoro/?q=cameriere`) o **annunci singoli** (es. `https://www.subito.it/offerte-lavoro/consulente-commerciale-roma-610237087.htm`). |
| `maxResultItems` | `number`   | Limite massimo di annunci da estrarre. Imposta `0` per nessun limite.                                                                                                                                                                               |

### 📦 Cosa Contiene l'Output?

Ogni annuncio estratto include:

- 📝 **Titolo dell’offerta** e descrizione dettagliata
- 🏢 **Azienda inserzionista**: nome, tipo, indirizzo, logo, sito web e numero di annunci attivi
- 🗺️ **Località**: città, provincia e regione
- 🧩 **Categoria**, settore, contratto, orari e livello richiesto
- 📅 **Data e ora di pubblicazione** (in vari formati)
- 🔗 **URL originale dell’annuncio**
- 🖼️ **Immagini e logo aziendale** (se presenti)

##### Esempio dell'Output in formato JSON

```json
{
    "subito_category": "Lavoro",
    "type": "In vendita",
    "request_url": "https://www.subito.it/offerte-lavoro/addetti-al-fast-food-fiumicino-rm-roma-610395485.htm",
    "listing_category": "offerte-lavoro",
    "publication_date": {
        "iso": "2025-07-23T12:20:27.000Z",
        "date": "2025-07-23",
        "time": "14:20:27",
        "timestamp": 1753273227000,
        "local": "mercoledì 23 luglio 2025 alle ore 14:20:27"
    },
    "title": "ADDETTI AL FAST FOOD - Fiumicino (RM)",
    "seo_page_title": "Subito - UMANA S.P.A. - ADDETTI AL FAST FOOD - Fiumicino (RM) - Offerte di lavoro In vendita a Roma",
    "description": "UMANA SPA per importante e nota catena di ristorazione veloce in zona Fiumicino (RM), ricerca 5 ADDETTI AL FAST FOOD.\n\nSi richiede:\n- predisposizione al contatto con il pubblico;\n- estrema flessibilità oraria;\n- disponibilità a prestare servizio a turni diurni, notturni e durante i weekend;\n- buona conoscenza della lingua italiana;\n- residenza limitrofa al luogo di lavoro.\n\nSi propone contratto part-time di 18/24 ore distribuite lungo l'intero orario di apertura del ristorante.\nScopo assunzione in azienda.",
    "location": {
        "city": "Fiumicino",
        "province": "Roma",
        "region": "Lazio"
    },
    "listing_url": "https://www.subito.it/offerte-lavoro/addetti-al-fast-food-fiumicino-rm-roma-610395485.htm",
    "features": {
        "contract_type": {
            "label": "Altro",
            "value": "zzzzzother"
        },
        "qualification": {
            "label": "Scuola dell'obbligo",
            "value": "scuola-dell-obbligo"
        },
        "industry": {
            "label": "Turismo - Ristorazione",
            "value": "turismo-ristorazione"
        },
        "working_hours": {
            "label": "Part time",
            "value": "parttime"
        },
        "work_level": {
            "label": "Altro",
            "value": "altro"
        }
    },
    "images": [],
    "advertiser": {
        "type": "azienda",
        "name": "umana s.p.a",
        "shop_categories": ["offerte-lavoro"],
        "active_shop_categories": ["offerte-lavoro"],
        "address": "Via Colombara, 113, 30176 Venezia VE, Italia",
        "listing_count": 24,
        "logo": "https://images.sbito.it/api/v1/sbt-shops-images-pro/images/12/12e5e1f8-a814-48a1-bab3-3d8b0aef99b8?rule=shop_logo_medium_auto",
        "urls": {
            "default": "https://impresapiu.subito.it/shops/51265-umana-s-p-a",
            "mobile": "https://impresapiu.subito.it/shops/51265-umana-s-p-a"
        },
        "website": "https://www.umana.it/",
        "opening_hours": []
    }
}
```

### 🎯 Esempi di Utilizzo

- Siti di job board: alimentazione automatica delle offerte.
- HR & agenzie interinali: scouting di opportunità in tempo reale.
- Startup lavoro e AI: training set per NLP e modelli di matching.
- Analisti del lavoro: mappatura domanda-offerta per regioni e settori.

### 🚀 Inizia Ora

Inserisci uno o più URL di *Subito.it Lavoro* e lascia che lo scraper faccia il lavoro pesante per te. Può essere eseguito periodicamente e in larga scala.

### 👨‍💻 Supporto

Hai bisogno di aiuto o vuoi personalizzare questo scraper?

- 📬 [Contatta lo sviluppatore](https://apify.com/emastra)
- 🐞 [Segnala un bug](https://console.apify.com/actors/LTvhgr2DVEkYjYxHV/issues)
- ✨ [Suggerisci funzionalità](https://apify.com/emastra)

***

Avvia oggi lo **Scraper Subito.it Lavoro** e trasforma la raccolta di annunci in un asset strategico per il tuo business nel mondo del lavoro.

# Actor input Schema

## `startUrls` (type: `array`):

List of 'Subito.it Lavoro' URLs. Both search result and listing detail pages are supported. The scraper will auto-detect the type.

## `maxResultItems` (type: `integer`):

Maximum number of items to scrape. Set to 0 for no limit.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.subito.it/offerte-lavoro/consulente-commerciale-roma-610237087.htm",
    "https://www.subito.it/annunci-lazio/vendita/offerte-lavoro/roma/fiumicino/"
  ],
  "maxResultItems": 0
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "https://www.subito.it/offerte-lavoro/consulente-commerciale-roma-610237087.htm",
        "https://www.subito.it/annunci-lazio/vendita/offerte-lavoro/roma/fiumicino/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("emastra/subito-it-lavoro").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [
        "https://www.subito.it/offerte-lavoro/consulente-commerciale-roma-610237087.htm",
        "https://www.subito.it/annunci-lazio/vendita/offerte-lavoro/roma/fiumicino/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("emastra/subito-it-lavoro").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.subito.it/offerte-lavoro/consulente-commerciale-roma-610237087.htm",
    "https://www.subito.it/annunci-lazio/vendita/offerte-lavoro/roma/fiumicino/"
  ]
}' |
apify call emastra/subito-it-lavoro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=emastra/subito-it-lavoro",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Subito.it Jobs Scraper",
        "description": "Automatically extract job listings from Subito.it with structured data on company, position, contract, and location. Ideal for job boards, HR tech, and market analysis. Export in JSON, CSV, Excel, or via API. Simple and scalable automation.",
        "version": "1.0",
        "x-build-id": "mz104wrbs9s4v5oPz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/emastra~subito-it-lavoro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-emastra-subito-it-lavoro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/emastra~subito-it-lavoro/runs": {
            "post": {
                "operationId": "runs-sync-emastra-subito-it-lavoro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/emastra~subito-it-lavoro/run-sync": {
            "post": {
                "operationId": "run-sync-emastra-subito-it-lavoro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "List of 'Subito.it Lavoro' URLs. Both search result and listing detail pages are supported. The scraper will auto-detect the type.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxResultItems": {
                        "title": "Maximum Number of Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of items to scrape. Set to 0 for no limit.",
                        "default": 0
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
