Overview
Fetch full details for a single job by ID on any supported provider. This is a universal alternative to fetchLinkedInJob() that works across all scrapers. Use this when you have a job ID from search results and need to fetch the complete job details including full description.Signature
Parameters
Site name. Supported values:
"indeed""linkedin""glassdoor""zip_recruiter""bayt""naukri""bdjobs"
"ziprecruiter", "zip_recruiter", and "zip-recruiter" all work.Provider-specific job ID. Format varies by site:
| Site | ID Format | Example |
|---|---|---|
| Indeed | Job key | "fdde406379455a1e" |
| Numeric ID | "4127292817" | |
| Glassdoor | Listing ID | "123456789" |
| ZipRecruiter | Listing key | "some-listing-key" |
| Bayt | Job path | "/en/job-title-1234567" |
| Naukri | Numeric ID | "123456789" |
| BDJobs | Numeric ID | "123456" |
Optional configuration object
Description format:
"markdown"— converts HTML to Markdown (default)"html"— preserves original HTML"plain"— strips all markup
Proxy server(s) for the request. Accepts formats:
"host:port""user:pass@host:port""http://host:port""socks5://host:port"
Country code for Indeed/Glassdoor. See Country Support for valid values.
Pre-built credentials object for authenticated scraping
Enable authenticated scraping fallback when anonymous access is blocked
Return Value
Returns aFlatJobRecord object (same shape as search results from scrapeJobs()), or null if the job wasn’t found.
Unique job ID with site prefix (e.g.
"in-fdde406379455a1e")Source site key (e.g.
"indeed", "linkedin")Canonical job URL on the board
Direct employer/ATS URL (if available)
Job title
Company name
Formatted as
"City, State, Country"ISO date
"YYYY-MM-DD"Comma-separated employment types (e.g.
"fulltime, contract")Full job description, formatted according to the
format optionHow salary was obtained:
"direct_data" or "description"Pay interval:
"yearly", "monthly", "weekly", "daily", or "hourly"Minimum salary/pay amount
Maximum salary/pay amount
Currency code (e.g.
"USD", "EUR")Whether the job is remote
Seniority level (LinkedIn only)
Job function category (LinkedIn only)
Industry classification (LinkedIn, Indeed)
Company logo URL (Indeed, Naukri)
Company page on the job board (LinkedIn, Glassdoor)
Company’s own website URL (LinkedIn, Indeed)
Examples
Fetch Indeed Job
Fetch LinkedIn Job
Fetch Glassdoor Job with HTML Format
Fetch ZipRecruiter Job with Proxy
Fetch from Search Results
Handle Missing Jobs
Fetch Multiple Jobs Concurrently
Error Handling
Supported Sites
| Site | Supported | Notes |
|---|---|---|
| Indeed | ✅ | Fetches full description from job page |
| ✅ | Uses existing LinkedIn detail fetcher | |
| Glassdoor | ✅ | Requires CSRF token initialization |
| ZipRecruiter | ✅ | Parses full HTML description |
| Bayt | ✅ | Scrapes job detail page |
| Naukri | ✅ | Uses REST API |
| BDJobs | ✅ | Extracts from detail page |
| ❌ | Not supported (returns error) | |
| Google Careers | ❌ | Not supported (returns error) |
Notes
- Returns
nullif the job doesn’t exist or is no longer available - Each call initializes a new scraper session which is automatically closed after fetching
- For bulk operations, consider using
scrapeJobs()withlinkedin_fetch_description: trueorindeed_fetch_description: true - The returned record is flattened (same format as
scrapeJobs()results) - Job IDs should be taken from search results or provider URLs
Related
- scrapeJobs() - Search and scrape multiple job boards
- fetchLinkedInJob() - LinkedIn-specific detail fetcher
- Types Reference - Full type definitions
