HelloWorld.rs Jobs API: Serbia IT Jobs + Only New avatar

HelloWorld.rs Jobs API: Serbia IT Jobs + Only New

Pricing

$0.20 / 1,000 job results

Go to Apify Store
HelloWorld.rs Jobs API: Serbia IT Jobs + Only New

HelloWorld.rs Jobs API: Serbia IT Jobs + Only New

$0.2/1K jobs | Get IT jobs in Serbia from HelloWorld.rs: developer, QA, data and mobile roles with full descriptions, locations, posting dates and application deadlines. No login or API key. Repeats skipped on re-runs.

Pricing

$0.20 / 1,000 job results

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

HelloWorld.rs Jobs Scraper: Serbia IT Jobs (No Login)

$0.2/1K jobs | Get IT jobs in Serbia from HelloWorld.rs: developer, QA, data and mobile roles with full descriptions, locations, posting dates and application deadlines. No login or API key. Repeats skipped on re-runs. Independent, unofficial tool. Not affiliated with or endorsed by HelloWorld.rs.

HelloWorld.rs IT Jobs Bulk Scraper

Our Actor collects IT job postings from HelloWorld.rs, the Serbian IT job board, and lets you filter by keyword, posting age and work arrangement. Test rows covered developer, QA, data and mobile roles from Serbian companies and international employers, in Belgrade, remote and hybrid. Every row carries the complete description as the employer wrote it (English or Serbian), plus the employer, location, posting date and application deadline. It is ideal for Serbian IT job alerts, tech hiring research and job board feeds.

This Actor reads postings that Job Atlas has already collected and stored. It does not contact HelloWorld.rs while your run is going. Only postings with a verified complete description are included, so the count can be lower than what the live site shows.

  • Need jobs outside IT too? Poslovi Infostud Jobs Scraper covers all fields across Serbia, but its rows have no work-arrangement field. Many IT postings appear on both boards under the same numeric id (5 of 10 in our test), so de-duplicate on identity.externalId if you run both.
  • Browse all Job Atlas job-data Actors: https://jobatlas.dev/actors

Key Benefits

  • No login or API key: nothing to set up and no account at risk. Your run reads stored postings and never contacts HelloWorld.rs.
  • Low pricing: $0.20 per 1,000 jobs, with no start fee. Apify platform usage for the run is included in that price.
  • Full descriptions: every row has the complete original text and HTML. Snippets and cut-off bodies are left out.
  • Fast and fresh: a 10-job test run finished in about 8 seconds. Each run also reports when the source was last checked (sourceFreshAt); it was 31 minutes before our test run.
  • No repeats across runs: schedule the same search daily and postings you already received are skipped.
  • Optional AI enrichment and English translation, both off by default, funded by us: no API key and no extra charge.

How It Works

  1. Provide your search (all optional):
    • Keyword (e.g., developer, QA, programer (Serbian for programmer)): a case-insensitive phrase matched against the title, employer and complete original description. Leave it empty to search all stored jobs.
    • Posted within (e.g., 7d): any, or a duration in hours, days, weeks or months such as 24h, 7d, 2w or 1m. Default is any. If the board shows no reliable posting date, the date we first saw the posting is used.
    • Work arrangements: remote, hybrid or onsite. Empty means all.
  2. Set the maximum number of jobs (up to 200; 0 also means 200).
  3. Run the Actor. Jobs land in the dataset; the run's key-value store holds RUN-SUMMARY with data freshness, candidates scanned, delivery counts and the final status.

Example input:

{
"schemaVersion": "nomad-agent-inventory-search-v1",
"maxItems": 10,
"postedWithin": "any",
"workArrangements": [],
"dedupe": {
"enabled": true,
"key": ""
},
"keyword": "developer"
}

Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.

Descriptions keep the language the employer used: 6 of the 10 test postings were in English and 4 in Serbian. A keyword is matched against the original text, so try an English and a Serbian term, or switch on English translation of the display fields (the original description is always kept).

More settings:

  • maxItems - Maximum number of jobs to return. Default is 100. Filters, repeat suppression and failed enrichment can produce fewer results.
  • filters - Advanced filter over normalized fields in the shared nomad-agent-job-filter-v1 format; see the product guide for the expression format. With AI enrichment off, filters check only facts the board states, and unknown values never satisfy a comparison.
  • aiEnrichment - Optional AI fill of unknown fields. Default is off.
  • translateToEnglish - Optional English display text. Default is off.
  • dedupe - Repeat-delivery suppression. Default is on.

Restrictive filters or repeat-delivery suppression can produce zero results. If the stored data is unavailable or stale, the run fails with an error instead of falling back to scraping the website.

Work arrangement is filled only when the board label says so. Rad od kuće (work from home) became remote and Beograd | Hibrid became hybrid (5 of 10 test rows); other rows stay null even if the description mentions a work model, so the filter may miss those jobs.

Location labels stay in Serbian, for example Beograd, Rad od kuće and Beograd | Hibrid. City, region and country code (RS) are filled when the label names a city.

No pay field. Salary was not provided as a structured field on any test row.

Pricing

You pay $0.20 per 1,000 jobs ($0.0002 per delivered job). There is no start fee, and Apify platform usage for the run is included in that price (pay-per-event). AI enrichment and English translation add no extra charge.

Data You'll Receive

  • Job details: title, complete description (text and HTML), posting date, application deadline (all 10 test rows) and a link to the posting (identity.url).
  • Employer: name as listed on the board.
  • Location: the board's label in data.locations[].raw, with city, region and country code when the label names a city.
  • Work arrangement: remote or hybrid on some jobs (5 of 10 in our test).
  • Identity: identity.source and the board's numeric identity.externalId (for example 760412), stable across runs and usable as a deduplication key.
  • Board extras in custom.data: the card's raw deadline and location labels, validThrough and the number of openings.
  • AI block llm: not_requested unless you switch on enrichment.

Every row follows the nomad-agent-job-v1 format with six roots: schemaVersion, identity, data, llm, raw and custom. Missing facts are null; a known empty list is [].

Source-specific facts in custom use the public HelloWorld.rs schema.

Sample output data

Here is an example job from this Actor. Empty fields, custom.schemaId and the tail of long text are left out.

{
"llm": {
"status": "not_requested"
},
"raw": {
"description": "Stakelogic is looking for a Java Back-end Developer to join our backend development team. We are developing a new high-load platform for launching Live Casino games, combining streaming video solutions with real-time interactive features. Y…",
"descriptionHtml": "\n <p class=\"isSelectedEnd\">Stakelogic is looking for a Java Back-end Developer to join our backend development team. We are developing a new high-load platform for launching Live Casino games, combining streaming video soluti…"
},
"data": {
"title": "Java Developer",
"company": {
"name": "Stakelogic"
},
"locations": [
{
"raw": "Beograd",
"city": "Beograd",
"region": "SRBIJA",
"countryCode": "RS"
}
],
"application": {
"deadline": "2026-10-24",
"postedAt": "2026-10-08"
}
},
"custom": {
"data": {
"jobId": "760412",
"company": "Stakelogic",
"jsonLdUrl": "https://www.helloworld.rs/posao/Java-Developer/Stakelogic/760412",
"datePosted": "2026-10-08",
"validThrough": "2026-10-24",
"addressRegion": "SRBIJA",
"addressCountry": "RS",
"addressLocality": "Beograd",
"cardDeadlineRaw": "23.10.2026.",
"cardLocationRaw": "Beograd",
"familyDedupeKey": "infostud-family:760412",
"totalJobOpenings": 1,
"jsonLdDescription": "Kompanija Stakelogic raspisuje oglas za poziciju Java Developer."
}
},
"identity": {
"url": "https://www.helloworld.rs/posao/Java-Developer/Stakelogic/760412",
"source": "helloworld",
"externalId": "760412"
},
"schemaVersion": "nomad-agent-job-v1"
}

HelloWorld.rs Jobs API

Results are stored in a dataset that you can export as CSV, JSON or Excel, or read through the Apify API. Apify schedules and webhooks work as for any Actor, so you can run a search every day and send only the new postings on.

Repeat delivery and optional processing

No repeats across runs. Repeat-delivery suppression is on by default. Postings already delivered to you for the same search are skipped, so a daily schedule returns only what is new. The delivery history belongs to your Apify account, this Actor and the search. Set dedupe.enabled to false for a stateless run. A dedupe.key of your own names the history: reuse a key to share one history across searches, or use different keys to keep alert histories apart. If the delivery history cannot be read or written, the run fails instead of claiming a successful delivery.

AI enrichment and English translation. Both are off by default and are independent opt-ins: aiEnrichment.enabled for extraction and translateToEnglish for English display text. You do not supply API keys. Only when enabled, we send description text to OpenRouter for extraction or selected display text to DeepL for translation. The configured routes deny provider data collection but do not guarantee zero retention or EU-only processing. Enrichment fills unknown fields and records its provenance in llm; it never overwrites a fact the board states. If you ask for enrichment and it fails for a job, that job is withheld from the results. raw.description and raw.descriptionHtml always keep the original text. Filters run on normalized values before English display translation.

Identity migration

The current release uses the numeric source ID as identity.externalId, for example 738769. Earlier releases prefixed this value with helloworld:. The stable posting key is the pair (identity.source, identity.externalId). Update any stored comparison keys when migrating; existing delivery history with the old prefixed key may permit a one-time repeat.

Older input formats

The previous input required helloworld.startUrls; those listing URLs cannot be carried over to job search. Old inputs fail with migration guidance, so replace them with keyword or supported normalized filters. Original descriptions are always included. The top-level accuracy field is a compatibility override for aiEnrichment.accuracy; it never switches enrichment on by itself.

Support and Feedback

We improve these Actors from your feedback. If something breaks or you need a filter:

  • Open an issue on the Actor's Issues tab.
  • If this Actor saved you time, a short review on the Store helps other users find it.

Run evidence

Test runs on 2026-10-16 from the Job Atlas account, using the latest build and a fresh repeat-delivery scope key:

  • Run e0mSzCQo7UmuKhkIZ (build 1.0.6), keyword developer, 10 of 10 rows with the full description from 10 distinct employers, finished in 8 seconds. The run summary showed the stored data had been checked against the source before the run (sourceFreshAt).

Measured on the 10 test rows (no AI enrichment): title, employer, location, posting date, application deadline and description on 10 of 10; work arrangement on 5 of 10; pay on 0 of 10.

Use latest and keep the build ID and number your own run returns. A successful status alone does not tell you how complete the board coverage is; read RUN-SUMMARY together with the dataset.

Job Atlas

Explore the Job Atlas job-data and matching Actors:

Product guide | Source and client examples | Setup skill | Setup guide | Job Atlas Actors


Independent tool. We built and run this Actor ourselves. HelloWorld.rs does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from.