Airbnb Careers Scraper avatar

Airbnb Careers Scraper

Pricing

Pay per event

Go to Apify Store
Airbnb Careers Scraper

Airbnb Careers Scraper

Extract Airbnb careers jobs, locations, departments, workplace type, role text, and apply URLs. Export to JSON/CSV, schedule monitoring, and track hiring signals.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Extract public Airbnb job listings and job-detail pages from careers.airbnb.com.

Use this actor to monitor Airbnb hiring signals, collect current open roles, and feed recruiting, market-intelligence, sales, and workforce-analysis workflows.


What does Airbnb Careers Scraper do?

Airbnb Careers Scraper collects structured job data from the public Airbnb careers site.

It starts from the Airbnb positions page or a specific Airbnb job URL.

It discovers job cards from listing pages.

It can follow pagination.

It can open job detail pages.

It saves each role as a clean dataset item.

It includes fields such as title, job ID, department, location, workplace type, role text, apply URL, and scrape timestamp.

No Airbnb account is required.

No login cookies are required.

No browser automation is required for the current public pages.

Who is it for?

Recruiting and talent teams

Recruiters use it to watch which Airbnb teams are actively hiring, which locations are opening roles, and which job families are gaining headcount.

Talent sourcers use it to build target lists by department, location, or keyword, then route the exported roles into sourcing or talent-mapping workflows.

Job seekers use it to export Airbnb openings into their own tracking sheets and monitor changes without manually revisiting the careers site.

Sales and growth teams

Sales teams use hiring activity as a signal for growth, expansion, new budgets, or organizational change inside a strategic account.

Partnership teams use the data to understand which Airbnb functions may need services, vendors, or tooling based on current hiring patterns.

Market research and competitive intelligence teams

Market researchers use it to understand Airbnb workforce priorities by department, role type, and geography.

Competitive-intelligence teams use it to track new roles over time and compare hiring direction against other travel, marketplace, or hospitality companies.

Travel analysts use it to connect hiring signals with market strategy, product investment, compliance focus, and regional expansion.

Founders, operators, and analysts

Founders use it to study team-building patterns at a major travel platform.

Operators and workforce analysts use it to feed dashboards, scheduled monitors, and internal reports with repeatable public careers data.

Why use this actor?

✅ It targets Airbnb's public careers pages directly.

✅ It returns structured records instead of raw HTML.

✅ It supports listing and detail URLs.

✅ It includes optional filters for department, location, workplace type, and keyword.

✅ It can extract job body text for downstream analysis.

✅ It works well in scheduled monitoring workflows.

✅ It is lightweight because it uses HTTP extraction.

Data fields

FieldDescription
jobIdNumeric Airbnb/Greenhouse job identifier when available
titleJob title
jobUrlAirbnb careers detail page URL
departmentDepartment or function shown on the listing page
teamTeam value, usually the same as department
locationsList of visible locations
workplaceTypeWork-flexibility label such as hybrid or work-anywhere
listingPageListing page where the role was discovered
listingOrderPosition of the role on the listing page
descriptionTextClean role overview text from the detail page
responsibilitiesExtracted lines that appear to describe responsibilities
qualificationsExtracted lines that appear to describe qualifications or skills
applyUrlPublic Greenhouse apply/job URL inferred from the job ID
postedDateNullable placeholder if Airbnb exposes a posted date
updatedDateNullable placeholder if Airbnb exposes an updated date
scrapedAtISO timestamp when the item was saved

How much does it cost to scrape Airbnb careers jobs?

This actor uses pay-per-event pricing.

A small start fee of $0.005 is charged once per run.

A per-job event is charged for each saved job record.

Current per-job tier prices:

TierPrice per saved job
FREE$0.000095
BRONZE$0.000083
SILVER$0.000065
GOLD$0.00005
PLATINUM$0.000033
DIAMOND$0.000023

For a typical HTTP run, compute costs are low.

The final platform pricing is visible on the Apify actor page before you start a run.

Use a low maxItems value for your first test.

Then increase maxItems for scheduled monitoring or full exports.

How to use Airbnb Careers Scraper

  1. Open the actor on Apify.

  2. Keep the default start URL: https://careers.airbnb.com/positions/.

  3. Set maxItems to the number of jobs you want.

  4. Add an optional department, location, workplace type, or search term.

  5. Keep includeDetails enabled if you need role body text.

  6. Start the run.

  7. Export the dataset as JSON, CSV, Excel, XML, or through the API.

Input options

Start URLs

Use the main Airbnb careers positions page to discover open roles.

You can also provide a direct job detail URL.

Examples:

  • https://careers.airbnb.com/positions/

  • https://careers.airbnb.com/positions/7732569/

Maximum jobs

maxItems controls how many job records are saved.

The default is intentionally small for a cheap first run.

Set a larger value to export more open roles.

Search term

Use searchTerm for broad keyword filtering.

Examples:

  • data

  • engineering

  • marketing

  • remote

Departments

Use departments to keep roles from specific Airbnb functions.

Examples:

  • Engineering

  • Data Science

  • Account Management

Locations

Use locations to keep roles for specific locations.

Examples:

  • United States

  • Paris

  • Bangalore

  • Remote

Workplace types

Use workplaceTypes for Airbnb's public flexibility labels.

Examples:

  • Live and Work Anywhere

  • Hybrid - Be close to an office

Include details

When includeDetails is true, the actor opens each job page.

This adds role body text, responsibility snippets, qualification snippets, and apply URL.

Disable it when you only need a fast list of titles and locations.

Example input

{
"startUrls": [
{ "url": "https://careers.airbnb.com/positions/" }
],
"maxItems": 25,
"searchTerm": "data",
"includeDetails": true
}

Example output

{
"jobId": "7732569",
"title": "(Contract) Senior Data Scientist, Platform Inference - MarTech DS Measurement",
"jobUrl": "https://careers.airbnb.com/positions/7732569/",
"department": "Data Science",
"team": "Data Science",
"locations": ["United States"],
"workplaceType": "Live and Work Anywhere",
"listingPage": "https://careers.airbnb.com/positions/",
"listingOrder": 1,
"descriptionText": "Airbnb was born in 2007...",
"responsibilities": "...",
"qualifications": "...",
"applyUrl": "https://job-boards.greenhouse.io/airbnb/jobs/7732569",
"postedDate": null,
"updatedDate": null,
"scrapedAt": "2026-06-07T00:00:00.000Z"
}

Tips for best results

Start with the default URL.

Use maxItems: 10 for a quick test.

Use includeDetails: false for faster listing-only exports.

Use includeDetails: true for role-analysis workflows.

Use filters only when you need a subset.

Leave filters blank to export all visible roles up to your limit.

Schedule the actor daily or weekly to monitor changes.

Store previous datasets if you want to compare hiring trends over time.

Integrations

Send results to Google Sheets for recruiter review.

Send results to Airtable for talent-pipeline tracking.

Send results to a CRM to enrich company-growth signals.

Send results to a warehouse for longitudinal hiring analysis.

Trigger Slack alerts when new matching roles appear.

Connect with Apify webhooks for automated downstream processing.

Use dataset API endpoints for dashboards and BI tools.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/airbnb-careers-scraper').call({
startUrls: [{ url: 'https://careers.airbnb.com/positions/' }],
maxItems: 25,
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/airbnb-careers-scraper').call(run_input={
'startUrls': [{'url': 'https://careers.airbnb.com/positions/'}],
'maxItems': 25,
'includeDetails': True,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~airbnb-careers-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://careers.airbnb.com/positions/"}],"maxItems":25,"includeDetails":true}'

MCP usage

Use this actor from MCP-compatible tools through Apify MCP.

Claude Code MCP add command:

$claude mcp add apify-airbnb-careers "https://mcp.apify.com/?tools=automation-lab/airbnb-careers-scraper"

Claude Code MCP URL:

https://mcp.apify.com/?tools=automation-lab/airbnb-careers-scraper

Claude Desktop MCP JSON configuration:

{
"mcpServers": {
"apify-airbnb-careers": {
"url": "https://mcp.apify.com/?tools=automation-lab/airbnb-careers-scraper"
}
}
}

Claude Desktop MCP URL:

https://mcp.apify.com/?tools=automation-lab/airbnb-careers-scraper

Example prompts:

  • "Scrape the latest Airbnb data science roles and summarize the locations."

  • "Find Airbnb roles mentioning marketing measurement."

  • "Export Airbnb engineering jobs and group them by workplace type."

Scheduling workflows

Run the actor every day to detect new Airbnb roles.

Run it weekly to track broader hiring trends.

Compare each dataset with the previous run.

Alert only when a new job ID appears.

Filter by department to keep alerts focused.

Common use cases

Monitor Airbnb hiring activity.

Track growth in specific departments.

Watch international expansion signals.

Build recruiter target lists.

Analyze skill requirements in job descriptions.

Compare workplace flexibility language over time.

Feed company-intelligence dashboards.

Troubleshooting

Why did I get fewer jobs than maxItems?

The source may have fewer jobs matching your filters.

Try removing filters or increasing the number of listing pages by raising maxItems.

Why are postedDate and updatedDate null?

Airbnb's public careers HTML does not consistently expose those dates.

The fields are included for schema stability if the source starts exposing them later.

Why is the apply URL on Greenhouse?

Airbnb embeds a Greenhouse application form and exposes the public Greenhouse job ID.

The actor builds the corresponding public Greenhouse job URL from that ID.

Data quality notes

Airbnb can change page markup without notice.

The actor is built for the current public WordPress/FacetWP careers pages.

It does not bypass login walls.

It does not scrape private applicant data.

It collects only publicly visible job information.

Legality

This actor collects publicly available career-page information.

You are responsible for using the data lawfully.

Respect applicable laws, contracts, and platform terms.

Do not use the output for unlawful discrimination, spam, or prohibited profiling.

If in doubt, consult your legal counsel.

Explore related actors from Automation Lab:

FAQ

Does this actor require an Airbnb login?

No. It uses public careers pages.

Does it use a browser?

No. It uses HTTP requests and HTML parsing for the current site.

Can I scrape one specific job?

Yes. Provide a direct Airbnb job detail URL in startUrls.

Can I filter by location?

Yes. Use the locations input array.

Can I filter by team?

Yes. Use the departments input array.

Can I export to CSV?

Yes. Apify datasets support CSV, JSON, Excel, XML, RSS, and API exports.

Can I run it on a schedule?

Yes. Use Apify schedules to run it daily, weekly, or monthly.

Can it find closed jobs?

No. It extracts jobs currently visible on Airbnb's public careers pages.

Can it scrape applicant information?

No. It only collects public job posting information.

What should I do if results look empty?

Check your filters first.

Then run with the default input and a small maxItems value.

If the default input returns no results, the source markup may have changed.