ITJobs.pt Scraper avatar

ITJobs.pt Scraper

Pricing

from $1.30 / 1,000 results

Go to Apify Store
ITJobs.pt Scraper

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

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

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 isRemote boolean 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

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
}
{
"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
}

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

ParameterTypeDefaultDescription
searchKeywordstring"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.
startUrlsarray[]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.

ParameterTypeDefaultDescription
locationsmulti-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.
workModelsmulti-select[]Work arrangement: On-site, Remote, Hybrid. Empty = all.
employmentTypesmulti-select[]Full-time or Part-time. Empty = both.
contractTypesmulti-select[]Permanent, Fixed-term, Services / freelance, Professional internship, or Academic internship. Empty = all.
tagsmulti-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.
salaryRangeselectAny salaryAnnual 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.
postedWithinselectAny timeOnly include jobs published recently: Last 24 hours, Last 7 days, or Last 15 days.

Limits

ParameterTypeDefaultDescription
maxResultsinteger100Hard 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

FieldTypeDescription
jobIdstringUnique ITJobs.pt job identifier
titlestringJob title
companystringHiring company name
companyLogostringCompany logo image URL
companyUrlstringITJobs.pt company profile URL
urlstringCanonical job posting URL
applyUrlstringDirect application link
publishedAtstringDate the job was posted (ISO 8601)
searchKeywordstringThe keyword that surfaced this row (provenance)
scrapedAtstringExtraction timestamp (ISO 8601)

Location & Work Arrangement

FieldTypeDescription
locationstringJob location as displayed
districtstringNormalized Portuguese district
workModelstringOn-site, Remote, or Hybrid
isRemotebooleanTrue when the role is fully remote
employmentTypestringFull-time or Part-time
contractTypestringPermanent, Fixed-term, Services, Professional internship, or Academic internship
referenceNumberstringEmployer's internal job reference, when published

Salary

FieldTypeDescription
salaryTextstringSalary exactly as displayed on the listing
salaryMinnumberParsed lower bound of the annual range
salaryMaxnumberParsed upper bound of the annual range
salaryCurrencystringCurrency code (e.g. EUR)

Content & Tags

FieldTypeDescription
tagsarrayTechnology and skill tags on the posting
descriptionstringFull job description as clean plain text
descriptionHtmlstringFull job description in its original HTML

Tips for Best Results

  • Start small. Set maxResults to 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 salaryRange bracket (or "Any published salary") will drop the majority of jobs — leave it on "Any salary" whenever you want full coverage.
  • Use postedWithin for 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 maxResults to 0 to 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 startUrls to 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.

ResultsNo discountBronzeSilverGold
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

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.