InfoJobs Job Scraper
Pricing
from $1.79 / 1,000 job scrapeds
InfoJobs Job Scraper
Scrape job listings from InfoJobs.net: titles, descriptions, companies, cities, contract types, work schedules, and posting dates.
Pricing
from $1.79 / 1,000 job scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
InfoJobs Job Scraper — Extract Job Listings from InfoJobs.net
Scrape job listings from InfoJobs, one of Spain's largest job portals. Extract job titles, full descriptions, companies, cities, contract types, work schedules, teleworking status, and posting dates from any InfoJobs search results page. Export as JSON, CSV, or Excel.
| Paste any InfoJobs search URL — keyword, city, province, or category — and get structured job data with full descriptions, contract type, workday, and teleworking status, ready for analysis, monitoring, or integration. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/infojobs-job-scraper — scrapes InfoJobs.net job listings (Spain). $0.00229/result on the Free plan ($2.29/1000), $0.00219/result on Bronze ($2.19/1000), $0.00199/result on Silver ($1.99/1000), $0.00179/result on Gold ($1.79/1000). Call via ApifyClient: client.actor("parsebird/infojobs-job-scraper").call(run_input={"searchUrls": ["https://www.infojobs.net/ofertas-trabajo/espana?keyword=puesto&segmentId=&page=1&sortBy=RELEVANCE&onlyForeignCountry=false&countryIds=17&sinceDate=ANY"], "maxItems": 30}). Inputs: searchUrls (array of strings, required — one or more InfoJobs search URLs), maxItems (integer, default 30 — maximum job listings to collect across all search URLs), proxyConfiguration (object, default {"useApifyProxy": false}). Output: dataset with searchUrl, scrapedAt, and a nested offer object containing code, title, description, city, link, contractType, workday, teleworking, publishedAt, companyName, companyLogo, companyLink, states, upsellings, executive. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What does InfoJobs Job Scraper do?
InfoJobs Job Scraper is an Apify Actor that extracts job listings directly from InfoJobs.net search results — the same structured data InfoJobs renders on its own search pages, without needing an official API.
- 🔗 URL-based search — build any search on InfoJobs.net (keyword, city, province, category, contract type, sort order) and paste the resulting URL into the Actor
- 📄 Multiple search URLs per run — combine several searches (e.g. different cities or keywords) into a single Actor run
- 📃 Automatic pagination — the Actor pages through results on your behalf until it reaches
maxItemsor runs out of listings - 📝 Full descriptions included — job descriptions are pulled straight from the search results, no extra detail-page requests required
- ⏱️ Scheduling & API access — run on autopilot with Apify Schedules and pull results via the Apify API or client libraries
- 📊 Multiple export formats — download as JSON, CSV, Excel, XML, HTML, or RSS
What data can you extract from InfoJobs.net?
| Field | Description |
|---|---|
offer.code | InfoJobs listing identifier |
offer.title | Job title |
offer.description | Full job description text |
offer.city | City where the job is located |
offer.link | Job ad URL (relative to infojobs.net) |
offer.contractType | Contract type (e.g. "Contrato indefinido") |
offer.workday | Work schedule (e.g. "Jornada completa") |
offer.teleworking | Teleworking status (e.g. "Presencial", "Híbrido") |
offer.publishedAt | Posting date (ISO 8601) |
offer.companyName | Employer name |
offer.companyLogo | Company logo URL, when available |
offer.companyLink | Link to the company's InfoJobs profile |
offer.states | Listing state flags (e.g. "REUSED") |
offer.upsellings | Promotion flags applied to the listing (e.g. "PROMOTED") |
offer.executive | Whether the listing is flagged as an executive role |
searchUrl | The search URL this job was collected from |
scrapedAt | Timestamp when the job was scraped |
How to scrape InfoJobs.net
- Go to InfoJobs.net and build a search using keyword, location, and any other filters you need
- Copy the resulting URL from your browser's address bar
- Go to InfoJobs Job Scraper on Apify Store and click Try for free
- Paste your URL(s) into the Search URLs field — add more than one to combine several searches
- Set Maximum Items — start low (e.g. 30) for a quick test, increase for larger datasets
- Click Start and wait for the run to finish
- Export your data as JSON, CSV, or Excel, or access it via the Apify API
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchUrls | array | Yes | — | List of InfoJobs search URLs to scrape |
maxItems | integer | No | 30 | Maximum number of job listings to scrape across all search URLs |
proxyConfiguration | object | No | {"useApifyProxy": false} | Proxy settings for the run |
Output example
[{"searchUrl": "https://www.infojobs.net/ofertas-trabajo/espana?keyword=puesto&segmentId=&page=1&sortBy=RELEVANCE&onlyForeignCountry=false&countryIds=17&sinceDate=ANY","scrapedAt": "2026-08-15T11:24:53.443Z","offer": {"code": "3212c87c30495fb6601d9cdb28b382","title": "PERSONAL LAVADERO VEHICULOS CON EXPERIENCIA PREVIA EN EL PUESTO","description": "seleccionamos persona para lavadero de vehiculos en concesionario, con experiencia previa en el puesto...","city": "Úbeda","link": "//www.infojobs.net/ubeda/personal-lavadero-vehiculos-con-experiencia-previa-el-puesto/of-i3212c87c30495fb6601d9cdb28b382?applicationOrigin=search-new&page=1&sortBy=RELEVANCE","contractType": "Contrato indefinido","workday": "Jornada completa","teleworking": "Presencial","publishedAt": "2026-08-10T07:47:08Z","companyName": "Grupo Ávolo","companyLink": "https://avolo.ofertas-trabajo.infojobs.net","states": ["REUSED"],"upsellings": ["BUMP_WEEKLY", "PROMOTED"],"executive": false}}]
Download results in JSON, CSV, Excel, XML, HTML, or RSS, or access via the Apify API.
Use cases
- 📊 Recruitment intelligence — build fresh hiring datasets by keyword, city, or category across Spain
- 🎯 Sales prospecting — find companies actively hiring on InfoJobs and enrich outreach lists with role and contract context
- 📈 Labor market research — track contract type mix, teleworking rates, and posting volume across regions
- 📅 Job market monitoring — schedule recurring runs to track new postings for a given search
- 🔌 Pipeline integration — feed job data into Google Sheets, Slack, Zapier, Make, or custom systems via Apify Integrations
How it works
- The Actor fetches each URL in
searchUrls, starting from the page number already encoded in the URL (or page 1 if none is set) - It parses the job listings embedded in InfoJobs' own search results page — the same data InfoJobs renders for visitors
- When more listings are needed, the Actor increments the page number and fetches the next page, continuing until
maxItemsis reached, the search runs out of results, or the last available page is hit - Every job is pushed to the dataset as it's collected, so partial results are available even if a run is stopped early
How to use via API — Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/infojobs-job-scraper").call(run_input={"searchUrls": ["https://www.infojobs.net/ofertas-trabajo/espana?keyword=puesto&segmentId=&page=1&sortBy=RELEVANCE&onlyForeignCountry=false&countryIds=17&sinceDate=ANY"],"maxItems": 50,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():offer = item["offer"]print(f"{offer['title']} at {offer['companyName']} — {offer['city']}")
How to use via API — JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('parsebird/infojobs-job-scraper').call({searchUrls: ['https://www.infojobs.net/ofertas-trabajo/espana?keyword=puesto&segmentId=&page=1&sortBy=RELEVANCE&onlyForeignCountry=false&countryIds=17&sinceDate=ANY'],maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(({ offer }) => {console.log(`${offer.title} at ${offer.companyName} — ${offer.city}`);});
How much does it cost to scrape InfoJobs.net?
InfoJobs Job Scraper uses pay-per-event pricing — you pay a fixed price per job scraped. Platform usage (compute, proxy) is not charged separately.
How much does it cost to scrape 1,000 InfoJobs jobs?
$2.29 on the Free plan, $2.19 on Bronze, $1.99 on Silver, or $1.79 on Gold. New users get a free trial with platform credit to try the Actor before committing.
How much does it cost to scrape 100 InfoJobs jobs?
Around $0.23 on the Free plan — enough for a quick export covering one or two search URLs.
Pricing
| Event | Price per event | Price per 1,000 |
|---|---|---|
job-scraped | $0.00229 (Free) / $0.00219 (Bronze) / $0.00199 (Silver) / $0.00179 (Gold) | $2.29 / $2.19 / $1.99 / $1.79 |
Each job pushed to the dataset counts as one event.
Is it legal to scrape InfoJobs.net?
This Actor extracts publicly available data from InfoJobs — the same job listing data any visitor can see on the search results pages. No login or authentication is used.
Web scraping of publicly available data is generally legal in the United States and the European Union, as established by the hiQ Labs v. LinkedIn ruling. For more information, see Apify's guide on the legality of web scraping.
Users are responsible for ensuring their use of extracted data complies with applicable laws and InfoJobs' Terms of Service in their jurisdiction.
Related Actors
Looking for more job scraping and data extraction tools? Check out these ParseBird actors:
- JobsDB Job Scraper — Scrape job listings from JobsDB.com across Thailand and Hong Kong
- Naukri Jobs Scraper — Scrape job listings, salaries, and company reviews from Naukri.com across India
- Bayt Jobs Scraper — Scrape Middle East job listings from Bayt.com
- Fotocasa Scraper — Extract Spanish real estate listings from Fotocasa.es
Browse all ParseBird actors on Apify Store.
FAQ
Do I need to build a search URL myself?
Yes. Go to InfoJobs.net, set up your search (keyword, location, filters), then copy the URL from your browser and paste it into searchUrls.
Can I combine multiple searches in one run?
Yes. Add multiple URLs to searchUrls — the Actor scrapes them in order until maxItems is reached across all of them combined.
Does the Actor fetch individual job pages for full descriptions?
No. InfoJobs' search results already include the full job description text, so the Actor collects everything in offer.description without extra detail-page requests, keeping runs fast and cheap.
What happens if a search URL returns no results? The Actor finishes successfully with an empty dataset for that URL and logs a warning — this isn't treated as an error, and any other search URLs in the run still proceed.
Why does offer.link start with // instead of https://?
That's the protocol-relative URL format InfoJobs uses internally. Prefix it with https: (e.g. https://www.infojobs.net/...) to get a clickable link.
Can I schedule recurring runs? Yes. Use Apify Schedules to run daily, weekly, or at any interval, and re-use the same search URL to track new postings over time.
Can I access the data via API? Yes. Use the Apify API or the official Python and JavaScript client libraries to run the Actor and retrieve results programmatically.
What export formats are supported? JSON, CSV, Excel (XLSX), XML, HTML, and RSS. Download directly from the Apify Console or via the API.
Is there a free trial? Yes. New Apify users get free platform credit to try InfoJobs Job Scraper before committing to a paid plan.
I found an issue or have a feature request. Open an issue on the Issues tab or contact ParseBird via the Apify Console.