ITJobs.pt Scraper
Pricing
from $1.50 / 1,000 results
ITJobs.pt Scraper
Scrape IT job listings from ITJobs.pt — Portugal's leading tech job board.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract IT job listings from ITJobs.pt — Portugal's leading technology job board. Filter by keyword, location, work model and contract type. Retrieve structured data including full job descriptions, salary ranges and company details. No API key required.

Why use this scraper?
- Full-text job descriptions — HTML, plain text and Markdown formats included in every result
- Structured salary data — minimum, maximum, currency and pay period extracted from schema.org markup
- Work model filter — filter on-site, remote or hybrid roles directly
- Contract type filter — permanent, fixed-term, freelance and internship
- Repost detection — 90-day deduplication window flags recurring listings so you don't process duplicates
- Age filter —
daysOldparameter limits results to recently published jobs - 50,000+ active listings accessible without authentication
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keyword | string | — | Job title, skill or technology (e.g. Python developer, DevOps) |
location | string | — | Portuguese district (e.g. Lisboa, Porto, Braga) or a numeric location ID |
workModel | select | all | all · presential · remote · hybrid |
contractType | select | all | all · permanent · fixed-term · freelance · internship |
maxResults | integer | 100 | Maximum number of results to return |
daysOld | integer | 0 | Only return jobs posted within this many days (0 = no limit) |
skipReposts | boolean | false | Skip listings seen in a previous run |
fetchDetails | boolean | true | Fetch each job's detail page for full description and structured data |
startUrls | array | — | Specific ITJobs.pt job or search URLs to scrape instead of a keyword search |
Supported location values
Common Portuguese districts: Lisboa, Porto, Braga, Coimbra, Aveiro, Setúbal, Leiria, Viseu, Évora, Faro, Beja, Bragança, Castelo Branco, Guarda, Portalegre, Santarém, Viana do Castelo, Vila Real. Unrecognised values are ignored (location filter disabled).
Output fields
Each result contains the following fields:
| Field | Type | Description |
|---|---|---|
id | string | ITJobs.pt internal job ID |
url | string | Full URL to the job posting |
title | string | Job title |
company | string | Hiring company name |
companyUrl | string | Company website |
companyLogo | string | Company logo URL |
location | string | City or district |
region | string | Region / district (from structured data) |
postalCode | string | Postal code when available |
country | string | Country code (pt) |
workModel | string | presential · remote · hybrid |
contractType | string | full-time · part-time · contract · internship |
salaryMin | number | Minimum annual salary in EUR |
salaryMax | number | Maximum annual salary in EUR |
salaryPeriod | string | Pay period (YEAR · MONTH · HOUR) |
salaryCurrency | string | Currency code (e.g. EUR) |
salaryRaw | string | Raw salary string from listing (e.g. €23 000 - €27 000) |
description | string | Full job description (HTML) |
descriptionText | string | Full job description (plain text) |
descriptionMarkdown | string | Full job description (Markdown) |
publishDate | string | Publication date (YYYY-MM-DD) |
publishDateISO | string | Publication date in ISO 8601 format |
expiryDate | string | Listing expiry date when available |
isPromoted | boolean | Whether the listing is a featured/promoted result |
isRepost | boolean | Whether this job has appeared in a previous run |
originalPublishDate | string | First seen date for repost jobs |
originalUrl | string | Original URL for repost jobs |
contentHash | string | MD5 hash of URL + date (16 chars, change detection) |
summary | string | One-line summary for notifications |
source | string | itjobs.pt |
scrapedAt | string | ISO 8601 timestamp of when the item was scraped |
Example output
{"id": "511796","url": "https://www.itjobs.pt/oferta/511796/quality-assurance-tester","title": "Quality Assurance Tester","company": "VideoSmart Ltd","companyUrl": "https://www.videosmart.com","location": "Porto","region": "Porto","country": "pt","workModel": "hybrid","contractType": "full-time","salaryMin": 23000,"salaryMax": 27000,"salaryPeriod": "YEAR","salaryCurrency": "EUR","salaryRaw": "€23 000 - €27 000","publishDate": "2026-04-02","publishDateISO": "2026-04-02","isPromoted": false,"isRepost": false,"source": "itjobs.pt","scrapedAt": "2026-04-05T10:30:00.000Z"}
Pricing
This actor uses Pay Per Result pricing — you only pay for what you actually get.
| Tier | Price |
|---|---|
| This actor | $1.50 per 1,000 results |
| Flat-rate alternatives | $49–$299/month regardless of usage |
Scraping 500 jobs costs $0.75. Scraping 10,000 jobs costs $15.00.
Performance
| Scenario | Results | Time |
|---|---|---|
Keyword search, fetchDetails: true | 100 jobs | ~3 min |
Keyword search, fetchDetails: false | 500 jobs | ~2 min |
| Full site crawl, all pages | 5,000+ jobs | ~2–3 hr |
Performance varies with result count and network conditions. The actor applies human-like request pacing to avoid rate limits.
Known limitations
- Location filter: Only Portuguese district names are supported as text input. City-level filtering within a district is not available via URL parameters.
- Salary: Not all listings include structured salary data;
salaryMin/salaryMaxwill benullin those cases. - Promoted listings: Promoted jobs appear at the top of every page and may be de-duplicated across pages automatically.
Technical details
- Platform: Apify
- Memory: 256 MB
- Concurrency: Conservative request rate with Gaussian sleep between requests
Additional services
Need custom data delivery, scheduled exports, webhook integrations or a tailored scraper for a site not in our portfolio? Contact us at info@unfencedgroup.nl.
Built and maintained by unfenced-group · Portugal job market data · ITJobs.pt Scraper