Net-Empregos Scraper
Pricing
from $0.87 / 1,000 results
Net-Empregos Scraper
Scrape 60,000+ job listings from Net-Empregos.com — Portugal's largest job board. Filter by district, category, job type and keyword. Geocoded output. No API key required.
Pricing
from $0.87 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
9
Total users
4
Monthly active users
4 hours ago
Last modified
Categories
Share

Extract job listings from net-empregos.com 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 Portugal
A dedicated Portuguese scraper, not a global tool with a country dropdown. Search, locations and currency (EUR) are tuned for net-empregos.com.
📄 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.
📍 Precise location
City, region and country plus latitude/longitude for mapping and radius 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" | Job title, skill, or keyword to search for. Leave empty to scrape all active listings. |
zone | integer | 0 | Portuguese district filter. 0 = all districts. 1=Aveiro, 2=Beja, 3=Braga, 4=Bragança, 5=Castelo Branco, 6=Coimbra, 7=Évora, 8=Faro, 9=Guarda, 10=Leiria, 11=Lisboa, 12=Portalegre, 13=Porto, 14=Santarém, 15=Setúbal, 16=Viana do Castelo, 17=Vila Real, 18=Viseu, 19=Açores, 20=Madeira. |
category | integer | 0 | Job category numeric ID. 0 = all categories. Find category IDs in the Net-Empregos search form dropdown. |
jobType | integer | 0 | Contract type filter. 0 = all types. 1=Efectivo/Permanente, 2=Temporário, 3=Estágio/Trainee, 4=Part-time, 5=Freelance. |
city | string | (empty) | Filter by city name (e.g. Lisboa, Porto, Braga). Case-insensitive. |
fetchDetails | boolean | false | Fetch the full job description from each listing's detail page. Adds description and descriptionText fields. Slower — use only when description content is needed. |
daysOld | integer | 0 | Only return listings published within the last N days. 0 = no age filter. Example: 1 = today's listings only. |
skipReposts | boolean | false | Skip listings already seen in a previous run (90-day deduplication window). Enable for incremental / delta scraping. |
startUrls | array | (empty) | Specific Net-Empregos URLs to scrape directly (search result pages or individual listing URLs). When provided, all other search filters are ignored. |
maxItems | integer | 100 | Maximum number of listings to return. Set to 0 for no limit (scrapes all matching listings). |
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 |
|---|---|---|
jobId | string | Net-Empregos internal listing ID |
title | string | Job title |
url | string | Direct link to the listing |
publishDate | string | Date posted |
publishDateISO | string | Publish date iso. |
location | string | Location as displayed |
category | string | Job category |
company | string | Hiring company name |
companyId | string | Company id. |
isFeatured | boolean | true for sponsored listings |
description | string | Full job description (fetchDetails required) |
descriptionMarkdown | string | Full description converted to Markdown. |
descriptionText | string | Full job description in plain text. |
source | string | Source. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
scrapedAt | string | Timestamp when this record was scraped. |
salaryMin | string | Minimum salary (null if not published by the employer). |
salaryMax | string | 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). |
changeStatus | string | NEW, CHANGED or UNCHANGED compared to the previous time this job was seen. |
latitude | number | Latitude of the workplace. |
longitude | number | Longitude of the workplace. |
Example record
{"jobId": "15651960","title": "Técnico de Logística Loures - Loja Online","url": "https://www.net-empregos.com/15651960/tecnico-de-logistica-loures-loja-online/","publishDate": "4-7-2026","publishDateISO": "2026-07-04","location": "Lisboa","category": "Transportes / Logística","company": "Truly Nolen","companyId": null,"isFeatured": true,"description": "<div class=\"modal-dialog modal-dialog-centered\" role=\"document\">\n <div class=\"modal-content\">\n <form id=\"frmReminder\" name=\"frmReminder\" method=\"post\" action=\"/login-registo.asp?REF= …","descriptionMarkdown": "#### Login / Registar\n\n×\n\nIntroduza o seu e-mail ou login\n\nCancelar Continuar","descriptionText": "Login / Registar × Introduza o seu e-mail ou login Cancelar Continuar","source": "net-empregos.com","contentHash": "69598de8a0dc86b3","scrapedAt": "2026-07-04T03:48:34.035Z","salaryMin": null,"salaryMax": null,"salaryCurrency": null,"salaryPeriod": null,"changeStatus": "NEW","latitude": 38.7077507,"longitude": -9.1365919}
Examples
Search for contabilista roles in Lisboa:
{"searchQuery": "contabilista","city": "Lisboa","maxItems": 100}
Filter by contract type:
{"searchQuery": "contabilista","city": "Lisboa","maxItems": 100,"jobType": "FULL_TIME"}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.net-empregos.com/"}],"maxItems": 200}
Daily feed (run on a schedule):
{"searchQuery": "contabilista","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.89 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.09 |
| 1,000 | ~$0.89 |
| 10,000 | ~$8.90 |
| 100,000 | ~$89.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.85 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: net-empregos.com — Portugal 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