Posao.hr Scraper
Pricing
from $1.19 / 1,000 results
Posao.hr Scraper
Extract structured job data from Posao.hr Keyword, county, category filters. Salary, job type, qualifications. No API key required.
Pricing
from $1.19 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
4
Total users
3
Monthly active users
18 days ago
Last modified
Categories
Share

Extract job listings from posao.hr 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 Croatia
A dedicated Croatian scraper, not a global tool with a country dropdown. Search, locations and currency (EUR) are tuned for posao.hr.
📄 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.
📍 Location fields
Structured location data for every listing, ready for filtering and 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" | Keyword(s) to search for (e.g. 'prodavac', 'inženjer', 'menadžer'). Leave empty to browse all jobs. |
location | string | (empty) | Filter by Croatian county. Leave empty for all regions. |
category | string | (empty) | Filter by job category. Leave empty for all categories. |
daysOld | integer | (empty) | Only return jobs published within this many days. Leave empty for no date restriction. |
salaryOnly | boolean | false | When enabled, only return jobs that publicly display a salary. |
fetchDetails | boolean | false | Fetch the full job detail page for each result. Recommended — the listing page alone provides only title and location. Disable for a fast, minimal output. |
skipReposts | boolean | false | Skip jobs already seen in previous runs (detected via 90-day cross-run deduplication). |
startUrls | array | (empty) | Optional list of specific posao.hr job URLs to scrape directly (e.g. https://www.posao.hr/oglasi/naziv/123456/). Overrides keyword search. |
maxItems | integer | 100 | Maximum number of results to return. |
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 |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing |
title | string | Job title |
company | string | Hiring company name |
location | string | Location as displayed |
region | string | Region or state of the position. |
categories | array | Categories. |
deadline | string | Deadline. |
deadlineRaw | string | Deadline raw. |
daysLeft | number | Days left. |
salary | string | Salary as displayed (null if not published by the employer). |
salaryMin | string | Minimum salary (null if not published by the employer). |
salaryMax | string | Maximum salary (null if not published by the employer). |
salaryNet | string | Salary net. |
currency | string | Currency. |
salaryDisclosed | boolean | Salary disclosed. |
jobType | string | Job type. |
qualifications | string | Qualifications. |
requiredExperience | string | Required experience. |
foreignLanguage | string | Foreign language. |
computerSkills | string | Computer skills. |
description | string | Full job description (fetchDetails required) |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Description markdown. |
benefits | string | Benefits listed on the posting. |
requirements | string | Requirements. |
applyUrl | string | Direct application link. |
companyAddress | string | Company address. |
companyWebsite | string | Company website. |
publishDate | string | Date posted |
publishDateISO | string | Publish date iso. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
isRepost | boolean | true if seen in a previous run |
originalPublishDate | string | Original publish date. |
originalUrl | string | Original url. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
summary | string | Summary. |
changeStatus | string | NEW, CHANGED or UNCHANGED compared to the previous time this job was seen. |
Example record
{"id": "1226339","url": "https://www.posao.hr/oglasi/visi-istrazivac-analiticar-za-kompleksne-proizvode-m-z/1226339/","title": "Viši istraživač - analitičar za kompleksne proizvode (m/ž)","company": null,"location": "Zagreb","region": null,"categories": [],"deadline": null,"deadlineRaw": null,"daysLeft": 6,"salary": null,"salaryMin": null,"salaryMax": null,"salaryNet": null,"currency": null,"salaryDisclosed": false,"jobType": null,"qualifications": null,"requiredExperience": null,"foreignLanguage": null,"computerSkills": null,"description": null,"descriptionText": null,"descriptionMarkdown": null,"benefits": null,"requirements": null,"applyUrl": null,"companyAddress": null,"companyWebsite": null,"publishDate": null,"publishDateISO": null,"source": "posao.hr","scrapedAt": "2026-06-24T17:11:36.453Z","isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "ce88642302557cd9","summary": "Viši istraživač - analitičar za kompleksne proizvode (m/ž) — Zagreb","changeStatus": "NEW"}
Examples
Search for vozač roles in Zagreb:
{"searchQuery": "vozač","location": "Zagreb","maxItems": 100}
Filter by contract type:
{"searchQuery": "vozač","location": "Zagreb","maxItems": 100,"category": ""}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.posao.hr/"}],"maxItems": 200}
Daily feed (run on a schedule):
{"searchQuery": "vozač","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
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.9 |
| 100,000 | ~$149 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.89 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: posao.hr — Croatia 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