InfoJobs Scraper: Spain Job Listings and Salaries avatar

InfoJobs Scraper: Spain Job Listings and Salaries

Pricing

from $1.00 / 1,000 results

Go to Apify Store
InfoJobs Scraper: Spain Job Listings and Salaries

InfoJobs Scraper: Spain Job Listings and Salaries

Scrape InfoJobs.net job offers in Spain by keyword, province, category, contract type, remote mode and posted date. Title, company, city, salary band, contract, workday, publication date and offer text. Optional applicants, skills and requirements. Unofficial.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

reventadata

reventadata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Categories

Features

Limited permissions

Share

InfoJobs Scraper

Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to InfoJobs. "InfoJobs" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public search pages a browser does.

InfoJobs Scraper turns an InfoJobs.net (Spain) job search into a clean table: title, company, city, contract, working day, remote mode, published salary band, publication date and the offer text. Optionally it opens each offer to add applicants, required skills, languages, studies and experience.

What does it do?

Give it a keyword (for example camarero) and, if you want, a province, category, contract type, on-site or remote mode, a posted-within window and a sort order. It reads the result pages and returns one row per offer.

Why use it?

  • Filters applied by the site: province, category, contract, remote mode, posted-since and sort are sent to InfoJobs itself. If InfoJobs does not apply one of them, the run stops there with a warning instead of returning unfiltered rows; rows already returned are kept, and a run with no rows fails.
  • Salary as numbers: minimum, maximum, period (year or month) and currency when the offer publishes a salary; null otherwise.
  • Optional detail enrichment: applicants so far, required skills and languages, minimum studies and experience.
  • Reaches a site that blocks plain scrapers: pages are fetched through an unblocking service run by the Actor itself; you do not need a proxy or a key.
  • Public data only: company names and the offer text the site shows are in the rows; nothing from behind a login.

How to use it

  1. Enter a keyword, or leave it empty to list every offer.
  2. Optionally set the filters. Province and category take the InfoJobs numeric id (for example 33 for Madrid, 160 for Turismo y restauración); the input form lists the ids seen on the site.
  3. Set maxItems and maxPages, run the Actor, and download the dataset as JSON, CSV or Excel.

Limit of the site: InfoJobs serves at most 2,999 pages (59,980 offers) for one search, even when it reports more. When a search is bigger, the Actor logs a warning; split it with the filters (one run per province, for example). Each page takes about 30 seconds.

Detail pages are slow: fetchDetails opens each offer's own page, one request per row, about 26 to 52 seconds each (measured), one at a time. Leave it off unless you need those fields. A detail page that cannot be read leaves the five detail fields null; the row is still returned.

Input

FieldTypeDescription
keywordstringJob title or words. Empty lists every offer.
provinceIdstringInfoJobs province id (digits), for example 33.
categoryIdstringInfoJobs category id (digits), for example 160.
contractTypeIdstringContract type (Indefinido, De duración determinada, Fijo discontinuo, ...).
teleworkingIdstringPresencial, Solo teletrabajo or Sin especificar.
sinceDatestringANY, _24_HOURS, _7_DAYS or _15_DAYS.
sortBystringPUBLICATION_DATE or RELEVANCE.
fetchDetailsbooleanAdd applicants, skills, languages, studies, experience (one extra request per row). Each detail page used in a returned row is charged as a separate detail-page event.
maxItemsintegerMaximum rows to return.
maxPagesintegerMaximum result pages (20 offers each), up to 2,999.

Sample Input

{
"keyword": "camarero",
"provinceId": "33",
"contractTypeId": "1",
"maxItems": 20,
"maxPages": 1
}

Output

One row per offer: id, url, title, description, city, contractType, workday, teleworking, salaryMin, salaryMax, salaryPeriod, salaryCurrency, salaryType, publishedAt, companyName, companyUrl, upsellings, executive, searchUrl. With fetchDetails: applicants, requiredSkills, requiredLanguages, minimumStudies, minimumExperience. Fields the offer does not give are null. The result list marks some offers as promoted (upsellings), and promoted offers can appear out of date order.

Sample Output

A real row (keyword camarero, with fetchDetails), description shortened and searchUrl left out:

{
"id": "98ce6b67ca4d60a459d2cc5c08e981",
"url": "https://www.infojobs.net/zaragoza/camarero/of-i98ce6b67ca4d60a459d2cc5c08e981",
"title": "Camarero/a",
"description": "Desde InfoJobs Assistance un servicio de Adevinta, estamos buscando un/a Camarer...",
"city": "Zaragoza",
"contractType": "Contrato indefinido",
"workday": "Jornada completa",
"teleworking": "Presencial",
"salaryMin": 1800,
"salaryMax": 1900,
"salaryPeriod": "MONTH",
"salaryCurrency": "EUR",
"salaryType": "GROSS",
"publishedAt": "2026-11-06T07:37:08Z",
"companyName": "InfoJobs Assistance",
"companyUrl": "https://ijassistance.ofertas-trabajo.infojobs.net",
"upsellings": ["PROMOTED"],
"executive": false,
"applicants": 111,
"requiredSkills": ["camarero/a", "comandas", "barra", "sala", "terraza", "TPV", "Carnet manipulador/a alimentos"],
"requiredLanguages": [],
"minimumStudies": "Educación Secundaria Obligatoria",
"minimumExperience": "Al menos 3 años"
}

Pricing

Detail pages (fetchDetails) are charged as a separate event, one per detail page used in a returned row; a detail page that cannot be read is not charged. For current pricing and details, see the Store page.

Privacy & Compliance

This Actor reads only publicly accessible search and offer pages and returns the public data they show. It sends no login and returns nothing from behind a login.