Skip to main content
POST
/
api
/
v3
/
jobs-search
/
search
curl -X POST 'https://api.sentrion.ai/api/v3/jobs-search/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "jobs_locations": [
      {
        "country": "United States",
        "state": "California",
        "city": "San Francisco"
      }
    ],
    "department": ["Engineering", "Software Engineering"],
    "industry": ["Computer Software", "Internet"],
    "job_keywords": {
      "title": ["software engineer", "backend developer"],
      "description": ["python", "kubernetes"],
      "mode": "or"
    },
    "exclude_job_keywords": {
      "title": ["intern", "junior"],
      "mode": "or"
    },
    "job_type": ["Full Time", "Contract"],
    "seniority_level": ["Mid Level"],
    "is_remote": true,
    "salary_data_available": true,
    "exclude_duplicates": true,
    "limit": 50
  }'
{
  "success": true,
  "data": {
    "jobs": [
      {
        "Job Type": "Full Time",
        "Job Title": "Senior Software Engineer",
        "Apply URL": "https://careers.techcorp.com/apply/98765",
        "Post Date": "2026-03-15",
        "Valid Through": "2026-04-15",
        "City": "San Francisco",
        "Job Board": "Linkedin",
        "Job Description": "We are looking for a Senior Software Engineer to join our platform team.",
        "Country": "United States",
        "Company Name": "TechCorp Inc.",
        "State": "California",
        "Salary Offered": "$150,000 - $200,000/year",
        "Logo URL": "https://media.licdn.com/dms/image/C4D0BAQH/company-logo.png",
        "Is Remote": false,
        "Job URL": "https://www.linkedin.com/jobs/view/3847562910",
        "Department Name": ["Engineering"],
        "Seniority Level": "Mid Level",
        "Salary Currency": "USD",
        "Salary To": 200000.0,
        "Salary From": 150000.0,
        "Skills": ["Python", "Kubernetes", "AWS"]
      }
    ],
    "total": 1,
    "total_jobs_found": 2847,
    "credits_used": 1,
    "credits_remaining": 9998,
    "search_after": [1710500000000, 67890]
  },
  "error": null
}
This endpoint requires special access. Please contact us to enable historical data on your API key.
Search up to 6 years of historical jobs across all companies without providing company identity inputs. Filter by location, department, industry, keywords, job type, seniority level, job board, salary availability, and more.

Authentication

This endpoint requires a Bearer token. Enter your API key in the authorization field above — the Bearer prefix is added automatically.

Request Body

Location Filters

jobs_locations
array
Filter jobs by location. Each item supports country, state, and city.
exclude_jobs_locations
array
Exclude jobs from specific locations. Uses the same location object shape as jobs_locations.
is_remote
boolean
Filter by remote status. true returns only remote jobs, false returns only non-remote jobs, and null includes both.
country_exists
boolean
Filter for jobs that include country information.

Date Filters

published_after
string
Start date for the search in YYYY-MM-DD format. If omitted, the API defaults this to 2 months before the request date. This value cannot be older than 6 years before the request date.
published_before
string
End date for the search in YYYY-MM-DD format. If omitted, the API defaults this to the day after the request date.

Job Filters

department
array
Filter by department.
industry
array
Filter by industry. Values are case-insensitive.
job_type
array
Filter by job type.
seniority_level
array
Filter by seniority level.
salary_data_available
boolean
default:"true"
Filter for jobs that include salary data.
is_agency
boolean
default:"true"
Include agency-posted jobs. Set to false to exclude them.

Keyword Filters

job_keywords
object
Keywords to search for in job titles and descriptions.
exclude_job_keywords
object
Keywords to exclude from job titles and descriptions.

Job Board Filters

job_boards
boolean
Filter by job board sources. true includes only jobs sourced from job boards, false excludes them, and null includes both job boards and direct company career pages.
include_job_boards
array
Only include results from specific job boards. Values are case-insensitive.
exclude_job_boards
array
Exclude results from specific job boards. Uses the same accepted values shown in include_job_boards.

Other Options

exclude_duplicates
boolean
default:"true"
Remove duplicate job listings from results.
limit
integer
default:"100"
Maximum number of results to return. Min: 10, Max: 100.
search_after
array
Pagination cursor from a previous response. Pass the array exactly as returned, in the form [timestamp, cursor_id].

Response

success
boolean
required
true if the search completed successfully.
data
object
The response payload. null when the request fails.
error
string
Error message when applicable. null for successful responses with results.
All job object fields may be null if the source posting did not contain that information.
curl -X POST 'https://api.sentrion.ai/api/v3/jobs-search/search' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "jobs_locations": [
      {
        "country": "United States",
        "state": "California",
        "city": "San Francisco"
      }
    ],
    "department": ["Engineering", "Software Engineering"],
    "industry": ["Computer Software", "Internet"],
    "job_keywords": {
      "title": ["software engineer", "backend developer"],
      "description": ["python", "kubernetes"],
      "mode": "or"
    },
    "exclude_job_keywords": {
      "title": ["intern", "junior"],
      "mode": "or"
    },
    "job_type": ["Full Time", "Contract"],
    "seniority_level": ["Mid Level"],
    "is_remote": true,
    "salary_data_available": true,
    "exclude_duplicates": true,
    "limit": 50
  }'
{
  "success": true,
  "data": {
    "jobs": [
      {
        "Job Type": "Full Time",
        "Job Title": "Senior Software Engineer",
        "Apply URL": "https://careers.techcorp.com/apply/98765",
        "Post Date": "2026-03-15",
        "Valid Through": "2026-04-15",
        "City": "San Francisco",
        "Job Board": "Linkedin",
        "Job Description": "We are looking for a Senior Software Engineer to join our platform team.",
        "Country": "United States",
        "Company Name": "TechCorp Inc.",
        "State": "California",
        "Salary Offered": "$150,000 - $200,000/year",
        "Logo URL": "https://media.licdn.com/dms/image/C4D0BAQH/company-logo.png",
        "Is Remote": false,
        "Job URL": "https://www.linkedin.com/jobs/view/3847562910",
        "Department Name": ["Engineering"],
        "Seniority Level": "Mid Level",
        "Salary Currency": "USD",
        "Salary To": 200000.0,
        "Salary From": 150000.0,
        "Skills": ["Python", "Kubernetes", "AWS"]
      }
    ],
    "total": 1,
    "total_jobs_found": 2847,
    "credits_used": 1,
    "credits_remaining": 9998,
    "search_after": [1710500000000, 67890]
  },
  "error": null
}

Pagination

This API uses search_after pagination.
1

Make the first request

Omit search_after or set it to null.
2

Read the cursor

If the response includes a non-null search_after array, more results are available.
3

Fetch the next page

Pass the returned search_after array into the next request unchanged.
4

Stop when complete

When search_after is null, you have reached the end of the result set.
import requests

def fetch_all_jobs(api_key):
    all_jobs = []
    search_after = None

    while True:
        response = requests.post(
            'https://api.sentrion.ai/api/v3/jobs-search/search',
            headers={'Authorization': f'Bearer {api_key}'},
            json={
                'jobs_locations': [{'country': 'United States'}],
                'limit': 100,
                'search_after': search_after
            }
        )

        payload = response.json()
        all_jobs.extend(payload['data']['jobs'])
        search_after = payload['data']['search_after']

        if not search_after:
            break

    return all_jobs

Rate Limits

This endpoint is rate-limited to 100 requests per minute per API key.

Constraints

  • published_after defaults to 2 months before the request date when omitted.
  • published_after cannot be older than 6 years before the request date.
  • published_before defaults to the day after the request date when omitted.
  • published_after must be earlier than published_before.
  • Credits are charged only for new jobs within the current billing cycle.