InfoJobs Jobs Scraper — Spain Jobs & Salary API avatar

InfoJobs Jobs Scraper — Spain Jobs & Salary API

Pricing

from $1.99 / 1,000 job listings

Go to Apify Store
InfoJobs Jobs Scraper — Spain Jobs & Salary API

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

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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 HTTPno 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.

ActorFocus
InfoJobs Jobs Scraper ◄── you are hereInfoJobs.net Spain job listings
Stepstone Jobs ScraperDACH commercial job board
Arbeitsagentur Jobs ScraperGermany BA Jobsuche
Glassdoor ScraperEmployer reviews, salaries, and jobs
Naukri Jobs ScraperIndia’s largest job board (Naukri.com)
Foundit Jobs ScraperFoundit.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 + categoryposition, 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 caseWhat you get
Job aggregationFresh InfoJobs.net openings into a board / search index
Salary benchmarkingDisclosed EUR bands with pay period so yearly and monthly figures are not mixed
Remote / hybrid trackingworkMode + teleworking from the employer’s own facet, not a keyword guess
Recruiting intelligenceWho is hiring, contract mix, executive flag, competitor vacancies
Employer lead genCompany 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

FieldTypeDescription
positionstringFree-text keyword (e.g. python, desarrollador). Empty = province/category browse
searchKeywordsstring[]Extra keyword queries, merged and deduplicated
locationstringProvince or city (Madrid, Barcelona, València, Bizkaia)
locationsstring[]Extra provinces/cities, combined into one filter
categorySlugenumOne of InfoJobs’ 21 top-level categories
startUrlsrequest listSearch or offer URLs
workModeenumRemote / hybrid / on-site / remote-or-hybrid
contractTypeenumInfoJobs contract facet
sinceDateenumANY, last 24 hours, 7 days, or 15 days
sortByenumRelevance (needs a keyword) or newest first
companyNamestringEmployer substring filter
salaryMinintegerKeep disclosed salaries at or above this EUR amount
executiveOnlybooleanExecutive segment only
includeJobDescriptionbooleanKeep card description (on by default; no extra request)
maxItems / maxPagesintegerCaps (~20 jobs per page)
monitorModebooleanCharge only new offer codes after the baseline run
proxyConfigurationobjectOptional; default is no proxy

Output

One dataset row per job. Field names match the Jobs suite (camelCase).

FieldTypeDescription
jobIdstringStable InfoJobs offer code (join key; ignore tracking params on url)
titlestringListing title
employerstringHiring company
employerUrl / employerLogoUrlstringPublic company profile and logo
city / locationstringCity shown on the card
workMode / teleworking / workFromHomestring / string / booleanremote / hybrid / office plus original label
contractType / workdaystringe.g. Contrato indefinido, Jornada completa
salaryNote / salaryMin / salaryMaxstring / integerEUR when disclosed
salaryPeriod / salaryTypestringYEAR / MONTH / HOUR and GROSS/NET
executive / featuredbooleanExecutive segment / promoted card
descriptionstringFull search-card description
urlstringJob page
publishedAt / scrapedAtstringISO-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 ApifyClient
client = 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.

ActorFocus
InfoJobs Jobs Scraper ◄── you are hereInfoJobs.net Spain jobs
Stepstone Jobs ScraperDACH job listings
Arbeitsagentur Jobs ScraperGermany BA Jobsuche
Glassdoor ScraperReviews, salaries, interviews, jobs
Naukri Jobs ScraperNaukri.com India jobs
Foundit Jobs ScraperFoundit.in / Monster India