InfoJobs Jobs Scraper — Spain Jobs & Salary API
Pricing
from $1.99 / 1,000 job listings
InfoJobs Jobs Scraper — Spain Jobs & Salary API
Scrape InfoJobs.net Spain job listings by keyword, province, category, or start URLs — an InfoJobs API alternative with no login. Export title, employer, city, contract, remote/hybrid, EUR salary with pay period, and descriptions as JSON.
Pricing
from $1.99 / 1,000 job listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool for publicly accessible InfoJobs job listings. InfoJobs, InfoJobs.net, and related names are trademarks of their respective owners. Not affiliated with, sponsored by, or endorsed by InfoJobs / Adevinta. For informational, research, aggregation, and recruiting-intelligence use only. Respect applicable terms of use and law.
InfoJobs scraper for Spain’s largest job board (InfoJobs.net / ofertas de empleo). A practical InfoJobs API alternative and Spain jobs scraper: search by keyword, province, category, teletrabajo filters, or paste listing start URLs. Export title, employer, city, contrato (indefinido / temporal), jornada, remote / hybrid / on-site, EUR salary (min/max + YEAR/MONTH/HOUR), full description, and job URLs as JSON, CSV, or Excel via fast HTTP — no headless browser and no login. Scrape InfoJobs with Python, Node.js, cURL, or Apify MCP / AI assistants.
Ideal for Spanish job-board aggregation, salary benchmarking, teletrabajo / híbrido tracking, recruiting intelligence, and employer lead generation across Madrid, Barcelona, Valencia, Andalucía, and nationwide.
| Actor | Focus |
|---|---|
| InfoJobs Jobs Scraper ◄── you are here | InfoJobs.net Spain job listings |
| Stepstone Jobs Scraper | DACH commercial job board |
| Arbeitsagentur Jobs Scraper | Germany BA Jobsuche |
| Glassdoor Scraper | Employer reviews, salaries, and jobs |
| Naukri Jobs Scraper | India’s largest job board (Naukri.com) |
| Foundit Jobs Scraper | Foundit.in / Monster India job listings |
When to use this Actor
- You need an InfoJobs scraper / InfoJobs.net scraper / Spain jobs scraper that returns structured JSON
- You want keyword + province + category + InfoJobs filters without maintaining your own crawler
- You need EUR salary with YEAR/MONTH/HOUR period, contract, teleworking, and full description as first-class fields
- You want to scrape InfoJobs with Python, Node.js, or MCP and export a dataset
- You run a daily monitor and only want new offer codes billed
When not to use this Actor
- Non-Spanish InfoJobs sites — this Actor covers infojobs.net (Spain). InfoJobs Italy has shut down
- Guaranteed emails or phones — public listing cards rarely include direct contacts
- Login-walled apply-form automation — public search data only
- Historical archives — currently listed jobs only
- DACH job boards — use Stepstone Jobs Scraper or Arbeitsagentur Jobs Scraper
Key Features
- Keyword + province + category —
position, optional extra keywords, all 52 Spanish provinces (bilingual names), 21 InfoJobs categories - Start URL parsing — paste
/ofertas-trabajo/madrid,/ofertas-trabajo/informatica-telecomunicaciones, filtered query strings, or a single offer URL - Native InfoJobs filters — teleworking (remote / hybrid / on-site), contract type, freshness (24h / 7d / 15d), sort, executive, jobs abroad
- Structured salary — EUR min/max plus
salaryPeriod(YEAR/MONTH/HOUR) and gross/net when InfoJobs discloses a band — never a fake zero - Full description on the card — no extra detail request; turn the field off only to shrink exports
- HTTP JSON path — Chrome TLS impersonation against InfoJobs’ public search JSON; 256–512 MB, no Playwright
- Datacenter-friendly — search API does not require residential proxy in testing (optional if you scale)
- Monitor mode — named Key-Value store of seen offer codes; later scheduled runs emit only new jobs
- Deduplicated offer codes across pages, keywords, and multi-province runs
- MCP / AI ready — call from assistants via Apify MCP
Use Cases
| Use case | What you get |
|---|---|
| Job aggregation | Fresh InfoJobs.net openings into a board / search index |
| Salary benchmarking | Disclosed EUR bands with pay period so yearly and monthly figures are not mixed |
| Remote / hybrid tracking | workMode + teleworking from the employer’s own facet, not a keyword guess |
| Recruiting intelligence | Who is hiring, contract mix, executive flag, competitor vacancies |
| Employer lead gen | Company name, profile URL, and logo for firms with open roles |
| Daily “what’s new” | monitorMode on a schedule — pay only for new offer codes |
Quick Start
Keyword + province:
{"position": "python","location": "Madrid","maxItems": 50,"sinceDate": "_7_DAYS","proxyConfiguration": {"useApifyProxy": false}}
Category browse + remote filter:
{"categorySlug": "informatica-telecomunicaciones","location": "Barcelona","workMode": "remote-hybrid","maxItems": 100}
Listing start URL (filters in the query string are applied):
{"startUrls": [{ "url": "https://www.infojobs.net/ofertas-trabajo?keyword=desarrollador&provinceIds=33&teleworkingIds=2&sinceDate=_7_DAYS&sortBy=PUBLICATION_DATE" }],"maxItems": 100}
Input
| Field | Type | Description |
|---|---|---|
position | string | Free-text keyword (e.g. python, desarrollador). Empty = province/category browse |
searchKeywords | string[] | Extra keyword queries, merged and deduplicated |
location | string | Province or city (Madrid, Barcelona, València, Bizkaia) |
locations | string[] | Extra provinces/cities, combined into one filter |
categorySlug | enum | One of InfoJobs’ 21 top-level categories |
startUrls | request list | Search or offer URLs |
workMode | enum | Remote / hybrid / on-site / remote-or-hybrid |
contractType | enum | InfoJobs contract facet |
sinceDate | enum | ANY, last 24 hours, 7 days, or 15 days |
sortBy | enum | Relevance (needs a keyword) or newest first |
companyName | string | Employer substring filter |
salaryMin | integer | Keep disclosed salaries at or above this EUR amount |
executiveOnly | boolean | Executive segment only |
includeJobDescription | boolean | Keep card description (on by default; no extra request) |
maxItems / maxPages | integer | Caps (~20 jobs per page) |
monitorMode | boolean | Charge only new offer codes after the baseline run |
proxyConfiguration | object | Optional; default is no proxy |
Output
One dataset row per job. Field names match the Jobs suite (camelCase).
| Field | Type | Description |
|---|---|---|
jobId | string | Stable InfoJobs offer code (join key; ignore tracking params on url) |
title | string | Listing title |
employer | string | Hiring company |
employerUrl / employerLogoUrl | string | Public company profile and logo |
city / location | string | City shown on the card |
workMode / teleworking / workFromHome | string / string / boolean | remote / hybrid / office plus original label |
contractType / workday | string | e.g. Contrato indefinido, Jornada completa |
salaryNote / salaryMin / salaryMax | string / integer | EUR when disclosed |
salaryPeriod / salaryType | string | YEAR / MONTH / HOUR and GROSS/NET |
executive / featured | boolean | Executive segment / promoted card |
description | string | Full search-card description |
url | string | Job page |
publishedAt / scrapedAt | string | ISO-8601 UTC |
{"source": "infojobs","jobId": "bc8296fbb94a69a99c4da55574971e","url": "https://www.infojobs.net/madrid/full-stack-developer-angular-python-java-ia-generativa-remoto/of-ibc8296fbb94a69a99c4da55574971e","title": "Full Stack Developer (Angular + Python + Java) | IA Generativa - Remoto","employer": "eXperience Ingeniería y Servicios","city": "Madrid","workMode": "remote","teleworking": "Solo teletrabajo","workFromHome": true,"contractType": "Contrato indefinido","workday": "Jornada completa","salaryMin": 36000,"salaryMax": 45000,"salaryPeriod": "YEAR","salaryCurrency": "EUR","salaryType": "GROSS","salaryConfidential": false,"executive": false,"publishedAt": "2026-08-14T09:40:42Z"}
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/infojobs-jobs-scraper').call({position: 'python',location: 'Madrid',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/infojobs-jobs-scraper").call(run_input={"position": "python","location": "Madrid","maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("title"), item.get("employer"), item.get("salaryNote"), item.get("url"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~infojobs-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"position":"python","location":"Madrid","maxItems":50}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/infojobs-jobs-scraper.
Example prompts:
- "Run InfoJobs Jobs Scraper for python in Madrid, max 50, and return title, employer, salaryNote, workMode, url as JSON"
- "Scrape InfoJobs IT jobs in Barcelona posted in the last 7 days that are remote or hybrid"
- "Pull InfoJobs desarrollador openings in Madrid, then run Glassdoor Scraper for the top hiring employers"
- "Monitor InfoJobs python jobs in Madrid daily and return only new offer codes"
Suite next step
InfoJobs is Spain’s high-volume general board (contract + teleworking + EUR salary on the card). For DACH commercial listings run Stepstone Jobs Scraper next. For Germany’s public Jobsuche feed use Arbeitsagentur Jobs Scraper. For employer reviews and interview intel, use Glassdoor Scraper.
FAQ
Is this an official InfoJobs API?
No. It calls the same public search JSON the website uses and returns structured dataset rows — a practical InfoJobs API alternative for pipelines. You do not need InfoJobs developer credentials.
Can I paste an InfoJobs search URL?
Yes — startUrls accepts /ofertas-trabajo, province/category semantic paths, filtered query strings (provinceIds, teleworkingIds, sinceDate, sortBy), and individual offer URLs (/of-i…).
Does InfoJobs require login?
No for public search results and listing cards. Personalized “my applications” feeds are not used.
Do I need a residential proxy?
Usually not. InfoJobs’ search JSON is unauthenticated and worked over datacenter connections in testing. A proxyConfiguration input is still available if you scale up and start seeing blocks.
Is salary always present?
No. Many posters hide pay. salaryConfidential: true flags those rows. Numeric EUR fields appear only when the employer published a band. Always read salaryPeriod before comparing two numbers — 2,500 can be monthly while 27,000 is yearly.
Does the Actor cover InfoJobs Italy?
No. InfoJobs.it is shut down. This Actor is infojobs.net (Spain) only.
What is monitor mode?
With monitorMode: true, seen offer codes are stored in a named Key-Value store. The first run is the baseline (all matches are new). Later scheduled runs push and charge only codes not seen before.
Can I export JSON, CSV, or Excel?
Yes — every run writes a dataset you can download as JSON / CSV / Excel, or pull with the Apify API, Python/Node clients, or MCP.
Can I scrape InfoJobs with Python or Node.js?
Yes. Use the Apify client examples above, the REST API, or Apify MCP. Every run writes a dataset you can download as JSON, CSV, or Excel.
How many jobs per search?
InfoJobs paginates about 20 jobs per page and caps a single search around 60k ofertas. Split nationwide sweeps by province or category.
Related Actors
| Actor | Focus |
|---|---|
| InfoJobs Jobs Scraper ◄── you are here | InfoJobs.net Spain jobs |
| Stepstone Jobs Scraper | DACH job listings |
| Arbeitsagentur Jobs Scraper | Germany BA Jobsuche |
| Glassdoor Scraper | Reviews, salaries, interviews, jobs |
| Naukri Jobs Scraper | Naukri.com India jobs |
| Foundit Jobs Scraper | Foundit.in / Monster India |