Job feeds — RSS & JSON

Every feed below is free, needs no key or account, and refreshes each morning with the rest of the site. RSS for feed readers; JSON (JSON Feed 1.1) for anything programmatic. Items cover the last 7 days of new, English-friendly openings from redistributable sources.

Available feeds

FeedItems nowRSSJSON
New jobs in Romania for English speakers100/feeds/new.xml/feeds/new.json
New customer support jobs in Romania for English speakers9/feeds/customer-support.xml/feeds/customer-support.json
New software & it jobs in Romania for English speakers44/feeds/software.xml/feeds/software.json
New data & analytics jobs in Romania for English speakers5/feeds/data.xml/feeds/data.json
New finance & accounting jobs in Romania for English speakers5/feeds/finance.xml/feeds/finance.json
New sales jobs in Romania for English speakers9/feeds/sales.xml/feeds/sales.json

Per-sector feeds exist whenever a sector has at least 5 fresh items, so the list above can grow or shrink day to day. /feeds/new is always there.

The JSON format

Standard JSON Feed 1.1, plus a _job extension on every item with the structured fields — so you never have to parse a title string back apart. This is a real item from today’s feed:

{
  "id": "ac0850b3e98117bd",
  "url": "https://europa.eu/eures/portal/jv-se/jv-details/MzMyNDkyMyAxMw",
  "title": "MUNCITOR NECALIFICAT LA AMBALAREA PRODUSELOR SOLIDE SI SEMISOLIDE — CONTROL FRUCT LOGISTIC S.R.L. — Remote",
  "date_published": "2026-07-30T00:00:00.000Z",
  "_job": {
    "title": "MUNCITOR NECALIFICAT LA AMBALAREA PRODUSELOR SOLIDE SI SEMISOLIDE",
    "company": "CONTROL FRUCT LOGISTIC S.R.L.",
    "city": "Remote",
    "country": "ro",
    "category": "manufacturing",
    "salary": null,
    "language_req": "unclear",
    "work_mode": "unclear",
    "first_seen": "2026-07-30"
  }
}
_job fieldMeaning
titleJob title as the employer wrote it
companyEmployer name (null when the source only gives an internal id)
cityCity, or null for fully remote / unstated locations
countryISO 3166-1 alpha-2 country code
categoryOur sector key (software, aec, finance… or other when unclassified)
salaryAdvertised salary, verbatim from the ad — null when not disclosed (most ads)
language_reqenglish-only · english-plus-other · unclear — ads requiring the local language never enter the feeds
work_moderemote · hybrid · onsite · unclear
first_seenISO date we first saw the ad (also the item’s date_published)

Item url always points at the original ad on the employer’s or source’s site. id is stable across days — dedupe on it.

Quick start

# Newest 5 jobs, one line each
curl -s https://expatjobs.ro/feeds/new.json |
  jq -r '.items[:5][] | "\(._job.first_seen)  \(.title)"'

# Only ads that disclose a salary
curl -s https://expatjobs.ro/feeds/new.json |
  jq '[.items[] | select(._job.salary != null)]'

Terms, in plain words

Feed questions

Can I republish these jobs?

Yes — that is what the feeds are for. Two conditions: keep the link to the original ad (the item URL points at the employer, not at us), and credit ExpatJobs.ro with a link to https://expatjobs.ro wherever the feed's content appears.

Why do the feeds carry fewer jobs than the site?

Feeds only include sources we may redistribute: employers' own career feeds and EURES. Jobs from display-only aggregator APIs stay on the site per their terms. Feeds also only cover the last 7 days — they are a "what's new" stream, not a mirror of the full board.

How often do they update?

Once a day, with the morning refresh of the whole dataset. Item ids are stable, so readers and scripts can dedupe across days safely.

Not a developer? The same data reaches you as daily email alerts, or as a self-updating jobs widget you paste into any site with one script tag.