BuiltIn Jobs Scraper icon

Jobs

BuiltIn Jobs Scraper

One structured feed of BuiltIn's tech/startup job listings — filterable by keyword, city, or category — with salary bands, seniority, work mode, top skills, and category tags that today's thin-trust BuiltIn scrapers on the Store don't fully surface.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

BuiltIn (builtin.com) is a tech/startup job-listing aggregator that pulls in postings from thousands of employers — not a single company's own careers page. This Actor scrapes builtin.com/jobs and its keyword/category/city filter variants into structured rows: title, company, location(s), work mode (remote/hybrid/onsite), salary band, seniority, category tags, top skills, and a description snippet. Built on curl-cffi with browser TLS impersonation and Apify Proxy rotation.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

Use cases

  • Recruiting-agency sourcing — surface fresh tech/startup roles across many employers in one feed, filterable by keyword, city, or category.
  • Talent-market research — track salary bands, seniority mix, and remote/hybrid/onsite split for a given role or region.
  • Sales intel for HR-tech vendors — spot companies actively hiring for a target function as a buying signal.
  • Competitive hiring watch — monitor a category or city's job volume and salary trends over time.
  • Job-board aggregation — feed a normalized BuiltIn slice into a broader multi-source job dataset.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
search string no Keyword search term, e.g. engineer. Matches BuiltIn's ?search= query param. Leave empty to browse without a keyword filter.
city string no City filter, free text or slug (e.g. Austin, TX or austin-tx) — normalized automatically. Leave empty to skip.
category string no BuiltIn category filter, free text or slug (e.g. Data Science or data-science) — normalized automatically. An unmatched category returns zero results rather than an error.
maxResults integer no Cap on emitted rows (~25 job cards per page). Pagination stops once this cap is reached, even mid-page.
{
  "search": "engineer",
  "city": null,
  "category": null,
  "maxResults": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

job_idtitleurlcompany_namecompany_urlcompany_logo_urllocationlocationswork_modeposted_textposted_at_estimatesalary_rawsalary_minsalary_maxsenioritycategories

{
  "job_id": "10451551",
  "title": "Sr. Finance Manager, Supply Chain",
  "url": "https://builtin.com/job/sr-finance-manager-supply-chain/10451551",
  "company_name": "Aerospace Corporation",
  "company_url": "https://builtin.com/company/aerospace-corporation",
  "company_logo_url": "https://cdn.builtin.com/logos/aerospace-corp.png",
  "location": "El Segundo, CA, USA",
  "locations": [
    "El Segundo, CA, USA"
  ],
  "work_mode": "Hybrid",
  "posted_text": "7 Minutes Ago",
  "posted_at_estimate": "2026-07-30T14:23:00Z",
  "salary_raw": "142K-204K Annually",
  "salary_min": 142000,
  "salary_max": 204000,
  "seniority": "Senior level",
  "categories": [
    "Aerospace",
    "Machine Learning",
    "Cybersecurity",
    "Defense"
  ],
  "top_skills": [
    "Excel",
    "SAP",
    "Forecasting"
  ],
  "description_snippet": "The Aerospace Corporation is seeking a Senior Finance Manager..."
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
result$0.0015Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Does this cover every BuiltIn city and category?
Free-text <code>city</code>/<code>category</code> values are slugified and passed straight to builtin.com. An unmatched slug returns zero rows (a valid empty filter), not an error.
Why is <code>salary_raw</code> sometimes null?
Not every listing publishes a salary band on builtin.com. When the card has no salary line, <code>salary_raw</code>/<code>salary_min</code>/<code>salary_max</code> are all null.
What does <code>work_mode</code> return when it's unclear?
Unrecognized or missing work-mode text falls back to <code>"Not specified"</code> rather than guessing.
Can I combine search, city, and category?
Yes. <code>category</code> and <code>city</code> are path segments; <code>search</code> is a query param (moving <code>city</code> alongside it when both are set). Combining <code>search</code> with a <code>category</code> path is supported but its narrowing behavior is unverified — worst case is an unfiltered-by-category result, never an error.
How fresh is <code>posted_at_estimate</code>?
Computed from BuiltIn's own relative-time text (e.g. '7 Minutes Ago') at the moment your run executes. Phrasing outside the known patterns leaves it null while <code>posted_text</code> keeps the raw string.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run