Welcome to the Hiring Signals API
The Hiring Signals API provides timely insights on open job postings across the web. Track which companies are hiring, what roles they’re filling, and where — with precise filters for positions, departments, seniority levels, team size, applicant counts, and geographic targeting.Hiring Signals Endpoint
View the complete OpenAPI specification
Count Mode
You can get the total number of results matching any filter combination without consuming credits by addingcount=true to your request. This returns an empty data array with full pagination metadata, including totalCount.
Key Features
- Real-time Signals: Hiring signals aggregated continuously from web sources
- Role-aware Filters: Filter by positions, departments, and seniority levels
- Location Targeting: Filter by country, US state, and city
- Category Filters: Filter by industry categories and keyword-based subcategories
- Company Filters: Filter by team size and applicant count ranges
- Flexible Sorting: Sort by date posted, title, company name, location, or ingestion date
- Pagination Support: Efficiently retrieve large datasets with up to 100 results per page
- Credit-based Usage: Transparent credit consumption per API call
Response: company vs. job location
Each row includescompanyCountry (employer HQ) and jobCountry (listing location). Signal rows also include companySubcategory when the company has been classified. See Company fields in signal responses for naming conventions shared across signal APIs.
The same distinction applies to filtering: the countries parameter matches either country (job listing or company HQ), while job_countries matches the job listing country only. Use job_countries when you care about where the job is, not where the company is based — e.g. a Berlin listing from a US-headquartered company matches job_countries=DE but not job_countries=US.
Service Level
- Rate Limit: Based on your subscription tier
- Uptime: 99% guaranteed uptime
- Data Freshness: Real-time aggregation ensures up-to-date signals
- Maximum Results: Up to 100 results per page
Authentication
All API endpoints require a Bearer token in theAuthorization header.
Matching by Company URL (Recommended)
If you know a company’s website domain or LinkedIn page, query by URL instead of by name. Name search is fuzzy and can return lookalikes (Novartis also matches Novartis UK); URL identifiers match exactly one company.
company_domain:novartis.com,www.novartis.com,https://www.novartis.com/,https://novartis.com/any/path— scheme,www., port, path and trailing slash are ignored. Values that can’t be reduced to a domain return400.company_linkedin_url:linkedin.com/company/novartis,https://www.linkedin.com/company/Novartis/—http/https,www.and trailing slash are ignored, the slug is case-insensitive. URLs that aren’t LinkedIn company pages (e.g. personal/in/profiles) return400.
AND — company_domain=novartis.com&company_name=Acme returns empty because they disagree.
Match confidence. Every result row includes match_confidence:
Query Parameters
Pagination
Date Filters
Text Search & Location
Category Filters
Role Category Filters
Company Filters
Sorting
Response Structure
All successful responses follow this structure:Error Handling
The API returns standard HTTP status codes:- 200: Success
- 401: Unauthorized - Invalid or missing API key
- 429: Rate limit exceeded
- 500: Internal server error
