ITJobs.pt Scraper
Pricing
from $1.30 / 1,000 results
ITJobs.pt Scraper
[💰 $1.3 / 1K] Scrape IT & tech jobs from ITJobs.pt, Portugal's leading technology job board. Get title, company, district, work model, contract type, salary range, tech tags, full description & apply link. Filter by keyword, location, remote/hybrid, contract type, salary and posting date.
Pricing
from $1.30 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Pull every IT and tech job from ITJobs.pt — Portugal's leading technology job board — with the full description, annual salary range, contract type, work model, and employer details on every listing. Search by keyword or narrow by district, technology, remote/hybrid, and posting date, all applied on ITJobs.pt's own servers. Built for Portuguese tech recruiters, salary and market analysts, and job-board builders who need clean, structured hiring data without copy-pasting listings one page at a time.
Why This Scraper?
- Portugal's whole IT board in one run — every listing across 14 Portuguese districts (Lisboa, Porto, Aveiro, Braga, Coimbra, Faro, Açores and more) plus International roles.
- Deep detail on every job, not just the card — each posting is opened to pull the full job description, annual salary range, contract type, and employer reference number that never appear on the results list.
- Five contract types, normalized to English — Permanent, Fixed-term, Services/freelance, Professional internship, and Academic internship, translated from the Portuguese "contrato sem termo / a termo / prestação de serviços / estágio" labels.
- Three work models as a first-class filter — On-site, Remote, and Hybrid (Presencial / Remoto / Híbrido), with a plain
isRemoteboolean on every row. - 18 curated technology tags — Python, Java, React, Angular, .NET, PHP, Go, AWS, Azure, Docker, Linux, Oracle, SAP, Salesforce, OutSystems, Android, and AI among them — each applied by ITJobs.pt itself, so no keyword guesswork.
- Salary intelligence with min/max split — seven annual brackets from €10,000 to €160,000 plus an "any published salary" flag; where the employer publishes pay you get
salaryMin,salaryMax, and currency, not just a text blob. - Fresh-listing windows built in — last 24 hours, 7 days, or 15 days, ideal for scheduled runs that pick up only brand-new postings.
- One clean row per job — deduplicated on the ITJobs.pt job ID across sponsored, repeated, and overlapping filter results, so no listing is counted twice.
- Every filter runs server-side — keyword, district, work model, employment type, contract, tags, salary, and date all narrow the search on ITJobs.pt, so tighter filters mean lower cost, never billed rows you then throw away.
Use Cases
Recruitment & Talent Sourcing
- Map which companies are hiring for Python, React, or .NET across Lisboa and Porto
- Track remote and hybrid openings to benchmark against your own offer
- Feed fresh openings straight into your ATS or CRM
- Build target-employer shortlists by technology and district
Market & Salary Research
- Benchmark advertised salary ranges by role, district, and contract type
- Measure how many roles publish salary versus keep it private
- Track hiring demand for AI, cloud, and specific frameworks over time
- Compare the on-site / remote / hybrid mix across the Portuguese tech market
Job Board Aggregation
- Power a niche Portuguese IT job site or newsletter with structured listings
- Merge ITJobs.pt data with other boards into a single feed
- Republish clean, de-duplicated apply links with full descriptions
Competitive Intelligence
- See which competitors are expanding teams, and in which cities
- Track a rival's open roles, tech stack, and contract types
- Spot new market entrants hiring in Portugal
Lead Generation
- Build lists of companies actively hiring for a technology you sell into
- Identify employers by district for regional outreach
- Enrich company records with logo, profile URL, and live hiring signals
Getting Started
Simple Keyword Search
The quickest start — one keyword and a cap:
{"searchKeyword": "python","maxResults": 50}
Fresh Remote & Hybrid Roles
The most useful everyday combination — recent openings in the biggest markets:
{"searchKeyword": "data engineer","locations": ["Lisboa", "Porto"],"workModels": ["remote", "hybrid"],"postedWithin": "7d","maxResults": 100}
Full-Featured Example
{"searchKeyword": "backend","locations": ["Lisboa", "Porto", "Braga"],"workModels": ["hybrid"],"employmentTypes": ["full_time"],"contractTypes": ["permanent", "fixed_term"],"tags": ["python", "aws"],"salaryRange": "40000-60000","postedWithin": "15d","maxResults": 500}
Using ITJobs.pt Links
Paste search or tag links you have already refined on the site — each link carries its own filters and is collected as its own task:
{"startUrls": ["https://www.itjobs.pt/emprego?q=react","https://www.itjobs.pt/emprego/python"],"maxResults": 200}
Input Reference
What to Scrape
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeyword | string | "python" | Word or phrase to match in job postings (e.g. "react senior", "data engineer"). Leave blank to collect every listing matching the filters below. |
startUrls | array | [] | Paste ITJobs.pt search, tag, or location links. Each is collected as its own task and results are merged and de-duplicated. When set, the keyword and filters below are ignored — the link already carries its own filters. |
Filters
Every filter is applied by ITJobs.pt itself, so narrowing your search also lowers your cost. Leave everything empty to collect the whole board.
| Parameter | Type | Default | Description |
|---|---|---|---|
locations | multi-select | [] | Portuguese districts to include: Lisboa, Porto, Aveiro, Braga, Leiria, Coimbra, Setúbal, Castelo Branco, Bragança, Faro, Santarém, Viana do Castelo, Viseu, Açores, or International (outside Portugal). Empty = anywhere. |
workModels | multi-select | [] | Work arrangement: On-site, Remote, Hybrid. Empty = all. |
employmentTypes | multi-select | [] | Full-time or Part-time. Empty = both. |
contractTypes | multi-select | [] | Permanent, Fixed-term, Services / freelance, Professional internship, or Academic internship. Empty = all. |
tags | multi-select | [] | Technology tags: Python, Java, React, Angular, .NET, PHP, Go (Golang), AWS, Azure, Docker, Linux, Oracle, SAP, Salesforce, OutSystems, Android, AI, Remote. Empty = every technology. |
salaryRange | select | Any salary | Annual salary bracket, from €10,000–€20,000 up to €140,000–€160,000, or "Any published salary". Most listings do not publish pay — picking a bracket excludes them. |
postedWithin | select | Any time | Only include jobs published recently: Last 24 hours, Last 7 days, or Last 15 days. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Hard cap on how many job listings to collect. Set to 0 to collect everything that matches. The run stops asking for new pages once the cap is reached but keeps the whole final page, so you may receive slightly more than requested. |
Output
Every job posting becomes one flat row. Here is a representative result:
{"jobId": "521483","title": "Senior Python Engineer","company": "Critical TechWorks","companyLogo": "https://www.itjobs.pt/img/company/critical-techworks.png","companyUrl": "https://www.itjobs.pt/empresa/critical-techworks","location": "Porto","district": "Porto","workModel": "Hybrid","isRemote": false,"employmentType": "Full-time","contractType": "Permanent","salaryText": "€40.000 – €60.000 / ano","salaryMin": 40000,"salaryMax": 60000,"salaryCurrency": "EUR","tags": ["python", "aws", "docker"],"description": "We are looking for a Senior Python Engineer to join our platform team, building scalable services on AWS...","descriptionHtml": "<p>We are looking for a Senior Python Engineer to join our platform team, building scalable services on AWS...</p>","publishedAt": "2026-07-14","referenceNumber": "CTW-2026-0142","applyUrl": "https://www.itjobs.pt/oferta/521483/senior-python-engineer","url": "https://www.itjobs.pt/oferta/521483/senior-python-engineer","searchKeyword": "python","scrapedAt": "2026-07-17T09:22:14.318472+00:00"}
Core Fields
| Field | Type | Description |
|---|---|---|
jobId | string | Unique ITJobs.pt job identifier |
title | string | Job title |
company | string | Hiring company name |
companyLogo | string | Company logo image URL |
companyUrl | string | ITJobs.pt company profile URL |
url | string | Canonical job posting URL |
applyUrl | string | Direct application link |
publishedAt | string | Date the job was posted (ISO 8601) |
searchKeyword | string | The keyword that surfaced this row (provenance) |
scrapedAt | string | Extraction timestamp (ISO 8601) |
Location & Work Arrangement
| Field | Type | Description |
|---|---|---|
location | string | Job location as displayed |
district | string | Normalized Portuguese district |
workModel | string | On-site, Remote, or Hybrid |
isRemote | boolean | True when the role is fully remote |
employmentType | string | Full-time or Part-time |
contractType | string | Permanent, Fixed-term, Services, Professional internship, or Academic internship |
referenceNumber | string | Employer's internal job reference, when published |
Salary
| Field | Type | Description |
|---|---|---|
salaryText | string | Salary exactly as displayed on the listing |
salaryMin | number | Parsed lower bound of the annual range |
salaryMax | number | Parsed upper bound of the annual range |
salaryCurrency | string | Currency code (e.g. EUR) |
Content & Tags
| Field | Type | Description |
|---|---|---|
tags | array | Technology and skill tags on the posting |
description | string | Full job description as clean plain text |
descriptionHtml | string | Full job description in its original HTML |
Tips for Best Results
- Start small. Set
maxResultsto 50 on your first run to confirm the data fits your needs, then scale up. - Salary is only present when the employer published it. Most ITJobs.pt listings keep pay private, so choosing a
salaryRangebracket (or "Any published salary") will drop the majority of jobs — leave it on "Any salary" whenever you want full coverage. - Use
postedWithinfor fresh-lead monitoring. On a scheduled daily or weekly run, set it to "Last 24 hours" or "Last 7 days" to collect only brand-new postings and keep every run cheap. - Filters lower your cost. Because each filter runs on ITJobs.pt's servers, narrowing your search removes rows before they are ever collected — you are never billed for listings a filter discarded.
- Collect the whole board. Leave every field blank and set
maxResultsto0to pull all current listings in one pass. - Pair a keyword with a technology tag for precision — the tag is a curated facet and the keyword is free text, so together they cut noise a plain search leaves in.
- Reuse links you have already refined. Drop a search or tag URL into
startUrlsto replay it exactly; the link's own filters take over and the keyword/filter fields are ignored.
Pricing
From $1.30 per 1,000 results — below the going rate for Portuguese IT job-board data. No compute or time-based charges: you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold subscribers pay progressively less, as shown below.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.16 | $0.15 | $0.14 | $0.13 |
| 1,000 | $1.55 | $1.45 | $1.40 | $1.30 |
| 10,000 | $15.50 | $14.50 | $14.00 | $13.00 |
| 100,000 | $155.00 | $145.00 | $140.00 | $130.00 |
A "result" is one job row in your dataset. Platform fees (compute, storage) are billed separately by Apify according to your plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate recruitment research, labor-market analysis, and job aggregation. You are responsible for complying with applicable laws, GDPR, and ITJobs.pt's Terms of Service. Do not use extracted data for spam, harassment, or any unlawful purpose, and handle any personal data you collect responsibly.