InfoJobs Scraper — Spain Job Listings
Pricing
from $0.63 / 1,000 results
InfoJobs Scraper — Spain Job Listings
Scrape 200,000+ Spanish job listings from InfoJobs.net. No proxy needed. Province-level filtering, salary data, repost detection. Filter by keyword, location, contract type. $0.79/1,000 results.
Pricing
from $0.63 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
21
Total users
7
Monthly active users
2 days ago
Last modified
Categories
Share
InfoJobs Scraper

Extract job listings from infojobs.net at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for Spain
A dedicated Spanish scraper, not a global tool with a country dropdown. Search, locations and currency (EUR) are tuned for infojobs.net.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in EUR. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "developer" | Keyword(s) to search for, e.g. 'developer', 'marketing manager', 'enfermero'. |
location | string | (empty) | Spanish province name, e.g. 'Madrid', 'Barcelona', 'Sevilla'. Leave empty for all of Spain. |
daysOld | integer | (empty) | Only return jobs posted within this many days. Supported values: 1, 7, 15, 30. Leave empty for all dates. |
skipReposts | boolean | false | Skip jobs already seen in previous runs (90-day memory). Useful for incremental/scheduled runs. |
startUrls | array | (empty) | Optional list of direct URLs to scrape specific pages. When provided, the search filters above are ignored. |
fetchDetails | boolean | false | Fetch full job details from individual listing pages. |
maxItems | integer | 100 | Maximum number of job listings to return. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing |
source | string | Source. |
language | string | Language. |
country | string | Country of the position. |
title | string | Job title |
company | string | Hiring company name |
companyUrl | string | Link to the company's page on the source. |
city | string | City of the role |
location | string | — |
workMode | string | e.g. Remote, Hybrid, On-site |
contractType | string | e.g. Indefinido, Temporal, Prácticas |
workSchedule | string | Work schedule. |
salaryRaw | string | Salary raw. |
salaryMin | number | Minimum salary (null if not published by the employer). |
salaryMax | number | Maximum salary (null if not published by the employer). |
salaryCurrency | string | Currency code of the salary. |
salaryPeriod | string | Pay period the salary refers to (e.g. year, month, hour). |
isFeatured | boolean | true for sponsored or highlighted listings |
isNew | boolean | true for listings posted in the last 24 hours |
isExecutive | boolean | true for director/executive-level roles |
publishDate | string | ISO 8601 date posted |
publishDateISO | string | Publish date iso. |
daysOld | number | Days since publication |
applyUrl | string | Direct application link. |
descriptionHtml | string | Full job description in HTML. |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Description markdown. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
summary | string | Summary. |
scrapedAt | string | Timestamp when this record was scraped. |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string | Original publish date. |
originalUrl | string | Original url. |
Example record
{"id": "ae904a57d245369dadb0f82c62c72c","url": "https://www.infojobs.net/barcelona/tu-primer-trabajo-promotor-comercial-900-1500/of-iae904a57d245369dadb0f82c62c72c","source": "infojobs.net","language": "es","country": "ES","title": "Tu PRIMER TRABAJO!! Promotor/a Comercial! 900€ - 1500€","company": "On Fire","companyUrl": "https://weareonfire.ofertas-trabajo.infojobs.net","city": "Barcelona","location": "Barcelona","workMode": "On-site","contractType": "Contrato a tiempo parcial","workSchedule": "Jornada parcial - indiferente","salaryRaw": "900 – 1500 € / MONTH","salaryMin": 900,"salaryMax": 1500,"salaryCurrency": "EUR","salaryPeriod": "MONTH","isFeatured": true,"isNew": false,"isExecutive": false,"publishDate": "2026-06-24","publishDateISO": "2026-06-24","daysOld": 1,"applyUrl": "https://www.infojobs.net/barcelona/tu-primer-trabajo-promotor-comercial-900-1500/of-iae904a57d245369dadb0f82c62c72c","descriptionHtml": "¿Buscas tu primer trabajo con buen ambiente y que tenga impacto real?<br><br>Únete a un equipo joven y comprometido con cambiar el mundo a través de campañas de sensibilización y captación de socios p …","descriptionText": "¿Buscas tu primer trabajo con buen ambiente y que tenga impacto real?\n\nÚnete a un equipo joven y comprometido con cambiar el mundo a través de campañas de sensibilización y captación de socios para un …","descriptionMarkdown": "¿Buscas tu primer trabajo con buen ambiente y que tenga impacto real?\n\nÚnete a un equipo joven y comprometido con cambiar el mundo a través de campañas de sensibilización y captación de socios para un …","contentHash": "f01012da91ab7c2b","summary": null,"scrapedAt": "2026-06-24T17:10:52.178Z","isRepost": false,"originalPublishDate": null,"originalUrl": null}
Examples
Search for administrativo roles in Madrid:
{"searchQuery": "administrativo","location": "Madrid","maxItems": 100}
Only jobs from the last 3 days:
{"searchQuery": "administrativo","location": "Madrid","maxItems": 100,"daysOld": 3}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.infojobs.net/ofertas-trabajo/desarrollador-web"}],"maxItems": 200}
Daily feed (run on a schedule):
{"searchQuery": "administrativo","daysOld": 1,"skipReposts": true,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
$0.79 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.08 |
| 1,000 | ~$0.79 |
| 10,000 | ~$7.90 |
| 100,000 | ~$79 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.45 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: infojobs.net — Spain job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl