π·π΄ eJobs.ro Jobs Scraper
Pricing
from $0.001 / job scraped
π·π΄ eJobs.ro Jobs Scraper
Scrape job ads from eJobs.ro, Romania's largest job board: title, hiring company, city and county with coordinates, industry, department, career level, contract type, dates and the full job description. Filter by keyword, city or employer and export to JSON, CSV, Excel or XML.
Pricing
from $0.001 / job scraped
Rating
0.0
(0)
Developer
hiper soft
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
15 days ago
Last modified
Categories
Share
π·π΄ eJobs.ro Scraper β Jobs, Companies, Locations & Full Descriptions
Scrape eJobs.ro, Romania's largest job board, and turn thousands of live job ads into clean, structured data. This eJobs scraper collects the job title, hiring company, city and county, industry, department, career level, contract type, education level, publication and expiry dates, apply link and the full job description β as HTML and as readable plain text. Export everything to JSON, CSV, Excel or XML, or pull it straight from the API. Fast, reliable, and you pay only per job you actually get.

What does the eJobs.ro Scraper do?
The eJobs.ro Scraper is a job-board crawler that extracts every public job ad on eJobs.ro into a flat, analysis-ready table. Search by keyword the way you would on the site (java, contabil, sofer, cluj), pull every open role from a specific employer, or hand it a list of job links. Each result is one tidy row with dozens of data points β no copy-pasting, no manual exports, no page-by-page browsing.
Because every numeric code on the board is resolved into a readable label, you get IT / Telecom instead of an industry id and Senior-Level (> 5 ani) instead of a career-level id. Romanian diacritics are handled for you, so a filter typed as iasi still matches IaΘi.
What data can you scrape from eJobs.ro?

| Data point | Description |
|---|---|
title | Job title exactly as published |
url | Direct link to the job ad |
companyName | Hiring company |
companyAlias | Trading / brand name where the employer uses one |
companyVerified | Whether the employer is a verified account |
companyUrl | Link to the company profile |
companyWebsite | Employer's own website |
companyWebsites | Every website the employer lists |
companyCity, companyAddress | Employer head-office location |
companyOpenJobs | How many ads that employer currently has open |
locations | Every listed work location: city, county, street address, latitude, longitude |
cities, counties | Flat arrays of city and county names |
locationsText | All cities in one readable string |
isRemote | Whether the role can be done from home |
isNationwide | Whether the ad covers the whole country |
industries | Industry labels (IT / Telecom, ConstrucΘii, SΔnΔtateβ¦) |
departments | Department labels (VΓ’nzΔri, Marketing, Financiarβ¦) |
careerLevels | Seniority (Entry-Level, Mid-Level, Senior-Level, Managerβ¦) |
contractTypes | Full time, Part time, Internship, Proiect⦠|
educationLevels | Required education level |
positions | Number of open positions in the ad |
publishedAt, republishedAt | When the ad went live / was refreshed (ISO 8601) |
expiresAt, lastModifiedAt | When the ad closes / was last edited (ISO 8601) |
applyUrl | External application link when the employer supplies one |
description / descriptionText | Full job description, HTML and plain text |
idealCandidate / idealCandidateText | Requirements and ideal-candidate section |
companyDescription / companyDescriptionText | Employer's own description |
scrapedAt | When the row was collected (ISO 8601) |
Use cases
- Build a job board or aggregator β keep a Romanian jobs feed fresh with a scheduled run and one row per ad.
- Recruitment market research β measure hiring demand by city, county, industry, department and seniority over time.
- Salary and skills analysis β mine thousands of full descriptions for required skills, tools, languages and pay signals.
- Lead generation for staffing agencies β find companies that are actively hiring, with verified status, website and open-role counts.
- Competitive hiring intelligence β track exactly which roles a competitor is opening, where, and how fast they refresh them.
- Talent sourcing and job alerts β filter to remote roles, a city or a seniority level and push matches into Slack or email.
- Academic and economic research β build a longitudinal dataset of the Romanian labour market from public postings.
- Enrich a CRM or ATS β attach live hiring signals to accounts you already track.
How to scrape eJobs.ro job data
- Add the eJobs.ro Scraper to your Apify account and open the input form.
- Type one or more search keywords β a role (
java,contabil), a city (cluj), or both (inginer bucuresti). Leave it empty to collect the latest ads across the whole board. - Optionally narrow the results with city, county, industry, department, contract type, career level, company or remote only, and with posted within (days).
- Set Max items if you want a smaller sample, and decide whether to include full descriptions and the employer profile.
- Click Start, then download the dataset as JSON, CSV, Excel or XML β or fetch it from the Apify API.
Input
Scrape by keyword, by employer, or by URL
Three entry points, and you can combine them in one run:
- Search keywords β the everyday way to use the board. Every keyword runs its own search.
- Company IDs or URLs β pulls every open ad of one or more employers.
- Job URLs or IDs β grabs specific ads you already have links to.
Leave all three empty and the scraper collects the latest job ads on the board.
Example input
{"searchQueries": ["java", "contabil"],"city": "Cluj","contractType": "Full time","careerLevel": "Senior","postedWithinDays": 30,"includeDescriptions": true,"includeCompanyProfile": true,"maxItems": 500}
Input reference
| Field | Type | Description |
|---|---|---|
searchQueries | array | Keywords to search β matches job titles, companies and cities |
jobUrls | array | Specific job links or numeric job IDs |
companyIds | array | Company IDs or company page links β collects every open ad of that employer |
includeDescriptions | boolean | Fetch the full ad text (description, ideal candidate, company description). Default true |
includeCompanyProfile | boolean | Add employer website, head office and open-role count to every row. Default false |
remoteOnly | boolean | Keep only work-from-home roles |
city | string | Keep only ads in a matching city (diacritic-insensitive) |
county | string | Keep only ads in a matching county (judeΘ) |
industry | string | Keep only ads in a matching industry |
department | string | Keep only ads in a matching department |
contractType | string | Keep only ads with a matching contract type |
careerLevel | string | Keep only ads with a matching seniority level |
company | string | Keep only ads from employers whose name matches |
postedWithinDays | integer | Keep only ads published or refreshed in the last N days (0 = no limit) |
maxItemsPerQuery | integer | Cap per keyword / employer (0 = no cap) |
maxItems | integer | Overall cap for the run (0 = no cap) |
proxyConfiguration | object | Optional proxy settings β not required by default |
Output
Every job is one flat record:
{"id": 1982096,"url": "https://www.ejobs.ro/locuri-de-munca/java-developer/1982096","title": "Java Developer","companyName": "INTERSECT GLOBAL SRL","companyVerified": true,"companyUrl": "https://www.ejobs.ro/companii/intersect-global-srl","companyOpenJobs": 12,"positions": 1,"isRemote": false,"isNationwide": false,"locations": [{ "city": "Cluj-Napoca", "county": "Cluj", "address": "Str. Republicii 9", "latitude": 46.77, "longitude": 23.6 }],"cities": ["Cluj-Napoca"],"counties": ["Cluj"],"locationsText": "Cluj-Napoca","industries": ["IT / Telecom"],"departments": ["IT Software"],"careerLevels": ["Senior-Level (> 5 ani)"],"contractTypes": ["Full time"],"educationLevels": ["Facultate"],"publishedAt": "2026-08-27T00:17:27.000Z","republishedAt": "2026-09-03T05:35:00.000Z","expiresAt": "2026-09-26T00:00:00.000Z","applyUrl": null,"descriptionText": "We are looking for a Java Developer to joinβ¦","idealCandidateText": "5+ years of experience with Java and Springβ¦","scrapedAt": "2026-09-07T00:34:04.024Z"}
Output schema
| Field | Type | Description |
|---|---|---|
id | integer | Job ad ID on the board |
url | string (URL) | Direct link to the job ad |
title | string | Job title |
slug | string | URL slug of the ad |
companyId | integer | Employer ID |
companyName | string | Employer legal name |
companyAlias | string | Employer trading / brand name |
companyVerified | boolean | Whether the employer account is verified |
companyUrl | string (URL) | Employer profile page |
companyWebsite | string (URL) | Employer's own website |
companyWebsites | array | Every website the employer lists |
companyCity | string | Employer head-office city |
companyAddress | string | Employer head-office address |
companyOpenJobs | integer | Ads that employer currently has open |
positions | integer | Open positions in this ad |
jobType | string | Ad status as published |
isNationwide | boolean | Ad covers the whole country |
isRemote | boolean | Role can be done from home |
locations | array | Objects with city, county, address, latitude, longitude |
cities | array | City names |
counties | array | County (judeΘ) names |
locationsText | string | All cities in one readable string |
industries | array | Industry labels |
departments | array | Department labels |
careerLevels | array | Seniority labels |
contractTypes | array | Contract-type labels |
educationLevels | array | Required education levels |
publishedAt | string (ISO date) | First publication |
republishedAt | string (ISO date) | Last refresh |
expiresAt | string (ISO date) | Ad expiry |
lastModifiedAt | string (ISO date) | Last edit |
applyUrl | string (URL) | External application link |
description | string | Full job description (HTML) |
descriptionText | string | Full job description (plain text) |
idealCandidate | string | Requirements section (HTML) |
idealCandidateText | string | Requirements section (plain text) |
companyDescription | string | Employer description (HTML) |
companyDescriptionText | string | Employer description (plain text) |
scrapedAt | string (ISO date) | When the row was collected |
Need job data from other markets?
- StepStone Scraper β jobs across Germany, Austria and the Benelux
- France Travail Scraper β the French public employment service
- Arbeitnow Scraper β German and English-speaking roles in Europe
- Reed Scraper β one of the UK's biggest job boards
- Indeed Scraper β worldwide job search
- Company Jobs Scraper β careers pages of individual employers
FAQ
How many jobs can I scrape from eJobs.ro?
As many as your searches return. Each keyword walks the full result list the board serves for it, and you can run as many keywords, employers and job links in one run as you like. Use maxItems to cap a run.
Do I need an account, a login or any setup? No. Add the actor, type a keyword, press Start. There is nothing to install and no credentials to supply.
How does billing work? Pay per result. You are charged for each job row stored in your dataset, so a run that returns nothing costs you effectively nothing. There are no monthly platform fees to use the actor.
Can I get the full job description?
Yes β it is on by default. Every row carries the job description, the ideal-candidate requirements and the employer's own description, each as HTML and as clean plain text. Switch includeDescriptions off for a faster, lighter listing-only export.
Can I scrape all jobs from one company?
Yes. Put the company IDs (or company page links) into companyIds and the scraper collects every open ad for those employers, including the count of roles they currently have live.
Can I filter to remote jobs only? Yes. Tick Remote jobs only and the run keeps just the work-from-home ads. You can combine it with a keyword, a seniority level or a contract type.
Which export formats are supported? JSON, CSV, Excel, XML and HTML table from the Apify console, plus the dataset API for programmatic access.
How fresh is the data?
Every run reads the board live, and each row carries publishedAt, republishedAt and scrapedAt timestamps so you always know how recent an ad is. Schedule the actor hourly or daily to keep a dataset current.
Can I integrate this with my own tools? The eJobs.ro Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JS/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Is scraping eJobs.ro legal? This scraper collects only public job listings β the same information any visitor can read on the site. It never touches candidate profiles, CVs or any personal data behind a login. You are responsible for using the data in line with applicable law and the site's terms.
Related Actors
- Remote Jobs Aggregator β remote roles from several boards at once
- Working Nomads Scraper β curated remote jobs
- RemoteOK Scraper β remote tech jobs
- We Work Remotely Scraper β one of the oldest remote job boards
- Computrabajo Scraper β jobs across Latin America and Spain
Notes
Original clean-room implementation. Returns only public data; you are responsible for compliance with eJobs.ro's terms. Not affiliated with eJobs.ro.