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
| Feed | Items now | RSS | JSON |
|---|---|---|---|
| New jobs in Romania for English speakers | 100 | /feeds/new.xml | /feeds/new.json |
| New customer support jobs in Romania for English speakers | 9 | /feeds/customer-support.xml | /feeds/customer-support.json |
| New software & it jobs in Romania for English speakers | 44 | /feeds/software.xml | /feeds/software.json |
| New data & analytics jobs in Romania for English speakers | 5 | /feeds/data.xml | /feeds/data.json |
| New finance & accounting jobs in Romania for English speakers | 5 | /feeds/finance.xml | /feeds/finance.json |
| New sales jobs in Romania for English speakers | 9 | /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 field | Meaning |
|---|---|
title | Job title as the employer wrote it |
company | Employer name (null when the source only gives an internal id) |
city | City, or null for fully remote / unstated locations |
country | ISO 3166-1 alpha-2 country code |
category | Our sector key (software, aec, finance… or other when unclassified) |
salary | Advertised salary, verbatim from the ad — null when not disclosed (most ads) |
language_req | english-only · english-plus-other · unclear — ads requiring the local language never enter the feeds |
work_mode | remote · hybrid · onsite · unclear |
first_seen | ISO 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
- Free, attribution required: use the feeds in your reader, site, bot or research — just credit “ExpatJobs.ro” with a link to
expatjobs.rowherever the content shows. - Keep the original links: item URLs go to the employer’s ad. Don’t rewrite them through interstitials.
- Redistributable sources only: employers’ own career feeds and EURES. Aggregator-licensed jobs never enter the feeds — the full source mix is public on /stats.
- Be gentle: the feeds are static files regenerated daily — fetching more than a few times a day gains nothing.
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.