SEPE Spain Jobs Scraper (Empleate.gob.es) avatar

SEPE Spain Jobs Scraper (Empleate.gob.es)

Pricing

Pay per event

Go to Apify Store
SEPE Spain Jobs Scraper (Empleate.gob.es)

SEPE Spain Jobs Scraper (Empleate.gob.es)

Extract job listings from Spain's national public employment service (SEPE) via empleate.gob.es. Returns title, company, location, autonomous community, employment type, salary, full description and contact details. Covers all 17 comunidades autonomas plus Ceuta and Melilla.

Pricing

Pay per event

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

SEPE.es Scraper: Spain National Employment Service Jobs (Empleate)

Extract job listings from empleate.gob.es, the official portal of Spain's national public employment service (Servicio Publico de Empleo Estatal, SEPE). Returns structured job data including title, company, location, autonomous community, province, employment type, salary, GPS coordinates, vacancies, education requirements and description.

Covers all 17 autonomous communities plus Ceuta and Melilla - every job posted on the SEPE national platform. Regional services (LANBIDE Basque Country, SOC Catalonia, etc.) also contribute listings via the national aggregator.


What It Does

  • Searches empleate.gob.es for any keyword in Spanish
  • Extracts all listing fields: title, company, city, province, autonomous community, employment type, salary, description
  • Maps Spanish employment types (jornada completa, jornada parcial, contrato indefinido, temporal, practicas)
  • Maps locations to one of 19 Spanish regions (17 comunidades autonomas + Ceuta + Melilla)
  • Extracts CNO occupation codes and SEPE sector codes
  • Returns GPS coordinates (latitude/longitude) for each listing when available
  • Captures vacancies count, disability accessible flag, seniority level, education and experience requirements
  • Handles SEPE-specific features: public employment, disability-inclusive listings, interregional postings
  • Returns data instantly - no browser, no JavaScript, plain HTTP against the SEPE Solr API

Company Name Note

SEPE aggregates listings from many sources. Only partner-aggregated listings (from TecnoEmpleo, InfoJobs, HacesFalta and similar platforms) carry a named employer in company_name. Listings posted directly by public employment offices — which account for a large share of SEPE postings — have no employer name by design. For those listings, company_name is null and that is the correct, expected value. Descriptions often contain the hiring organization name in plain text even when the structured field is null.


Sample Output

{
"_type": "job",
"id": "1857143652",
"title": "Ingeniero/a de Automatizacion Junior, Valencia",
"job_url": "https://www.empleate.gob.es/empleo/#/oferta/ingeniero-a-de-automatizacion-junior-valencia/1857143652",
"source_url": "https://www.empleate.gob.es/empleo/#/oferta/ingeniero-a-de-automatizacion-junior-valencia/1857143652",
"source_platform": "empleate.gob.es",
"company_name": "Michael Page",
"company_website": null,
"company_logo_url": "https://www.empleate.gob.es/empleo/resources/images/companies/TECNO_EMPLEO.png",
"location": "Valencia",
"country": "ES",
"region": "Comunidad Valenciana",
"province": "Valencia",
"posted_at_text": "31 ago. 2026",
"posted_at_datetime": "2026-08-31T10:51:49Z",
"employment_type": "permanent",
"workplace_type": "on-site",
"salary_min": null,
"salary_max": null,
"salary_currency": null,
"salary_period": null,
"salary_text": null,
"description": "Ingeniero/a de Automatizacion Junior Las principales funciones que desarrollaras seran...",
"description_full": "Ingeniero/a de Automatizacion Junior ...",
"description_html": "Ingeniero/a de Automatizacion Junior ...",
"description_md": "Ingeniero/a de Automatizacion Junior ...",
"contact_emails": [],
"contact_phones": [],
"contact_urls": ["https://www.tecnoempleo.com/..."],
"apply_url": "https://www.tecnoempleo.com/...",
"search_query": "ingeniero",
"scraped_at": "2026-08-31T12:00:00Z",
"cno_code": "2461",
"community_code": "10",
"sector_code": null,
"category": "INGENIERIA/CALIDAD/CIENCIAS",
"subcategory": "INGENIERIAS",
"vacancies": 1,
"disability_accessible": false,
"modality_code": "0",
"source_origin": "TECNO_EMPLEO",
"latitude": 39.4699075,
"longitude": -0.3762881,
"num_applicants": null,
"seniority_level": null,
"education_required": null,
"experience_required": null,
"start_date": null,
"contract_type_raw": "Indefinido",
"horario": "Jornada completa"
}

Pricing

EventWhen triggeredPrice
actor-startOnce per run$0.001
job-serp-resultPer job returned (SERP only mode)$0.003
job-detail-resultPer job returned (with detail fetch)$0.005

Example costs:

  • 100 jobs (SERP only): $0.001 + 100 x $0.003 = $0.31
  • 100 jobs (with details): $0.001 + 100 x $0.005 = $0.51
  • 1000 jobs (SERP only): $0.001 + 1000 x $0.003 = $3.00

Input Fields

FieldTypeDefaultDescription
searchQueriesarray-Keywords in Spanish (e.g. "programador", "enfermero", "ingeniero", "contable", "conductor")
locationstring-Spanish province or city filter (e.g. "Madrid", "Barcelona", "Sevilla", "Valencia")
searchUrlsarray-Paste empleate.gob.es search URLs directly
maxResultsinteger100Total result cap across all queries
maxResultsPerQueryinteger100Cap per keyword or URL
includeJobDetailsbooleantrueInclude full description (always populated from SEPE API)
includeCompanyDetailsbooleanfalseAttempt to extract company website
maxConcurrencyinteger5Concurrent requests (1-20)

Output Fields

FieldDescription
_typeAlways "job"
idSEPE vacancy ID
titleJob title
job_urlCanonical vacancy URL on empleate.gob.es
source_platformAlways "empleate.gob.es"
company_nameEmployer name. Null for direct SEPE/public-office listings (see Company Name Note above)
company_websiteEmployer website (when listed)
company_logo_urlLogo of the partner source system (HACESFALTA, INSERTIA, LABORA, LANBIDE, PORTALENTO, WEB, SOC, etc.). URL format: https://www.empleate.gob.es/empleo/resources/images/companies/{ORIGEN}.png. Null when origen is absent.
locationCity or municipality
countryAlways "ES"
regionSpanish autonomous community: Madrid, Cataluna, Andalucia, Comunidad Valenciana, Pais Vasco, etc.
provinceSpanish province name (e.g. "Barcelona", "A Coruña", "Valencia")
posted_at_textSpanish date format: "25 ago. 2026" (date-only — SEPE does not publish listing times)
posted_at_datetimeISO 8601 UTC full timestamp from when listing entered SEPE system
employment_typepermanent / part-time / temporary / flexible
workplace_typeon-site / hybrid / remote
salary_minMinimum salary in EUR
salary_maxMaximum salary in EUR
salary_currencyAlways "EUR" when salary present
salary_periodmonth / year
salary_textSalary as displayed
descriptionJob description snippet (500 chars)
description_fullFull plain-text description
description_htmlFull HTML description
description_mdFull Markdown description
contact_emailsEmail addresses extracted from description
contact_phonesSpanish phone numbers extracted from description
contact_urlsExternal URLs extracted from description
apply_urlApplication URL (partner site URL when available, otherwise job_url)
cno_codeCNO occupation code (Clasificacion Nacional de Ocupaciones)
community_codeSEPE autonomous community code (01-19)
sector_codeSEPE sector code
categoryJob category (e.g. INFORMATICA/TELECOMUNICACIONES)
subcategoryJob sub-category (e.g. INGENIERIAS)
vacanciesNumber of open positions
disability_accessibletrue if the listing is accessible or targeted at workers with disabilities
modality_codeSEPE modality: 0=presencial, 1=remoto, 2=hibrido
source_originSource system feeding SEPE (TECNO_EMPLEO, HACESFALTA, INFOJOBS, etc.)
latitudeGPS latitude (decimal degrees)
longitudeGPS longitude (decimal degrees)
num_applicantsNumber of applicants when available
seniority_levelSeniority level (e.g. "Mando intermedio")
education_requiredEducation level required
experience_requiredExperience requirement text
start_dateExpected start date ISO 8601 UTC (when provided)
contract_type_rawRaw contract type text from SEPE (e.g. "Indefinido", "Temporal")
horarioHuman-readable schedule (e.g. "Jornada completa")
search_queryQuery that returned this result
scraped_atISO 8601 UTC scrape timestamp

Use with AI Agents (MCP)

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/mcp-server"],
"env": { "APIFY_TOKEN": "your_token" }
}
}
}

Then ask your AI: "Search SEPE for software developer jobs in Barcelona and return the results as JSON."


Why This Scraper

  • Official government data: SEPE is Spain's national public employment service. All listings are government-verified
  • HTTP-only Go: No browser, no Playwright, no Puppeteer. Fast, cheap, reliable
  • Full national coverage: All 17 comunidades autonomas plus Ceuta and Melilla, via the SEPE national aggregator
  • Rich structured data: CNO occupation codes, sector codes, GPS coordinates, vacancies count and autonomous community classification
  • Spanish salary conventions: Handles both monthly (mensual) and annual (anual) salary formats in EUR
  • Disability-inclusive listings: SEPE marks listings with disability accessibility requirements

Common Use Cases

  • Market research: Track job postings by region, sector or occupation code across all of Spain
  • Salary benchmarking: Identify salary ranges for Spanish roles by region and sector
  • Public sector jobs: SEPE lists government, education and healthcare vacancies
  • Labour market analytics: Analyze employment trends across Spanish autonomous communities
  • Talent pipeline: Monitor which companies are hiring in specific Spanish regions
  • Geo analysis: Use latitude/longitude to plot hiring density across Spanish territory
  • Apprenticeship tracking: Monitor formacion profesional and practicas opportunities by sector

Notes and Limits

  • Coverage: National SEPE plus regional PES contributions (LANBIDE, SOC, INAEM, SEXPE, SAE, etc.)
  • Language: All listings are in Spanish (es-ES). Catalan, Basque and Galician variants occasionally appear in regional listings
  • Pagination: SEPE Solr API returns up to 50 results per page; actor paginates automatically
  • Salary data: Many Spanish salaries are listed as "segun convenio" (per collective agreement) which maps to null
  • Company name: Null on direct SEPE / public employment office listings — this is expected, not a data quality issue. Only partner-sourced listings carry employer names
  • Listing expiry: SEPE listings can expire within 48 hours to 7 days. Run regularly to capture current listings
  • Job URLs: The empleate.gob.es URL is an Angular SPA that always returns HTTP 200 regardless of listing status. Use apply_url (the originating partner URL) to verify if a listing is still live
  • Employment types: jornada completa (full-time), jornada parcial (part-time), contrato indefinido (permanent), temporal (temporary), practicas (internship), contrato de formacion (apprenticeship)
  • Update frequency: SEPE listings are updated daily. Run daily for fresh data
  • Regional services: LANBIDE (Basque), SOC (Catalan), INAEM (Aragonese), SEPECAM (Castilian), SAE (Andalusian) and SEXPE (Extremaduran) listings are all included via the national aggregator
  • Scope: This actor covers the NATIONAL SEPE system only. Individual regional portals with non-shared listings are out of scope


Support

Issues or questions? Open a ticket on the Issues tab or email contact@nanoscrape.com.