CV.ee Scraper: Estonia Jobs with Salary
Pricing
from $1.20 / 1,000 results
CV.ee Scraper: Estonia Jobs with Salary
Scrape CV.ee (Estonia) job listings into clean JSON: title, company, town, EUR salary normalized to monthly, posting and expiry date, tags, full ad text where the board publishes it. Pay per result, no subscription.
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
CEE Jobs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
CV.ee Jobs Scraper — Estonia job listings with salary
Extract CV.ee job listings with salary, location and posting date for Estonia market research, recruiting and lead generation.
What you get
- Every job on www.cv.ee that matches your keywords, as one structured row each: title, company, location, employment type, posting date and the canonical job URL.
- The exact salary range the employer entered, in EUR — the only currency this board quotes —
and the same range as gross EUR per month in
salary.minEurMonth/salary.maxEurMonth. CV.ee publishes amounts rather than a printed label, sosalary.rawis alwaysnull. - The ad text wherever the board hosts it, plus the expiry date, the work type and the board's own category and skill tags — all of it read off the search results themselves, so no run ever has to open a second page per job.
- A stable
idof the formcv-ee:<board job id>, so repeat runs deduplicate against your own database instead of against a row number.
Sample item
{"id": "cv-ee:1641665","url": "https://www.cv.ee/et/vacancy/1641665","title": "Java Developer","company": "Playtech Estonia OÜ","companyUrl": "https://www.cv.ee/et/search/employer/2410","location": {"raw": "Tartu","city": "Tartu","country": "EE"},"remote": true,"employmentType": "FULL_TIME","salary": {"min": 2970,"max": null,"currency": "EUR","period": "month","raw": null,"minEurMonth": 2970,"maxEurMonth": null},"postedAt": "2026-08-18","expiresAt": "2026-09-17","description": "Your influential mission. You will... Develop and maintain the automation fram…","tags": ["INFORMATION_TECHNOLOGY","Java","spring"],"source": {"board": "cv-ee","boardJobId": "1641665","scrapedAt": "2026-08-22T14:45:56.503Z"}}
description is the ad's own text, with e-mail addresses, phone numbers and "Kontakts:" lines
stripped out — but only wherever the board hosts that text itself. A substantial minority of
ads publish none of it in the search results and ship description: null rather than a
truncated teaser. tags holds the board's own job category next to the skills the employer
tagged the ad with, spelling and all.
remote has three states, and false is not the same answer as null. It is true when CV.ee
marks the posting as fully remote work, false when the board marks it as hybrid or on-site,
and null when the posting says nothing about it at all. Filter on remote === true for
remote-only work, and do not read a missing flag as an office job.
postedAt is the board's publish date, which moves when an employer renews an ad — a renewed
posting reads as freshly posted, and postedWithinDays will keep it. Use expiresAt to tell
how much of the ad's run is left. Anything CV.ee did not publish is null, never missing.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
keywords | array of strings | [] | One search per keyword (job title, skill, company). Empty runs the board's default listing. |
location | string | "" | City or region, in the board's own language. location is matched client-side against the town name behind the listing's town id (the board publishes ids, not names); accents are optional, so "parnu" finds Pärnu. |
maxItems | integer | 100 | Hard stop after this many jobs. This is the cost dial. |
postedWithinDays | integer | 0 | Keep only jobs posted in the last N days. 0 disables the filter. |
startUrls | array | [] | Search URLs on www.cv.ee to crawl directly instead of building searches from keywords — the board's own https://www.cv.ee/api/v1/vacancy-search-service/search?limit=20&offset=0&…, with whatever filters you want on it. |
extra | object | {} | Board-specific filters. This board takes no extra filters yet. |
proxyConfiguration | object | Apify proxy | Apify datacenter proxy groups only; residential groups and custom proxy URLs are rejected. |
There is no includeDetails switch: the search results already carry the description, the
expiry date and the exact salary, so there is no detail page worth opening and no second
charge to opt into.
Pricing
$2 per 1,000 jobs. No subscription, and no second charge for descriptions — this actor
never opens a detail page, so the job-detail event is never billed.
Limitations
Public listing data only — no recruiter names or e-mail addresses, no data behind a login. The
crawler obeys www.cv.ee's robots.txt, including for URLs you pass in startUrls, and runs on
datacenter proxies without any CAPTCHA or challenge circumvention: a challenge page is reported
as an error, not retried through another browser. Apify datacenter proxy groups only; residential groups and custom
proxy URLs are rejected before the run starts. Rows come from CV.ee's own public search API —
the one the site's search page itself reads. A job filed under a town the board has not
published a name for keeps its country and ships with a null city. www.cv.ee's robots.txt
also carries Content-Signal: ai-train=no: this actor does not train anything on the rows it
returns, and neither should what you build on them.