GetOnBrd Jobs Scraper — Tech Jobs in Latin America avatar

GetOnBrd Jobs Scraper — Tech Jobs in Latin America

Pricing

from $0.50 / 1,000 job results

Go to Apify Store
GetOnBrd Jobs Scraper — Tech Jobs in Latin America

GetOnBrd Jobs Scraper — Tech Jobs in Latin America

Scrape tech jobs in Latin America from GetOnBrd: title, company, salary range in USD, seniority, remote/hybrid/on-site, tech stack tags. US$0.50 per 1,000 jobs.

Pricing

from $0.50 / 1,000 job results

Rating

0.0

(0)

Developer

Fabrikit

Fabrikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrape tech job postings from GetOnBrd, the largest tech job board in Latin America, into a clean, normalized dataset — the fastest way to get LATAM tech jobs data with salary ranges in USD. Pick a category, a search term, a country or just "remote only", and get back every job with title, company, salary range in USD, seniority, remote/hybrid/on-site mode, tech-stack tags and publication date. Export to CSV, Excel, JSON or Google Sheets.

What you get from a single run:

  • Salary transparency you won't find elsewhere: GetOnBrd requires many postings to publish a salary range — this Actor returns salaryMin/salaryMax in USD, ready for compensation benchmarks.
  • Real filters that work together: category (Programming, Data Science, Design/UX...), free-text search, seniority, country (CL, MX, AR, CO, PE...) and remote-only — filters the site's own API can't combine are applied for you.
  • The tech stack of every job as clean tags (Python, React, AWS...), plus perks, applicant counts and a direct application URL.

Example output item (real job, August 2026):

{
"id": "senior-software-engineer-java-angular-english-23people-santiago-e811",
"title": "Senior Software Developer Java/Spring Boot (English)",
"company": "23people",
"companyLogo": "https://getonbrd-prod.s3.amazonaws.com/uploads/users/logo/4457/Foto_perfil_Tiktok.png",
"category": "Programming",
"seniority": "Senior",
"contractType": "Full time",
"workMode": "remote",
"remote": true,
"remoteModality": "remote_local",
"countries": ["Remote"],
"salaryMin": 2900,
"salaryMax": 3200,
"salaryCurrency": "USD",
"publishedAt": "2026-08-21T01:43:41.000Z",
"applicationsCount": 297,
"tags": ["Java", "Spring Boot", "PostgreSQL", "AWS", "Cloud Computing"],
"perks": ["flexible_hours", "health_coverage", "computer_provided"],
"url": "https://www.getonbrd.com/jobs/senior-software-engineer-java-angular-english-23people-santiago-e811",
"description": null,
"scrapedAt": "2026-08-21T01:59:14.049Z"
}

How to scrape GetOnBrd jobs

  1. Pick a category (Programming, Machine Learning & AI, Data Science, DevOps, Mobile, Design/UX...) or leave "All categories".
  2. Optionally add a search term (python, react, data engineer), a country code (CL, MX, AR...), a seniority level, or switch on remote only.
  3. Press Start. Jobs land in the dataset within seconds, ready to download as CSV, Excel or JSON, or to sync to Google Sheets, webhooks, Zapier or Make.

Example input

{
"category": "programming",
"maxJobs": 50
}
  • category — one of GetOnBrd's 18 categories, or all.
  • searchTerm — free-text search across all postings. Combined with category, results are filtered to that category.
  • remoteOnly — only jobs that can be done remotely (fully remote or remote within a region).
  • country — two-letter code (CL, MX, AR, CO, PE, BR...) for jobs located in or hirable from that country.
  • seniorityno_experience, junior, semi_senior, senior or expert.
  • maxJobs — stop after this many jobs (after filters). 0 = no limit.
  • includeDescription — add the full job description as plain text (HTML stripped). Off by default to keep items small.

Example: remote senior Python jobs, full description

{
"searchTerm": "python",
"remoteOnly": true,
"seniority": "senior",
"includeDescription": true,
"maxJobs": 100
}

Example: all Design/UX jobs in Chile

{
"category": "design-ux",
"country": "CL",
"maxJobs": 200
}

GetOnBrd API — jobs data without writing integration code

GetOnBrd exposes a public JSON API, but using it raw means dealing with JSON:API envelopes, numeric relationship IDs that need a second lookup, a page-size cap, and filters that reject each other (the API refuses country + remote in the same request, and category endpoints ignore filter parameters entirely). This Actor handles all of that: it expands companies, seniorities and tags inline, applies every filter combination client-side when the API can't, paginates for you and outputs flat, analysis-ready rows. No token, no login, no browser, no proxies.

LATAM tech jobs data for salary benchmarks and market research

Latin America's tech job market is hard to see from the outside — LinkedIn data is noisy and salaries are hidden. GetOnBrd is where Chilean, Mexican, Colombian and Argentine tech companies actually hire, and a large share of postings include public salary ranges in USD. That makes this dataset ideal for:

  • Salary benchmarking: average salaryMin/salaryMax by seniority, tag or country.
  • Recruiting and sourcing: feed fresh postings into your ATS or outreach pipeline; applicationsCount shows where competition is low.
  • Tech-stack trends: count tags over time — which frameworks LATAM companies are hiring for right now.
  • Job boards and aggregators: a normalized LATAM feed with direct application URLs.
  • Remote-work research: workMode splits every job into remote, hybrid or on-site.

Output fields

FieldTypeDescription
idstringGetOnBrd's unique job slug
titlestringJob title
companystring | nullCompany name
companyLogostring | nullCompany logo URL
categorystring | nullCategory display name (e.g. Programming)
senioritystring | nullNo experience, Junior, Semi Senior, Senior, Expert
contractTypestring | nullFull time, Part time, Freelance, Práctica/Internship
workModestringremote, hybrid or on-site
remotebooleanCan the job be done remotely
remoteModalitystring | nullRaw API value (fully_remote, remote_local, hybrid...)
countriesarrayCountries the job is located in / hirable from
salaryMinnumber | nullLower bound of the published salary range
salaryMaxnumber | nullUpper bound of the published salary range
salaryCurrencystring | nullUSD when a salary is published
publishedAtstring | nullISO 8601 publication date
applicationsCountnumber | nullNumber of applications so far
tagsarrayTech stack / skills (Python, React, AWS...)
perksarrayPerks (flexible_hours, health_coverage...)
urlstringDirect link to the job posting
descriptionstring | nullPlain-text description (only with includeDescription)
scrapedAtstringISO 8601 timestamp of this run

A run summary (jobs per source, items filtered out, errors) is stored in the run's key-value store under SUMMARY.

Integrations — call this Actor from Python or JavaScript

Run the Actor and fetch its results from your own code via the Apify API:

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("fabrikit/getonbrd-jobs-scraper").call(run_input={
"category": "programming",
"remoteOnly": True,
"seniority": "senior",
"maxJobs": 200,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], job["company"], job["salaryMin"], job["salaryMax"])

JavaScript (npm install apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('fabrikit/getonbrd-jobs-scraper').call({
searchTerm: 'react',
country: 'MX',
maxJobs: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.length} jobs`, items[0]);

Every Apify dataset also exports to CSV, Excel, JSON, XML or HTML with one click, or syncs to Google Sheets, webhooks, Zapier, Make and LangChain through Apify's built-in integrations. Schedule the Actor daily or weekly in Apify Console for a rolling LATAM jobs feed with zero code.

Performance & limits

  • Plain HTTP against GetOnBrd's public JSON API — no browser, no proxies, so runs are fast and cheap: 50 jobs in a few seconds, hundreds in well under a minute.
  • Pagination is handled automatically (the API caps pages at 120 items; the Actor requests 100 per page).
  • The board typically lists 1,500–3,000 active jobs across all categories; maxJobs: 0 scrapes everything.
  • Seniority, remote-only-with-country and category-plus-search filters are applied client-side (the upstream API cannot combine them), so highly restrictive combinations read more pages than they return jobs. That is normal — you are only charged for jobs actually delivered.
  • Items are unique per job id within a run.

Tips for best results

  • For everything in one category, use category alone — it is the fastest path (server-side, no filtering overhead).
  • For salary analytics, filter the dataset where salaryCurrency = "USD" — roughly 40–50% of postings publish a range.
  • Descriptions are off by default; switch on includeDescription only when you need the text (sentiment, LLM matching, keyword mining) — items get ~10× bigger with it.
  • For fresh-jobs monitoring, schedule a daily run with maxJobs: 100 sorted output — postings come back newest first — and dedupe on id downstream.
  • Country codes follow ISO 3166-1 alpha-2 (CL Chile, MX Mexico, AR Argentina, CO Colombia, PE Peru, BR Brazil...).

Pricing — US$0.50 per 1,000 jobs

This Actor uses Apify's pay-per-event model and charges per job delivered (event job-result, US$0.0005 per job = US$0.50 per 1,000 jobs) on top of standard Apify platform usage. No subscription, no rental fee, no proxy costs. Scraping the whole board (~2,500 jobs) costs about US$1.25 in events. You only pay for jobs actually pushed to your dataset.

FAQ

What is GetOnBrd? The leading tech job board in Latin America (getonbrd.com), used by thousands of companies in Chile, Mexico, Colombia, Argentina and Peru — and one of the few boards where salary ranges are frequently public.

Do I need a GetOnBrd API token? No. The Actor reads GetOnBrd's public JSON API, which serves job data without authentication.

Are salaries really in USD? Yes — GetOnBrd publishes salary ranges in USD (monthly), which is the board's convention across all countries.

Why do some jobs have no salary? Not every posting publishes a range. Fields are null when the company didn't disclose it; typically 40–50% of jobs include one.

Can I filter remote jobs in a specific country? Yes — set both remoteOnly: true and country. The upstream API rejects that combination, so the Actor fetches by country and applies the remote filter itself.

How fresh is the data? Live — every run hits GetOnBrd's API directly. Jobs are returned newest first; schedule the Actor to build a rolling feed.

Is it legal to scrape GetOnBrd? The Actor only reads data GetOnBrd itself publishes through its public, unauthenticated API — the same data shown on the public site. How you use it is up to your own compliance requirements.

Can I export to CSV or Excel? Yes — one click in Apify Console, or automatically via the Google Sheets integration, webhooks, Zapier, Make or the Apify API.

What categories exist? Programming, Machine Learning & AI, Data Science / Analytics, SysAdmin / DevOps / QA, Mobile Developer, Design / UX, Cybersecurity, Digital Marketing, Advertising & Media, Sales, Operations / Management, Innovation & Agile, Customer Support, Technical Support, People & HR, Education & Coaching, Hardware / Electronics, Other.

Support

Issues and questions are responded to in under 24 hours — open an issue on the Actor's Issues tab and it will be handled quickly.

More scrapers by Fabrikit

Technical details

  • Data source: GetOnBrd's public JSON API (getonbrd.com/api/v0) — category endpoints plus the cross-category search endpoint, chosen automatically per input.
  • Related records (company, seniority, contract type, tags) are expanded inline in a single request per page — no N+1 lookups.
  • Filters the upstream API can't combine (remote + country, category + search, seniority anywhere) are applied client-side.
  • Items are unique per job id within a run; malformed jobs are skipped and counted in SUMMARY, never abort the run.
  • A run summary is stored in the key-value store under SUMMARY.