Search and enumerate Meta's open requisitions straight from metacareers.com as normalized JSON from the Crawlora API, no scraping the careers site by hand.
When to use this skill
- "Search Meta jobs for <team/technology> in ."
- "What is Meta currently hiring for in AI/AR-VR/Security?"
- "Track every new Meta requisition this week." — walk
/meta-jobs/listbylast_modifiedon a schedule. - "Look up this Meta job id" — pull the full posting detail.
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
- Set
CRAWLORA_API_KEYin the environment before running the helper. - The helper reads
CRAWLORA_API_KEYfrom the environment and sends requests tohttps://api.crawlora.net/api/v1. Missing/invalid key →401.
How it works
- Full-catalog listing —
/meta-jobs/listpages through 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 vialast_modified. - Filtered search —
/meta-jobs/searchhits Meta's 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 AND together; an empty request returns Meta's entire open-requisition catalog in one response.qmatches team, technology, location, or ref/req-code — it is NOT a free-text search over job titles or descriptions. - Single-posting detail —
/meta-jobs/jobreturns one Meta Careers posting by its numeric job id (theidfield returned by search or list), parsed from metacareers.com's server-rendered job detail page.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Filtered search — AI team, remote-only, newest first:
scripts/crawlora.sh /meta-jobs/search teams="Artificial Intelligence" is_remote_only=true sort_by_new=true | jq '.'
# Full catalog, paged:
scripts/crawlora.sh /meta-jobs/list page=1 page_size=200 | jq '.'
# Single posting by id (id comes from search/list results):
scripts/crawlora.sh /meta-jobs/job id=1234567890123456 | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
Endpoint reference
See reference/endpoints.md for all Meta Jobs endpoints this skill uses.
Examples
- "Is Meta ramping up hiring in AR/VR?" —
/meta-jobs/searchteams=AR/VRsort_by_new=true, review the resulting postings' dates and locations for a hiring-velocity read. - Weekly new-requisition diff: page
/meta-jobs/listbylast_modified, store the id set, and diff against last week's run to surface newly-opened roles.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo. Key at https://crawlora.net. - Public data only — public postings from metacareers.com; respect Meta's terms.
- Security: key lives in
CRAWLORA_API_KEYonly — never hardcode, query-param, or commit it. qis a facet-name match, not full-text search — it matches team, technology, location, or ref/req-code, not job titles or descriptions; useteamsfor a topical filter instead.teamsandrolesare closed enums — seereference/endpoints.mdfor the exact values (team names double as technology names in the same field); values outside the enum won't match.officesis a repeatable location-id filter in Meta's own id format (e.g.menlo-park,london), not a free-text city name, and not a closed enum — get valid ids from search results.- Results are paginated on
/meta-jobs/list(page,page_size, max 200) — walk it to enumerate the full catalog.