Jobgether Remote Jobs API: Eligible Countries avatar

Jobgether Remote Jobs API: Eligible Countries

Pricing

$0.20 / 1,000 job results

Go to Apify Store
Jobgether Remote Jobs API: Eligible Countries

Jobgether Remote Jobs API: Eligible Countries

$0.2/1K jobs | Extract remote jobs from recent Jobgether postings with the complete description, employer, posting date, location labels and eligible countries. Filter by keyword and posting age. No login or API key.

Pricing

$0.20 / 1,000 job results

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Categories

Share

Jobgether Remote Jobs Scraper + Descriptions (No Login)

$0.2/1K jobs | Extract remote jobs from recent Jobgether postings with the complete description, employer, posting date, location labels and eligible countries. Filter by keyword and posting age. No login or API key. Independent, unofficial tool. Not affiliated with or endorsed by Jobgether.

Jobgether Remote Jobs Bulk Scraper

Our scraper collects remote job postings from Jobgether and lets you filter by keyword, work arrangement and posting age. Every row carries the complete original description in text and HTML, the employer, the posting date, the location labels, the countries where applicants can be based and a link to the Jobgether offer page. It is ideal for remote-job alerts, job-board aggregation and hiring-market research. Optional AI enrichment and English translation run on us: no key to bring and no extra charge.

It serves a rolling window of recent postings from the public Jobgether feed, up to 200 per run. Our collector reads the newest 250 postings (10 feed pages of 25) on each pass, and Jobgether reports more results beyond that, so treat it as recent remote postings, not every Jobgether posting. A few reposted offers are withheld when their listing card points to a different offer than the one we can verify.

  • Want more remote boards? Our Himalayas Actor puts a salary on most of the rows we sampled, which Jobgether rarely does, but it also holds only a rolling window of recent postings. Our Dynamite Jobs Actor reads the Dynamite Jobs index and returns a posting link and eligible countries, with no job function or seniority labels.
  • Need jobs that are not limited to one remote board? Use our LinkedIn Actor.

Key Benefits

  • No login or API key: the Actor reads stored postings, so it never asks the Jobgether website for anything on your behalf and you need no account there.
  • Low pricing: $0.20 per 1,000 jobs, with no start fee.
  • Quick to try: ten jobs came back in 10 to 24 seconds of run time in our test runs.
  • Complete descriptions: every row has the full original text and HTML. Postings without a verified full description are not delivered.
  • Checked on a schedule: each run's RUN-SUMMARY shows when the source was last checked (sourceFreshAt).
  • No repeats across runs: schedule the same search daily and postings already delivered to you are skipped.

How It Works

  1. Provide your search. Every field is optional. Results come newest first, and an empty search returns the newest stored postings:
    • Keyword (e.g., software engineer, account executive): a case-insensitive phrase matched against the title, the employer name and the complete description. Because it also reads the description, a keyword can match jobs that only mention it.
    • Work arrangements (remote, hybrid, onsite): empty means all. Every posting in our test runs was remote.
    • Posted within (e.g., 48h, 7d, 2w, 1m, or any): default is any.
  2. Run the Actor. Results go to the dataset, and the key-value store holds RUN-SUMMARY with the data freshness, the candidates, the delivery counts and the final status.
  3. Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.

More settings:

  • maxItems - Maximum jobs per run. The upper bound is 200, and 0 also means 200. Filters and repeat suppression can return fewer.
  • dedupe - Repeat-delivery suppression. On by default. Postings already delivered to your Apify user for the same search are skipped. A non-empty dedupe.key names the alert history, so searches that use the same key share delivery history within your account. If delivery or the ledger cannot be confirmed, the run fails instead of reporting a delivery it cannot prove.
  • filters - Advanced filters over the normalized fields. See "Advanced filters" below.
  • aiEnrichment and translateToEnglish - Optional processing, both off by default. See "Optional AI enrichment and English translation" below.

Cost: you are billed $0.0002 per job delivered, which is $0.20 per 1,000 jobs. There is no start fee, and Apify platform usage for the run is included in that price.

Jobgether shows its own posting date when it is reliable. When it has none, the reported date is the first time the posting was seen, and later refreshes do not make a posting look new.

Postings are returned in the language they were written in. Some of our test rows had Spanish or German titles. Turn on translateToEnglish if you need English display text.

If job data is unavailable or stale, the run fails instead of falling back to scraping the website.

Data You'll Receive

  • Job details: title, complete description (text and HTML), posting date, work schedule such as full time (29 of 30 rows in our three test runs).
  • Employer: company name and Jobgether's company ID (data.company.sourceId).
  • Where you can work: the remote arrangement, location labels such as Europe or Spain in data.locations, and the eligible countries as two-letter ISO codes such as US or ES in data.employment.applicantLocationRequirements. The list holds over a hundred codes for postings open to whole regions such as EMEA.
  • On most jobs: job function such as Software Engineer (26 of 30 test rows) and a seniority label such as Senior (5-10 years) (19 of 30).
  • On few jobs: salary range with currency and period (3 of 30 test rows).
  • Expiry date (data.application.deadline): the listing's expiry date from Jobgether. Every sample row carried the same date, so treat it as an expiry, not an employer's application deadline.
  • Link: the Jobgether offer page (identity.url). The feed gives no separate apply link, so data.application.url is empty.
  • Identity: identity.source and identity.externalId, a stable key for comparing runs.

Missing facts stay null, and a known empty list is [].

Sample output data

Here is an example job from this Actor. Descriptions are shortened here; real rows carry the full text.

{
"llm": {
"model": null,
"status": "not_requested",
"provider": null,
"completedAt": null,
"filledFields": [],
"promptVersion": null,
"requestedFields": []
},
"raw": {
"description": "Opportunity Overview: We are seeking a Senior AI Engineer to join our Engineering team. In this role, you'll design retrieval architectures, build AI- [...]",
"descriptionHtml": "<p><strong>Opportunity Overview:\u00a0</strong></p>\n<p>We are seeking a Senior AI Engineer to join our Engineering team. In this role, you'll design retrieval architectures, b [...]"
},
"data": {
"title": "Senior AI Engineer",
"company": {
"url": null,
"name": "Cohere Health",
"logoUrl": null,
"sourceId": "6479dee70098a0dfd42cdd0a",
"department": null
},
"domains": null,
"funding": {
"programme": null
},
"benefits": null,
"locations": [
{
"raw": "United States",
"city": null,
"region": null,
"latitude": null,
"longitude": null,
"postalCode": null,
"countryCode": null,
"countryName": null,
"facilityName": null,
"streetAddress": null,
"positionsAvailable": null
}
],
"seniority": {
"raw": [
"Senior (5-10 years)"
],
"levels": [
"senior"
]
},
"domainsRaw": null,
"employment": {
"startDate": null,
"hoursPerWeek": null,
"startDateRaw": null,
"contractTypes": null,
"workSchedules": [
"full_time"
],
"durationMonths": null,
"hoursPerWeekRaw": null,
"workArrangements": [
"remote"
],
"applicantLocationRequirements": [
"US"
]
},
"application": {
"url": null,
"email": null,
"deadline": "2026-12-16",
"postedAt": "2026-10-16",
"directApply": null,
"availability": null,
"applyMethodRaw": null,
"hiringContacts": null,
"referenceNumber": null,
"selectionProcess": null,
"applicantSnapshot": null,
"eligibilityCriteria": null,
"referenceNumberIssuer": null
},
"constraints": {
"visaSponsorship": null,
"securityClearance": null,
"workAuthorization": null,
"locationPreference": null
},
"compensation": {
"raw": null,
"exact": null,
"period": null,
"maximum": null,
"minimum": null,
"currency": null
},
"requirements": {
"education": null,
"languages": null,
"experience": null,
"certifications": null,
"requiredSkills": null,
"preferredSkills": null,
"skillsQualifications": null,
"specificRequirements": null
},
"classification": {
"industries": null,
"jobFunctions": [
"AI Engineer"
]
}
},
"custom": {
"data": {
"jobId": "6ad18ce249c73d7b9985edeb",
"remote": "Full Remote",
"companyId": "6479dee70098a0dfd42cdd0a",
"experience": "Senior (5-10 years)",
"salaryRange": null,
"contractType": "Full time",
"jobFunctions": [
"AI Engineer"
]
}
},
"identity": {
"url": "https://jobgether.com/offer/6ad18ce249c73d7b9985edeb-senior-ai-engineer",
"source": "jobgether",
"externalId": "6ad18ce249c73d7b9985edeb"
},
"schemaVersion": "nomad-agent-job-v1"
}

Every row follows the same nomad-agent-job-v1 format with six roots: schemaVersion, identity, data, llm, raw and custom. Source-specific facts sit in custom; custom.schemaId identifies the version of the custom.data shape.

Advanced filters

Use the shared nomad-agent-job-filter-v1 expression format for fields other than the ones above. This example keeps jobs that are open to applicants in the United States:

{
"schemaVersion": "nomad-agent-inventory-search-v1",
"keyword": "software engineer",
"postedWithin": "7d",
"maxItems": 100,
"filters": {
"schemaVersion": "nomad-agent-job-filter-v1",
"expression": {"field": "data.employment.applicantLocationRequirements", "operator": "overlaps", "value": ["US"]}
},
"dedupe": {"enabled": true, "key": ""}
}

Countries are two-letter ISO codes on this board. Postings open to a whole region list many codes, so worldwide and EMEA-wide postings that include US match too. Few Jobgether rows publish a salary, so a salary rule returns few jobs. With AI turned off, filters check source facts only, and unknown values do not satisfy ordinary comparisons.

With AI enrichment on, rows that visibly fail your filter are removed before any AI call, and unknown values are checked again after enrichment.

Optional AI enrichment and English translation

Both are independent opt-ins, off by default, funded by us. You do not supply an API key, and they are not billed separately.

{
"schemaVersion": "nomad-agent-inventory-search-v1",
"keyword": "software engineer",
"maxItems": 50,
"aiEnrichment": {"enabled": true, "accuracy": "silver"},
"translateToEnglish": true,
"dedupe": {"enabled": true, "key": ""}
}
  • AI enrichment fills supported unknown fields and records its provenance in llm. It cannot overwrite a known source fact. Jobs whose requested enrichment fails are withheld, so you can get fewer rows.
  • Translation turns selected display text into English. raw.description and raw.descriptionHtml always keep the original text, and filters run on the normalized values before translation.
  • Only when you turn them on, description text goes to OpenRouter for extraction, and selected display text goes to DeepL for translation. The configured routes deny provider data collection but do not guarantee zero retention or EU-only processing. Extracted facts and translations may be cached by us.
  • Without enrichment, llm.status is not_requested. When enrichment runs, the key-value store also holds OWNER-USAGE, which separates actual provider costs from unpriced token counts.
  • The top-level accuracy field is a compatibility override for aiEnrichment.accuracy. It never turns enrichment on by itself.

Jobgether API

Results are stored in a dataset that you can export as CSV, JSON or Excel, or read on demand through the Apify API. Use latest as the build and keep the build number your run returns if you need to reproduce a result.

Support and Feedback

We improve these scrapers 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.

Good to know

  • Coverage follows the recent part of the public Jobgether feed that we stored and could verify with a complete description. The Actor does not read the website at run time.
  • Jobgether orders its feed by posting date and many postings share a date, so neighbouring pages can overlap. Each posting is stored once under its own ID, and no row appeared twice in our test runs.
  • Restrictive filters, repeat suppression or a narrow postedWithin can produce zero results. A successful run status alone does not prove complete coverage, so check the dataset and RUN-SUMMARY together.

Migrating from the previous release

  • schemaVersion must be nomad-agent-inventory-search-v1. Inputs from the previous release, which used source-specific fields, fail with migration guidance. Replace them with keyword or filters.
  • identity.externalId is the source's own posting ID as represented in this output, and it may be spelled differently from earlier releases. The stable key is the pair (identity.source, identity.externalId). Update stored comparison keys; existing delivery history can permit a one-time repeat.
  • custom now carries source facts under a new custom.schemaId. The other five roots keep the nomad-agent-job-v1 contract.
  • Relative posting-age windows are limited to 36500 days. Use any for an unrestricted search.

Run evidence

  • Test run on 2026-10-16, build 1.0.4, run dCW05toQSi3McHnyf: keyword software engineer, 10 jobs, 10 different employers, all 10 with a complete description. Run time 24.1 seconds.
  • A second run without a keyword (dAMBqgqHYI5JpTfit) returned 10 jobs from 8 different employers, all posted on 2026-10-16. Run time 10.0 seconds.
  • In the first run the source had been checked 30 minutes before the run started (sourceFreshAt 16:19 UTC, run at 16:49 UTC).
  • All 30 rows across the three test runs were remote ("Full Remote" in custom.data.remote), none had data.application.url, and every one carried the same expiry date.
  • Filter test, run sF38gAqrvn8HUcPn3: keyword software engineer with the US rule from "Advanced filters" returned 10 jobs, every one listing US among the eligible countries (some listed 126 codes).
  • Cost per run = jobs delivered x $0.0002.
  • The collector behind this Actor reads at most the first 10 feed pages of 25 postings per pass, newest first; cards that point to a different offer ID are withheld rather than admitted under either ID.

Job Atlas

Explore the Job Atlas job-data and matching Actors. Use latest and keep the build number each run returns.

Product guide | Source and client examples | Setup skill | Setup guide


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