ANOFM Scraper - Romanian Public Employment Service Jobs avatar

ANOFM Scraper - Romanian Public Employment Service Jobs

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
ANOFM Scraper - Romanian Public Employment Service Jobs

ANOFM Scraper - Romanian Public Employment Service Jobs

Scrape job vacancies from ANOFM (mediere.anofm.ro), Romania's national public employment service. Search by occupation keyword. Extract titles, employers, salaries, locations, contract types, and hiring-contact details. No login required.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What does ANOFM Scraper do?

ANOFM Scraper extracts job vacancies from mediere.anofm.ro, the official job search of ANOFM (Agenția Națională pentru Ocuparea Forței de Muncă), Romania's national public employment service. It collects job titles, employers (with Romanian company tax code / CUI), locations, salaries, contract types, education requirements, and hiring-contact email/phone, directly from the site's own JSON search API. No login or cookies required.

Use it on the Apify platform to get structured Romanian labour-market data via API, schedule recurring scrapes, and integrate with tools like Zapier, Make, Google Sheets, and Slack.

How to scrape ANOFM data

  1. Go to the ANOFM Scraper on the Apify Store.
  2. Click Try for free to open the actor in the Apify Console.
  3. Enter a Romanian-language occupation keyword (e.g. "vanzator", "asistent medical", "sofer") or leave it empty to browse all current active vacancies nationwide.
  4. Set the maximum number of results you want.
  5. Click Start and wait for the run to finish.
  6. Download your data as JSON, CSV, Excel, or HTML from the Output tab.

Why use ANOFM Scraper?

  • Recruitment and hiring — Monitor vacancies registered with the Romanian public employment service to understand hiring trends by region, sector, and occupation.
  • Salary research — Benchmark salaries employers report to the labour office, by occupation, county, and city.
  • Labor market analysis — Track which occupations and counties (județe) have the most open positions, and which employers are hiring most actively.
  • Lead generation — Every vacancy includes the employer's Romanian tax code (CUI) and a hiring-contact email and phone — a clean join key for B2B/recruitment outreach.
  • EU-mobility research — Vacancies flag whether they're explicitly open to EU citizens, useful for cross-border labour-mobility research.
  • Academic and public-policy research — Gather structured Romanian labour-market data straight from the official employment service registry.

Input

FieldTypeRequiredDescription
searchQueryStringNoRomanian-language occupation keyword (e.g. "vanzator", "asistent medical", "sofer"). Matched against the official COR (Clasificarea Ocupațiilor din România) occupation catalog, diacritic-insensitive. Leave empty to browse all current active vacancies nationwide.
maxResultsIntegerNoMaximum number of job vacancies to scrape (default: 100, max: 20000).
proxyConfigurationObjectNoProxy settings. mediere.anofm.ro's job API has no anti-bot protection and isn't geo-locked, so Apify's automatic/free proxy pool is used by default — no residential proxy needed.

Output

Each result contains structured data about a single job vacancy. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Example output

{
"jobTitle": "VÂNZATOR",
"occupationCode": "522101",
"jobDomain": "COMERT",
"numberOfPositions": 1,
"company": "DAVAD FIVE SYSTEMS S.R.L.",
"companyTaxCode": "46156289",
"county": "Teleorman",
"city": "ALEXANDRIA",
"fullLocation": "Teleorman > MUNICIPIUL ALEXANDRIA > ALEXANDRIA",
"streetAddress": "DUNĂRII 1",
"salaryFrom": null,
"salaryTo": null,
"salaryType": "none",
"currency": "RON",
"contractType": "Cu durată nedeterminată",
"workType": "Cu normă întreagă",
"workRegime": "Sediu",
"educationLevel": "Liceal - LICEU TEORETIC",
"professionalExperience": "Experiență puțină - mai puțin de 3 ani",
"availableToEuCitizens": false,
"jobDescription": null,
"postedDate": "2026-08-07T12:41:24.000Z",
"jobStartDate": "2026-08-07T00:00:00.000Z",
"expiresDate": "2026-08-14T00:00:00.000Z",
"contactName": "PETA GABRIEL",
"contactEmail": "davadfive@yahoo.com",
"contactPhone": "0765625369",
"url": "https://mediere.anofm.ro/app/module/mediere/job/3350579",
"scrapedAt": "2026-08-07T14:31:29.792Z"
}

Data fields

FieldTypeDescription
jobTitleStringOccupation/job title as registered by the employer
occupationCodeStringOfficial Romanian COR occupation classification code
jobDomainStringSector/domain of the job (e.g. "Retail", "Medicină / Sănătate")
numberOfPositionsIntegerNumber of open positions for this vacancy
companyStringEmployer name
companyTaxCodeStringRomanian company tax identification number (CUI/CIF) of the employer
countyStringJudeț (county) where the job is located
cityStringCity/locality where the job is located
fullLocationStringFull location breadcrumb as returned by ANOFM
streetAddressStringEmployer street address, when disclosed
salaryFromNumberMinimum monthly salary, when disclosed
salaryToNumberMaximum monthly salary, when disclosed
salaryTypeString"gross", "net", or "none" as reported by the employer
currencyStringAlways "RON"
contractTypeStringEmployment contract type (e.g. "Cu durată nedeterminată" = permanent)
workTypeStringFull-time/part-time work type
workRegimeStringWork regime, e.g. on-site ("Sediu")
educationLevelStringMinimum required education level
professionalExperienceStringRequired professional experience level
availableToEuCitizensBooleanWhether the vacancy is explicitly marked as open to EU citizens
jobDescriptionStringFree-text job description, when the employer provided one
postedDateStringISO 8601 date the vacancy was registered
jobStartDateStringISO 8601 date the job is expected to start, when set
expiresDateStringISO 8601 date the vacancy listing expires
contactNameStringHiring contact's name, when disclosed
contactEmailStringHiring contact's email, when disclosed
contactPhoneStringHiring contact's phone, when disclosed
urlStringDirect URL to the vacancy detail page on mediere.anofm.ro
scrapedAtStringISO 8601 timestamp of when the data was collected

Cost estimate

This actor calls mediere.anofm.ro's own JSON search API directly rather than rendering pages in a browser, and every field — including the hiring contact's email and phone — comes back in a single request per page (no per-job detail fetch needed), so it runs fast and cheap: roughly 0.1–0.3 compute units per 1,000 results. At standard Apify pricing that's well under $0.20 per 1,000 job vacancies. As with any Apify actor, the run's usage cost only settles once the run reports SUCCEEDED — reading a mid-run/in-progress dataset understates the eventual cost.

Tips

  • Use specific occupation keywords to get more relevant results and reduce run time. The keyword is matched against Romania's official COR occupation catalog, so both exact occupation names ("VÂNZATOR") and everyday terms ("vanzator", no diacritics needed) work.
  • Leave searchQuery empty to pull the newest vacancies across all of Romania.
  • Broad keywords (e.g. "asistent medical") can match a dozen or more related occupation codes in the COR catalog — the actor queries all of them and merges/dedupes results automatically.
  • Schedule recurring runs to track new vacancies daily or weekly.
  • Combine with other Romanian job board scrapers for full national coverage across both public and private-sector postings.

Limitations

  • A free-text job-ad description field exists but is populated on a minority of listings (roughly 1 in 6 in testing) — most ANOFM vacancies are structured form submissions by the employer, not marketing copy.
  • Salary data is not available for all vacancies — some employers do not disclose a figure.
  • Contact email/phone are populated on the large majority of listings but not all — some employers leave them blank.
  • Data is scraped from the public mediere.anofm.ro website and may change without notice.

Integrations

Connect ANOFM Scraper with your existing tools and workflows:

  • Google Sheets — Export vacancies directly to a spreadsheet for easy filtering and sharing.
  • Slack — Get notified when new vacancies matching your criteria appear.
  • Zapier / Make — Build workflows that react to new job postings in real time.
  • Custom API — Access all results programmatically via the Apify API in JSON format.

FAQ and support

Is it legal to scrape mediere.anofm.ro? Scraping publicly available data is generally permitted under EU law. This actor only accesses public job vacancies that require no login, via the same API the public search page uses. The site's robots.txt does not exist (returns HTTP 404), so no crawl restrictions apply.

How often is the data updated? The actor scrapes live data from mediere.anofm.ro each time it runs. Schedule it daily or weekly to track changes.

I found a bug or have a feature request. Open an issue in the Issues tab on the actor page. You can also request a custom scraping solution.

Need this data on a schedule, or a custom version?

We run this scraper as a managed service for businesses: scheduled runs, deduplication, delta detection, and delivery to your inbox, Google Sheets, or API — maintenance included. We can also build a custom version with your exact fields and filters, or combine multiple sources into one feed.

See studioamba.dev/services or email hello@studioamba.dev for a free data sample. We maintain 300+ European web scrapers and answer within one business day.