NVA Latvia Job Scraper
Pricing
from $1.49 / 1,000 results
NVA Latvia Job Scraper
Under maintenanceScrape all active job listings from the Latvian State Employment Agency (NVA) public vacancy portal. Structured JSON with salary, skills, and descriptions.
Pricing
from $1.49 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

Scrape all active job listings from the Latvian State Employment Agency (NVA) public vacancy portal — structured JSON output including job descriptions, salary ranges, work conditions, and ESCO skills. No API key required.
Why this scraper?
📋 Complete vacancy data
Every active listing from the official Latvian government job portal, including full job descriptions, required qualifications, and salary information.
💶 Salary extraction
Salary range parsed into structured salaryMin / salaryMax fields (EUR) with automatic period detection (monthly or hourly).
🎯 ESCO skill tags
Captures structured ESCO competency links attached to each vacancy — useful for labour market analysis and skills-gap research.
🔁 Repost detection
Cross-run deduplication (90-day memory) via skipReposts — run daily to get only genuinely new listings.
🗓️ Date filtering
Filter by daysOld to limit results to recently published vacancies. Combine with skipReposts: true for a daily incremental feed.
🔗 Direct URL mode
Pass specific vacancy URLs via startUrls to scrape individual listings on demand.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 9999 | Maximum number of vacancies to return |
fetchDetails | boolean | true | Fetch full vacancy detail (description, work conditions, skills, education) |
skipReposts | boolean | false | Skip vacancies already seen in previous runs (90-day memory) |
daysOld | integer | — | Only return vacancies published within this many days |
startUrls | array | [] | Specific NVA vacancy URLs to scrape directly |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
id | string | Unique NVA vacancy ID |
url | string | Public URL to the vacancy on cvvp.nva.gov.lv |
title | string | Job title / profession name (in Latvian) |
company | string | Employer name |
location | string | Work location address |
vacancyNumber | string|null | NVA vacancy reference number (e.g. "260424-146") |
salaryText | string|null | Raw salary string as published (e.g. "900-1450") |
salaryMin | number|null | Minimum salary (null if not published) |
salaryMax | number|null | Maximum salary (null if single value or not published) |
salaryCurrency | string | Always "EUR" |
salaryPeriod | string|null | "MONTH" for monthly, "HOUR" for hourly rates |
validUntil | string|null | Application deadline (YYYY-MM-DD) |
publishDate | string|null | Publication date (YYYY-MM-DD) |
publishDateISO | string|null | Publication timestamp in ISO 8601 format |
isRepost | boolean | Whether this vacancy was seen in a previous run |
originalPublishDate | string|null | First-seen publish date if repost |
originalUrl | string|null | Original URL if repost |
contentHash | string | 16-char MD5 fingerprint for change detection |
source | string | Always "cvvp.nva.gov.lv" |
scrapedAt | string | ISO timestamp of when this record was scraped |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
descriptionHtml | string|null | Full job description as HTML (base64 images stripped) |
descriptionText | string|null | Plain text version of the job description |
descriptionMarkdown | string|null | Markdown version of the job description |
summary | string|null | First 200 characters of the description (plain text) |
jobArea | string|null | Industry / occupation area (e.g. "Tirdzniecība / Mārketings") |
contractType | string|null | Contract type (e.g. "Darbinieka amats uz nenoteiktu laiku") |
workSchedule | string|null | Work schedule (e.g. "Maiņu darbs") |
workload | string|null | Full-time or part-time (e.g. "Viena vesela slodze") |
vacancyCount | integer|null | Number of open positions |
startDate | string|null | Planned start date if specified |
isRemote | boolean|null | Whether fully remote work is possible |
isPartialRemote | boolean|null | Whether partial remote work is possible |
isSeasonal | boolean|null | Whether this is a seasonal position |
hasTravelRequired | boolean|null | Whether business travel is required |
hasAccommodation | boolean|null | Whether accommodation is provided |
educationLevel | string|null | Required education level (null if not specified) |
educationField | string|null | Required education field (null if not specified) |
languageRequirements | array | Language requirements (empty array if none specified) |
computerSkills | array | Computer skill requirements (empty array if none) |
escoSkills | array | ESCO competency objects: {name, uri} (empty if none) |
driverLicenseCategories | string|null | Required driving licence categories (null if none) |
certifications | string|null | Required certifications (null if none) |
Example record
{"id": "448829929","url": "https://cvvp.nva.gov.lv/#/pub/vakances/448829929","title": "MAZUMTIRDZNIECĪBAS VEIKALA PĀRDEVĒJS","company": "\"FIRMA MADARA 89\" SIA","location": "LATVIJA, Selgas iela 1B, Roja, Rojas pag., Talsu nov.","vacancyNumber": "260424-146","salaryText": "900","salaryMin": 900,"salaryMax": null,"salaryCurrency": "EUR","salaryPeriod": "MONTH","validUntil": "2026-05-08","publishDate": "2026-04-24","publishDateISO": "2026-04-24T14:47:57.090Z","descriptionHtml": "<p><b>Galvenie darba pienākumi:</b></p><ul><li>Pārtikas un nepārtikas preču tirdzniecība</li></ul>","descriptionText": "Galvenie darba pienākumi: Pārtikas un nepārtikas preču tirdzniecība...","descriptionMarkdown": "**Galvenie darba pienākumi:**\n\n- Pārtikas un nepārtikas preču tirdzniecība","summary": "Galvenie darba pienākumi: Pārtikas un nepārtikas preču tirdzniecība; Pircēju apkalpošana pie kases; Preču pieņemšana, pasūtīšana...","jobArea": "Tirdzniecība / Mārketings","contractType": "Darbinieka amats uz nenoteiktu laiku","workSchedule": "Maiņu darbs","workload": "Viena vesela slodze","vacancyCount": 1,"startDate": null,"isRemote": null,"isPartialRemote": null,"isSeasonal": null,"hasTravelRequired": null,"hasAccommodation": null,"educationLevel": null,"educationField": null,"languageRequirements": [],"computerSkills": [],"escoSkills": [],"driverLicenseCategories": null,"certifications": null,"isRepost": false,"originalPublishDate": null,"originalUrl": null,"contentHash": "a3f8c1d2e4b9f7a1","source": "cvvp.nva.gov.lv","scrapedAt": "2026-04-24T17:30:00.000Z"}
Examples
Fetch all active NVA vacancies with full details:
{"fetchDetails": true,"maxResults": 9999}
Get only new vacancies published in the last 7 days:
{"fetchDetails": true,"daysOld": 7}
Direct URL — scrape a specific vacancy:
{"startUrls": [{ "url": "https://cvvp.nva.gov.lv/#/pub/vakances/448829929" }],"fetchDetails": true}
Daily incremental feed — new listings only:
{"fetchDetails": true,"daysOld": 1,"skipReposts": true}
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.90 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run type | Approx. time | Memory |
|---|---|---|
| Full feed, fetchDetails: true (~100 listings) | 30–90 seconds | 512 MB |
| Full feed, fetchDetails: false | 5–15 seconds | 512 MB |
| startUrls (1 listing) | 3–8 seconds | 512 MB |
Known limitations
- The NVA public vacancy portal (
cvvp.nva.gov.lv) typically lists 50–200 active vacancies at any time — this is a curated government portal, not a commercial aggregator. - Job descriptions are published in Latvian. No translation is performed.
- Salary data is published at the employer's discretion;
salaryMinandsalaryMaxmay be null for listings without salary information. - Contact person details are excluded from output in compliance with GDPR / PII policy.
educationLevel,educationField, and language requirements are null for many listings.
Technical details
- Source: cvvp.nva.gov.lv — Latvian State Employment Agency public vacancy portal (NVA CVVP)
- Memory: 512 MB
- Repost storage: KeyValueStore
nva-lv-scraper-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Part of the Unfenced Group European job board scraper portfolio — 50+ job markets covered. Built by unfenced-group · Issues? Open a ticket or send a message.