CV.lv Scraper - Latvian Job Listings · $1.5/1K
Pricing
from $0.75 / 1,000 result items
CV.lv Scraper - Latvian Job Listings · $1.5/1K
Extract job postings from CV.lv (Latvia) by keyword, location and field: title, employer, place, monthly pay range, posting time, URL, newest first.
Pricing
from $0.75 / 1,000 result items
Rating
0.0
(0)
Developer
Yusuke Suda
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
CV.lv Scraper — Latvian job listings by keyword, town and field
Extract job postings from CV.lv (Latvia) by keyword, location and field: title, employer, place, monthly pay range, posting time, URL, newest first.
CV.lv (CV-Online) is one of Latvia's large job boards, with about 2,400 live postings: over 1,800 in Rīga alone. This Actor turns its search results into a clean table: the job title, the employer, the town, the pay, when the posting was published, and the link to the posting.
Press Start. The prefilled input searches for grāmatvedis (accountant) in
Rīga, so the first run needs no configuration.
What a row looks like
{"title": "General Ledger Treasury Accountant / Grāmatvedis/-e","company": "Cabot Latvia SIA","location": "Rīga","remote": null,"salary_min": 1650,"salary_max": 2250,"salary_currency": "EUR","salary_period": "month","posted_at": "2026-09-24T10:28:19+00:00","source_url": "https://www.cv.lv/vacancy/1661301/cabot-latvia-sia/general-ledger-treasury-accountant-gramatvedis-e","external_id": "1661301"}
company is the employer as the posting names it. Postings that CV-Online's own
recruitment team runs for a client show "CV-Online Recruitment". If the employer
is a person, such as a sole trader, company is left empty. Contact persons,
email addresses and phone numbers are never collected. This Actor reads the
search results only and never opens the job text.
location is the town as CV.lv writes it. Where a posting names only a
county, the county is used. For a job abroad, the country is added.
remote is true for fully remote jobs and false for on-site ones. It is
empty for hybrid jobs.
Pay
Almost every CV.lv posting states pay. All 60 postings on the pages we checked
did. salary_min and salary_max are in EUR. salary_period is month, or
hour where the posting gives an hourly rate. When only one figure is given,
the other stays empty.
CV.lv does not say whether a figure is gross or net. The posting texts we read said "bruto" (gross), but the Actor does not read the text, so it makes no claim either way.
Posting dates
posted_at is the time CV.lv published the posting, to the second, in UTC.
When an employer renews a posting, this becomes the renewal time. That is also
the time CV.lv sorts by.
The Actor always reads a search newest first. A "posted after" filter therefore stops the run once the postings are older than your cutoff, which suits a daily or hourly schedule.
What people use it for
- Tracking which companies in a Latvian town are hiring, week by week.
- Feeding a job board or a newsletter with Latvian openings in a field, such as IT, finance or logistics.
- Pay benchmarking: nearly every posting states a figure.
- Research on the Latvian labour market that needs structured rows rather than a page of links.
Input
| Field | What it does |
|---|---|
searchTerms | Keywords, e.g. grāmatvedis, pārdevējs, programmētājs. Each keyword is its own search. Leave empty for everything. |
location | One Latvian town as CV.lv writes it: Rīga, Liepāja, Jelgava, Daugavpils, Valmiera, Mārupe. Diacritics are optional. Leave empty for all postings. |
category | One of CV.lv's 33 fields, e.g. Informācijas tehnoloģijas or Finanses / Grāmatvedība. Leave empty for all fields. |
postedAfter | Only postings from this time on, e.g. 2026-09-20T00:00:00+03:00. |
sinceDays | The same, as a rolling window: 1 keeps yesterday and today, 7 the last week. Set it once on a scheduled task and never edit the date again. |
maxItems | A hard stop per keyword, so your bill is predictable. |
proxyConfiguration | Off by default. Most runs do not need a proxy. |
How much one run returns
CV.lv serves 20 postings per page. The run reads page after page until the
search ends or maxItems is reached. The site states how many postings a
search holds, and the run report shows that number next to the rows delivered.
If you search several keywords, a posting that matches more than one is
delivered only once per run.
Pricing
$1.50 per 1,000 postings, falling to $0.75 per 1,000 on higher Apify plans, plus $0.005 each time a run starts. Platform usage is not passed on to you.
You are charged only for rows you actually receive. If you set a maximum charge for the run, it stops cleanly at that limit instead of going over it.
Scope and limits
The Actor reads public listings only, from the same search pages you see in a browser. CV.lv's robots.txt closes nothing. Job pages are not opened.
A town or field CV.lv does not list fails the run before it starts. The run does not quietly search the whole country instead. Towns are CV.lv's 80 Latvian towns; counties and places abroad are not offered as a search input.
Every page is checked against what you asked for: the keyword, the town, the field, the page, and the newest-first order. If the site answered something else, the run fails rather than return rows you did not ask for and charge you for them.
If CV.lv changes its search, the run goes red. It does not return zero rows and report success. A silent scraper is worse than a broken one, because you only find out weeks later.
A run that is blocked or cut short partway also goes red, even though the rows it did collect are in the dataset and yours to keep. Red here means "this is not the complete answer", not "you lost the data". On a schedule, a run that quietly came back short is the thing you most need to hear about.
Same shape, other sites
This Actor shares its output shape with:
- the CV Keskus Scraper (Estonia)
- the MojPosao and Posao.hr Scrapers (Croatia)
- the Jobs.at Scraper (Austria)
- the Jobware Scraper (Germany)
- the jobs.ch, jobup.ch and JobScout24 Scrapers (Switzerland)
- the Jobindex Scraper (Denmark)
- the Jobs.cz Scraper (Czech Republic)
- the Praca.pl Scraper (Poland)
- the BestJobs Scraper (Romania)
A parser you write for one keeps working on the others, and on the countries added next.
Support
Open an issue on this Actor with the run ID and your input. We answer within one business day.