BestJobs.eu Scraper
Pricing
from $1.50 / 1,000 results
BestJobs.eu Scraper
Scrape job listings from BestJobs.eu โ Romania's leading job board. Filter by keyword, location, and employment type. No API key required.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

Scrape structured job listings from BestJobs.eu โ Romania. 15,000+ active listings. No API key required.
Why this scraper?
๐ BestJobs.eu โ Romania's job market
Scrape structured job data from BestJobs.eu, one of the leading employment platforms in Romania.
๐ Full job descriptions
Enable fetchDetails to retrieve complete job descriptions in HTML, plain text, and Markdown format.
๐ฐ Structured salary data
Salary ranges extracted and normalised into structured salaryMin, salaryMax, salaryCurrency, and salaryPeriod fields where published.
๐ Repost detection
Cross-run deduplication with a 90-day TTL. Use skipReposts: true to receive only genuinely new listings.
๐ Direct URL scraping
Supply specific BestJobs.eu search or category URLs via startUrls for precise targeting.
โ๏ธ No API key required
Runs without any third-party credentials.
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
keyword | string | Job title, keyword, or skill to search for. | โ |
location | string | City or region to filter by. Leave empty to search all locations. | โ |
employmentType | string | Employment type filter. | โ |
maxItems | integer | Maximum number of results to return. | 5 |
fetchDetails | boolean | Fetch full job description from each listing detail page. Disable for faster list-only results. | true |
startUrls | array | List of specific URLs to scrape. Bypasses the search input. | โ |
Output schema
Each result contains the following fields.
Always present:
| Field | Type | Description |
|---|---|---|
id | string | Unique job listing ID from the source platform. |
url | string | Direct URL to the job listing. |
title | string | Job title as published. |
company | string | Employer / company name. |
location | string | Full location string as published. |
city | string | City of the work location. |
country | string | Country code (ISO 3166-1 alpha-2). |
contractType | string | Contract type (permanent, contract, temporary, etc.). |
workSchedule | string | Work schedule (full-time, part-time, etc.). |
salaryMin | number | Minimum salary (null if not published by employer). |
salaryMax | number | Maximum salary (null if not published by employer). |
salaryCurrency | string | ISO 4217 currency code (null if no salary published). |
salaryPeriod | string | Salary period: YEAR / MONTH / WEEK / DAY / HOUR. |
publishDate | string | Publication date (YYYY-MM-DD). |
publishDateISO | string | Publication date in ISO 8601 format. |
source | string | Source domain name. |
scrapedAt | string | ISO 8601 timestamp of when this item was scraped. |
contentHash | string | MD5 hash of key fields for change detection (16 chars). |
summary | string | Human-readable one-line summary of the listing. |
changeStatus | string | Change status: NEW / MODIFIED / UNCHANGED. |
isRepost | boolean | True if this listing was seen in a previous run (90-day window). |
originalPublishDate | string | Original publish date if this is a repost (null otherwise). |
originalUrl | string | Original URL if this is a repost (null otherwise). |
With fetchDetails: true (default):
| Field | Type | Description |
|---|---|---|
descriptionHtml | string | Full job description as raw HTML (null if fetchDetails is false). |
descriptionText | string | Full job description as plain text (null if fetchDetails is false). |
descriptionMarkdown | string | Full job description in Markdown format (null if fetchDetails is false). |
Example output record:
{"id": "123456","url": "https://www.bestjobs.eu/jobs/senior-developer/123456","title": "Software Developer","company": "UiPath","location": "Cluj-Napoca","city": "Cluj-Napoca","country": "RO","contractType": "Permanent","workSchedule": "Full-time","salaryMin": 45000,"salaryMax": 60750,"salaryCurrency": "RON","salaryPeriod": "YEAR","publishDate": "2026-04-15","publishDateISO": "2026-04-15","source": "bestjobs.eu","scrapedAt": "2026-04-24T09:00:00.000Z","contentHash": "a3f1b2c4d5e67890","summary": "Software Developer ยท UiPath ยท Cluj-Napoca","changeStatus": "NEW","isRepost": false,"originalPublishDate": null,"originalUrl": null,"descriptionHtml": "<p>We are looking for an experienced professional to join our growing team...</p>","descriptionText": "We are looking for an experienced professional to join our growing team...","descriptionMarkdown": "We are looking for an experienced professional to join our growing team..."}
Examples
1 โ Search for Software Developer roles in Cluj-Napoca
{"searchQuery": "developer","location": "Cluj-Napoca","maxResults": 100}
2 โ All listings without filters
{"searchQuery": "","maxResults": 500}
3 โ Scrape a specific search page directly via startUrls
{"startUrls": [{"url": "https://www.bestjobs.eu/jobs?q=developer"}],"maxResults": 50}
4 โ Daily feed โ new listings only, past 24 hours, no reposts
{"searchQuery": "","fetchDetails": false,"maxResults": 1000}
๐ฐ Pricing
$1.50 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.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
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 size | Approx. time |
|---|---|
| 100 listings | ~2 min |
| 1,000 listings | ~15 min |
| 10,000 listings | ~2.5 hours |
Known limitations
- Salary: Not all employers publish salary information โ
salaryMinandsalaryMaxmay benull. - fetchDetails: Setting
fetchDetails: falsereturns list-page fields only; description fields will benull.
Technical details
- Source: bestjobs.eu โ Romania's job market
- Memory: 256 MB
- Repost storage: KeyValueStore
bestjobs-eu-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.