Meta hiring-trend tracking
Use Meta Jobs endpoints to turn meta hiring-trend tracking into repeatable API requests with documented inputs and JSON responses.
Search Meta's own careers site (metacareers.com) — by team, employment type, or office — list its full open-requisition catalog in one call, or get a single posting by id, as structured JSON.
Search Meta's own careers site (metacareers.com) by team, role, or office, list the full catalog, or get one posting by id, as structured JSON.
Endpoint families
3
Documented params
13
Examples
3
Live catalog snapshot
Active endpoints
3
Methods
GET
Required params
4
Schema refs
3
{
"platform": "Meta Jobs",
"endpoint": "meta-jobs-search",
"method": "GET",
"path": "/meta-jobs/search",
"auth": "apiKey"
}Use cases
Search Meta's own careers site (metacareers.com) by team, role, or office, list the full catalog, or get one posting by id, as structured JSON.
Use Meta Jobs endpoints to turn meta hiring-trend tracking into repeatable API requests with documented inputs and JSON responses.
Use Meta Jobs endpoints to turn job posting aggregation and monitoring into repeatable API requests with documented inputs and JSON responses.
Use Meta Jobs endpoints to turn recruiting and talent-market research into repeatable API requests with documented inputs and JSON responses.
Managed execution
Crawlora's Meta Jobs API is designed around Meta Jobs's own data surface, not a generic fetch endpoint — combining endpoint-specific request logic, managed infrastructure, parsing, normalization, billing, and Playground-tested examples.
Request behavior for Meta Jobs endpoints is tuned to the platform's own response shapes and edge cases.
Supported Meta Jobs endpoints can use managed proxy routing to improve reliability and reduce infrastructure work.
Dynamic Meta Jobs pages can be routed through managed browser instances where JavaScript rendering is required.
Challenge pages and unusable Meta Jobs responses are detected and surfaced clearly, not silently returned as empty data.
Meta Jobs results are returned as documented JSON instead of raw HTML.
Test the same Meta Jobs route from Docs and Playground before production integration.
Coverage map
These cards are generated from the active endpoint catalog, so the landing page reflects the same API surface used by Docs and Playground.
/meta-jobs/job
/meta-jobs/list
/meta-jobs/search
Endpoint catalog
/meta-jobs/searchSearches Meta's public careers site (metacareers.com) via its own anonymous jobsearch GraphQL endpoint, with the same team/technology/location/employment-type/keyword/remote/sort filters the live search page offers. All filters are optional and combine with AND semantics; an empty request returns Meta's entire open-requisition catalog in one response. `q` matches team, technology, location, or ref/req-code names -- it is NOT a free-text search over job titles or descriptions. `teams` enum (org teams + technologies, both use the same field): `Advertising Technology`, `AR/VR`, `Artificial Intelligence`, `Business Development & Partnerships`, `Communications & Public Policy`, `Creative`, `Data & Analytics`, `Data Center`, `Design & User Experience`, `Enterprise Engineering`, `Global Operations`, `Infrastructure`, `Internship - Business`, `Internship - Engineering, Tech & Design`, `Internship - PhD`, `Legal, Finance, Facilities & Admin`, `People & Recruiting`, `Product Management`, `Research`, `Sales & Marketing`, `Security`, `Software Engineering`, `Technical Program Management`, `University Grad - Business`, `University Grad - Engineering, Tech & Design`, `University Grad - PhD & Postdoc`, `Facebook`, `Messenger`, `Instagram`, `WhatsApp`, `Meta Quest`. `roles` enum: `Full time employment`, `Internship`, `Short term employment`. `results_per_page` enum: `all`, `five`, `ten`.
Response notes
- A valid filter combination with no matches returns `total: 0` and an empty `jobs` array (not an error). - Meta's unfiltered catalog is roughly 750 open roles; even an unfiltered search returns everything in one response. There is no page/offset parameter beyond `results_per_page`, because Meta's own search page does not expose one past that cap. - An invalid `teams`, `roles`, or `results_per_page` value returns a `400` invalid-params error rather than being silently dropped or passed through to the upstream. - `jobs[].teams` and `jobs[].sub_teams` are Meta's own tags on the posting and may include values beyond what you filtered on (a posting can carry multiple teams). Example response: ```json { "code": 200, "msg": "OK", "data": { "total": 58, "jobs": [ { "id": "1069625435495910", "title": "Product Designer, Meta Superintelligence Labs", "locations": ["Menlo Park, CA"], "teams": ["Artificial Intelligence", "Design & User Experience"], "sub_teams": ["Design", "Artificial Intelligence"], "url": "https://www.metacareers.com/profile/job_details/1069625435495910/" } ], "source_url": "https://www.metacareers.com/jobsearch/" } } ```
/meta-jobs/listReturns a page of Meta's own public job sitemap -- every open requisition's id, canonical URL, and last-modified timestamp, with no team/location/keyword filtering. Use this for full-catalog enumeration or change tracking via last_modified; use search when you need to filter by team, technology, location, employment type, or keyword.
Response notes
- A page beyond `total` returns an empty `listings` array (not an error). - `listings[].last_modified` reflects Meta's own sitemap timestamp and is the only signal this endpoint gives for change detection — it carries no title/team/location metadata. Call [job](meta-jobs-job.md) for the full posting. Example response: ```json { "code": 200, "msg": "OK", "data": { "page": 1, "page_size": 50, "total": 754, "listings": [ { "id": "1238249364564427", "url": "https://www.metacareers.com/profile/job_details/1238249364564427/", "last_modified": "2026-07-29T01:17:34-07:00" } ], "source_url": "https://www.metacareers.com/jobsearch/sitemap.xml" } } ```
/meta-jobs/jobReturns one Meta Careers posting by its numeric job id (the `id` field returned by search or list). Parsed from metacareers.com's server-rendered job detail page.
Response notes
- A nonexistent or removed job id returns a `404` (Meta's own job detail page structurally signals this — it is not inferred from an HTTP status alone). - `description` is cleaned plain text; Meta serves it as HTML internally. - `compensation_min`/`compensation_max`/`compensation_country` are only present for postings that carry Meta's public pay-range disclosure (not every posting does). Example response: ```json { "code": 200, "msg": "OK", "data": { "id": "1238249364564427", "title": "Product Manager", "locations": ["Menlo Park, CA"], "departments": ["Product Management"], "description": "Build products used by billions of people...", "responsibilities": ["Define product strategy", "Partner with engineering"], "minimum_qualifications": ["5+ years of product management experience"], "preferred_qualifications": ["MBA or equivalent experience"], "compensation_min": "$173,000/year", "compensation_max": "$241,000/year", "compensation_country": "US", "url": "https://www.metacareers.com/profile/job_details/1238249364564427/" } } ```
Related APIs
Business & Market Intelligence
Turn public GitHub ecosystem signals into structured data for developer-market research, open-source intelligence, recruiting, and AI-agent workflows.
Business & Market Intelligence
Collect public TrustMRR startup marketplace and leaderboard data as normalized JSON for startup research, SaaS discovery, and market intelligence workflows.
Business & Market Intelligence
Add website and competitive intelligence signals from SimilarWeb to research pipelines.
Related dataset
Dataset · queryable JSON
Meta's open postings are also queryable in bulk alongside 18 other providers — filter by department, location, employment type, or remote flag over one REST call.
Explore the dataset →How to scrape Meta Jobs
metacareers.com's own search facets aren't a title/description search — they match team, technology, location, or req code. Crawlora's Meta Jobs endpoints normalize postings directly, including a full-catalog listing call for metacareers.com's entire open-requisition set.
Filter by repeatable team/technology, employment-type, and office facets (OR'd), remote-only, and sort — or skip filters and call the catalog-listing endpoint for every open role at once.
Pass the facets to Crawlora's Meta Jobs search endpoint, or page through the catalog-listing endpoint.
Receive normalized postings — title, team, location, apply URL — in one JSON shape, or fetch one posting in full by its Meta job id.
Monitor a team or office over time for hiring-trend signals, or aggregate alongside the Jobs dataset for talent-market research.
FAQ
Send team/technology, employment-type, or office facets to Crawlora's Meta Jobs search endpoint — or call the catalog-listing endpoint for metacareers.com's entire open-requisition set in one call — and get normalized postings without reverse-engineering Meta's own facet format. Collect only public data and respect Meta's terms.
No — the q parameter is a facet-name keyword matching team, technology, location, or ref/req code, not a free-text title/description search. Use the catalog-listing endpoint if you want every open role regardless of keyword.
Yes — pass the Meta job id to the single-posting endpoint for the full listing.