NVA Latvia Job Scraper avatar

NVA Latvia Job Scraper

Under maintenance

Pricing

from $1.49 / 1,000 results

Go to Apify Store
NVA Latvia Job Scraper

NVA Latvia Job Scraper

Under maintenance

Scrape 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

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Banner

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

ParameterTypeDefaultDescription
maxResultsinteger9999Maximum number of vacancies to return
fetchDetailsbooleantrueFetch full vacancy detail (description, work conditions, skills, education)
skipRepostsbooleanfalseSkip vacancies already seen in previous runs (90-day memory)
daysOldintegerOnly return vacancies published within this many days
startUrlsarray[]Specific NVA vacancy URLs to scrape directly

Output schema

Always present

FieldTypeDescription
idstringUnique NVA vacancy ID
urlstringPublic URL to the vacancy on cvvp.nva.gov.lv
titlestringJob title / profession name (in Latvian)
companystringEmployer name
locationstringWork location address
vacancyNumberstring|nullNVA vacancy reference number (e.g. "260424-146")
salaryTextstring|nullRaw salary string as published (e.g. "900-1450")
salaryMinnumber|nullMinimum salary (null if not published)
salaryMaxnumber|nullMaximum salary (null if single value or not published)
salaryCurrencystringAlways "EUR"
salaryPeriodstring|null"MONTH" for monthly, "HOUR" for hourly rates
validUntilstring|nullApplication deadline (YYYY-MM-DD)
publishDatestring|nullPublication date (YYYY-MM-DD)
publishDateISOstring|nullPublication timestamp in ISO 8601 format
isRepostbooleanWhether this vacancy was seen in a previous run
originalPublishDatestring|nullFirst-seen publish date if repost
originalUrlstring|nullOriginal URL if repost
contentHashstring16-char MD5 fingerprint for change detection
sourcestringAlways "cvvp.nva.gov.lv"
scrapedAtstringISO timestamp of when this record was scraped

With fetchDetails: true

FieldTypeDescription
descriptionHtmlstring|nullFull job description as HTML (base64 images stripped)
descriptionTextstring|nullPlain text version of the job description
descriptionMarkdownstring|nullMarkdown version of the job description
summarystring|nullFirst 200 characters of the description (plain text)
jobAreastring|nullIndustry / occupation area (e.g. "Tirdzniecība / Mārketings")
contractTypestring|nullContract type (e.g. "Darbinieka amats uz nenoteiktu laiku")
workSchedulestring|nullWork schedule (e.g. "Maiņu darbs")
workloadstring|nullFull-time or part-time (e.g. "Viena vesela slodze")
vacancyCountinteger|nullNumber of open positions
startDatestring|nullPlanned start date if specified
isRemoteboolean|nullWhether fully remote work is possible
isPartialRemoteboolean|nullWhether partial remote work is possible
isSeasonalboolean|nullWhether this is a seasonal position
hasTravelRequiredboolean|nullWhether business travel is required
hasAccommodationboolean|nullWhether accommodation is provided
educationLevelstring|nullRequired education level (null if not specified)
educationFieldstring|nullRequired education field (null if not specified)
languageRequirementsarrayLanguage requirements (empty array if none specified)
computerSkillsarrayComputer skill requirements (empty array if none)
escoSkillsarrayESCO competency objects: {name, uri} (empty if none)
driverLicenseCategoriesstring|nullRequired driving licence categories (null if none)
certificationsstring|nullRequired 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.

ResultsCost
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 typeApprox. timeMemory
Full feed, fetchDetails: true (~100 listings)30–90 seconds512 MB
Full feed, fetchDetails: false5–15 seconds512 MB
startUrls (1 listing)3–8 seconds512 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; salaryMin and salaryMax may 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.