ActorStack.dev

Building a tech job postings dataset from five boards

Get on Board, Torre, LinkedIn, Hacker News and elempleo.com publish job postings in five different shapes. What each source gives you, what it leaves out, and what each one says about being read by a machine.

By Oswaldo Carabano8 min read

Short answer

A tech job postings dataset for Latin America can be assembled from five public sources, and they differ more than the word "job board" suggests. Get on Board offers a documented public API and published a salary on 41.2% of 934 jobs; Torre filters to open posts and names the recruiter on 97.1% of 138 company-published posts; LinkedIn's public job pages carry the company domain on 97.6% of 639 jobs but a salary on 2.7%; Hacker News hiring threads are free text with a salary on 37% of 848 posts; elempleo.com parses Colombian salary bands on 75.9% of 1,000 offers. Their machine-access rules also differ, from no robots.txt rules at Get on Board to a blanket disallow at LinkedIn.

Key points

  • Get on Board is the only one of the five sources with a documented public API, and its robots.txt contained no rules on 10 October 2026.
  • Salary coverage ranges from 2.7% of 639 LinkedIn jobs to 75.9% of 1,000 elempleo.com offers, so salary research depends heavily on which board you read.
  • Torre and Hacker News carry named people — recruiters and post authors — and both Actors withhold some of them by default.
  • LinkedIn's robots.txt disallows every path for unnamed crawlers, and elempleo.com's robots.txt allows the paths read but states that automated extraction needs written permission.
  • Every fill rate on this page comes with the sample it was measured on, and the samples were taken between 23 September and 2 October 2026.
On this page6 sections

“Job board” covers five very different things in this cluster. One is a documented API, one is a profile network that names the person who posted the job, one is the largest professional network reading as a signed-out visitor, one is a monthly comment thread, and one is a national board with its own salary notation. Treating them as interchangeable sources of rows is the first mistake, so this guide starts with how each is shaped.

Five sources, five shapes of data

SourceHow it is readSample measuredPrimary price
Get on BoardDocumented public API, no key934 jobs, whole board, 23 Sep 2026$0.45 / 1,000 jobs
TorreSearch plus job and profile pages330 open posts, 1 Oct 2026$3 / 1,000 posts
LinkedIn (18 LATAM countries)Signed-out job search and job pages639 jobs, 8 countries, 1 Oct 2026$2 / 1,000 jobs
Hacker News Who is HiringAlgolia HN Search API, no key848 company posts, Jul–Oct 2026$4 / 1,000 posts
elempleo.com (Colombia)Site search and offer pages, no account1,000 offers, 30 Sep 2026$0.70 / 1,000 offers

The samples are what make the numbers below comparable at all. A fill rate is a property of a source on a date, measured on a stated number of rows, and none of the five is a promise about the next run — why fill rates are published that way.

Salary is where they differ most

If the dataset is for salary research, the choice of board decides most of the answer before any analysis starts.

SourceSalary presentUnit as delivered
elempleo.com75.9% of 1,000COP per month, parsed from a band
Get on Board41.2% of 934USD gross per month, converted by the board
Torre40.9% of 330 (minimum)Currency and period as posted, plus hourly USD
Hacker News37% of 848Currency and period per band, as written
LinkedIn2.7% of 639LinkedIn's published pay range

The units matter as much as the rates. Get on Board converts every salary to a monthly USD figure rounded to 100 before it ever reaches the API, so a yearly offer looks monthly — the Get on Board API and its conversion. elempleo publishes bands in millions of pesos with a decimal comma, so “$2,5 a $3 millones” has to be parsed before it can be compared with anything — how elempleo is read. Hacker News posts list several bands and currencies in one post often enough that the Actor keeps every band, not just the first.

Which sources carry people

Two of the five sources describe companies only. Get on Board measured 0 of 934 jobs without a company, and elempleo only lets registered company accounts publish, 494 of 494 offers measured.

The other three carry named individuals. Torre shows the company person who posted a job on 97.1% of 138 company-published posts, and its recruiter mode is a list of people — what is collected about them. LinkedIn shows a job poster on 10.2% of 639 jobs. Hacker News delivers the username of each post's author, and its separate Who wants to be hired thread consists entirely of people looking for work — how that thread is handled.

Each Actor sets a default that withholds part of that. Torre excludes people located in the EU, EEA, UK or Switzerland; LinkedIn withholds posters on jobs located there; Hacker News hides personal-domain addresses and leaves the job-seeker thread off. The same reasoning drove the Wellfound Actor to skip company profile pages entirely — the data that Actor will not collect.

What each site says about machine access

Sourcerobots.txt on 10 Oct 2026Terms or documentation
Get on BoardOne comment line, no rulesPublic API documented as open to anyone
TorreDisallows /api/ and /search/jobs?*; search host has no robots.txt (404)Lists scraping among prohibited uses
LinkedInDisallow: / for every unnamed crawlerUser Agreement prohibits scraping
Hacker Newsnews.ycombinator.com sets a 30 s crawl delay; the Algolia API host has no robots.txt (404)The Actor does not request news.ycombinator.com
elempleo.comPaths read are allowed; comments prohibit automated extraction without written permissionBars unauthorised commercial use

Only Get on Board publishes an invitation. Two of the five — Torre's /api/ paths and LinkedIn as a whole — are read against an explicit disallow, which each Actor's page and guide states rather than leaves out — what LinkedIn's file says.

Combining them into one dataset

No job id survives across boards, so joining is by company. Torre, Hacker News and LinkedIn return a cleaned domain on 79.1%, 80.8% and 97.6% of their measured rows; Get on Board returns the company website on every job; elempleo returns an employer name and id, and nothing at all on the 31.5% of offers published as confidential. A domain join therefore covers four sources well and elempleo poorly, which is a property of elempleo rather than of the join.

Freshness differs too. Get on Board and elempleo are read live per run; Hacker News is a monthly thread that keeps growing for days after it opens; Torre's search mixes closed posts with open ones, 65 of 2,813 open in one measured query. For a freelance rather than salaried view of the same region, the Workana cluster covers it — Latin American freelance market data— and for startup roles with equity, the Wellfound guide.

What a month of data costs

At the primary prices, the whole of Get on Board is about half a dollar per pull, since the board held about 1,000 open jobs. One month of Hacker News company posts — 254 in September 2026 — is about $1.02. 1,000 LinkedIn jobs are $2.00 without company profiles. elempleo's whole national inventory, 20,876 offers on 30 September 2026, is about $14.60. Torre depends most on options: 100 posts with full pages are about $1.10, and recruiter profiles add $0.01 per person.

All five charge per delivered row and never for error rows or duplicates within a run, which is the property that makes those sums predictable — how pay-per-event pricing works.

Frequently asked questions

Which source has the most salary data?
elempleo.com, with a parsed COP salary on 75.9% of 1,000 offers measured on 30 September 2026. Get on Board follows at 41.2% of 934 jobs, Hacker News at 37% of 848 posts, Torre at 40.9% of 330 posts and LinkedIn at 2.7% of 639 jobs.
Can the five sources be deduplicated against each other?
Partly, by company. Three Actors return a domain field — 79.1% of Torre posts, 80.8% of Hacker News posts and 97.6% of LinkedIn jobs — Get on Board returns the company website on every job, and elempleo.com returns an employer name and id. Job ids never match across boards.
Is a combined job dataset personal data?
Parts of it can be. Job postings describe companies, but Torre recruiters, LinkedIn job posters and Hacker News authors are named individuals, and data protection law applies to them regardless of the posting being public.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Platform docschecked 10 Oct 2026
    Get on Board API — OpenAPI descriptionGet on Board
  2. Site declarationchecked 10 Oct 2026
    getonbrd.com/robots.txtGet on Board
  3. Site declarationchecked 10 Oct 2026
    torre.ai/robots.txtTorre
  4. Site declarationchecked 10 Oct 2026
    linkedin.com/robots.txtLinkedIn
  5. Platform docschecked 10 Oct 2026
    Hacker News Search APIAlgolia
  6. Site declarationchecked 10 Oct 2026
    elempleo.com/robots.txtelempleo.com
  7. Operator claimchecked 10 Oct 2026
    Torre Terms of ServiceTorre
  8. Operator claimchecked 10 Oct 2026
    LinkedIn User AgreementLinkedIn
  9. Operator claimchecked 10 Oct 2026
    elempleo.com — Términos y condicioneselempleo.com
  10. Law or regulatorchecked 18 Aug 2026
    Art. 14 GDPR — Information to be provided where personal data have not been obtained from the data subjectRegulation (EU) 2016/679
  11. Operator claimchecked 10 Oct 2026
    Get on Board Jobs Scraper — Actor README and input schemaActorStack / Apify Store
  12. Operator claimchecked 10 Oct 2026
    Torre Jobs & Recruiters Scraper — Actor README and input schemaActorStack / Apify Store
  13. Operator claimchecked 10 Oct 2026
    LinkedIn LATAM Tech Jobs Scraper — Actor README and input schemaActorStack / Apify Store
  14. Operator claimchecked 10 Oct 2026
    Hacker News Who is Hiring Scraper — Actor README and input schemaActorStack / Apify Store
  15. Operator claimchecked 10 Oct 2026
    elempleo.com Jobs Scraper — Actor README and input schemaActorStack / Apify Store
A laptop screen showing a plain text-mode terminal with a command prompt.
Tech jobsGuide

Get on Board API

Get on Board documents a public API that needs no key. What it returns, how it pages, and why its salary is a monthly USD conversion rather than the number the company posted.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Tech jobsGuide

Scrape elempleo.com

elempleo.com caps every search at 10,000 results, hides some employers and publishes salaries as bands with a decimal comma. How each of those is handled, and what the site's robots.txt and terms say.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
Tech jobsGuide

LinkedIn job scraper, LATAM

What LinkedIn's public job pages expose to a signed-out visitor in 18 Latin American countries, which filters it silently ignores, how often salary appears, and what LinkedIn says about crawling.

8 min