Skip to main content
POST
Scrape Career Pages
Triggers a career page scrape for a given company URL. The scraper maps the company’s website, identifies career pages, extracts job listings, and returns structured job posting data. The pipeline runs asynchronously. Use the returned run_id to poll for results.
target_titles and target_titles_prompt are two ways to express the same title filter and are mutually exclusive — sending both returns 422. Use target_titles for a fixed list, or target_titles_prompt for open-ended roles.
Timing guidance: Most scrapes complete within 2-5 minutes. Companies with many pages or ATS-hosted job boards may take longer. Poll every 15-30 seconds.

How it works

  1. Maps the company website to discover URLs
  2. Identifies career/jobs pages using pattern matching and AI filtering
  3. Scrapes each career page and extracts job listings
  4. Applies optional title/location filters (pass target_titles_prompt to drive AI title filtering for open-ended role sets, e.g. “any physician role”)
  5. Analyzes each job posting in detail (salary, requirements, hiring manager, etc.)
If the company uses an external ATS (Greenhouse, Lever, Workday, Ashby, etc.), the scraper follows the redirect and paginates through all listings automatically.

Example responses

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
company_url
string
required
company_name
string | null
max_pages
integer | null
default:10
target_titles
string[] | null

Explicit list of target job titles. Mutually exclusive with target_titles_prompt — passing both returns HTTP 422.

target_titles_prompt
string | null

Natural-language instruction telling the AI filter which job titles to keep and which to reject. Use instead of target_titles when the target roles are open-ended (e.g. 'any physician role'). When set, the title keyword pre-filter is bypassed and the LLM decides per the prompt. Mutually exclusive with target_titles — passing both returns HTTP 422.

target_locations
string[] | null
filters
ScrapeFilters · object | null
known_career_page_url
string | null
known_career_page_urls
string[] | null

Response

Successful Response

request_id
string
required
status
string
default:QUEUED