> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sentrion.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Company Jobs (Legacy)

> Deprecated — use POST /api/v1/company-jobs/search instead

<Warning>
  This endpoint is **deprecated**. Use the new [Company Jobs](/api-reference/company-jobs) endpoint (`POST /api/v1/company-jobs/search`) instead, which adds industry filters, location exclusions, salary filters, and enriched company details.
</Warning>

Search for job postings from specific companies. Filter results by location, department, seniority level, keywords, 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

You must provide at least one of `company_name`, `company_domain`, or `company_linkedin_url` to identify the target company.

### Company Identification

<ParamField body="company_name" type="string">
  The name of the company to search for.
</ParamField>

<ParamField body="company_domain" type="string">
  The company's website domain (e.g., `apple.com`).
</ParamField>

<ParamField body="company_linkedin_url" type="string">
  The company's LinkedIn profile URL.
</ParamField>

<ParamField body="company_broad_search" type="boolean" default="false">
  If `true`, performs a broader, less exact search for the company name.
</ParamField>

### Location Filters

<ParamField body="jobs_locations" type="array">
  A list of location objects to filter jobs by.

  <Expandable title="Location Object Properties">
    <ParamField body="country" type="string">
      The country (e.g., `United States`).
    </ParamField>

    <ParamField body="state" type="string">
      The state or province (e.g., `California`).
    </ParamField>

    <ParamField body="city" type="string">
      The city (e.g., `Cupertino`).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="is_remote" type="boolean">
  Filter by remote status. `true` returns only remote jobs, `false` returns only non-remote jobs, `null` includes both.
</ParamField>

### Date Filters

<ParamField body="published_after" type="string">
  Start date for the job search in `YYYY-MM-DD` format.
</ParamField>

<ParamField body="published_before" type="string">
  End date for the job search in `YYYY-MM-DD` format.
</ParamField>

### Job Filters

<ParamField body="department" type="array">
  Filter by department. Example: `["Engineering", "Product Management"]`
</ParamField>

<ParamField body="job_type" type="array">
  Filter by job type. Possible values: `Full Time`, `Part Time`, `Contract`, `Internship`, `Volunteer`.
</ParamField>

<ParamField body="seniority_level" type="array">
  Filter by seniority level. Possible values: `Entry Level`, `Mid Level`, `Executive Level`.
</ParamField>

### Keyword Filters

<ParamField body="job_keywords" type="object">
  Keywords to search for in job titles and descriptions.

  <Expandable title="Job Keywords Object Properties">
    <ParamField body="title" type="array">
      Search terms for the job title.
    </ParamField>

    <ParamField body="description" type="array">
      Search terms for the job description.
    </ParamField>

    <ParamField body="mode" type="string" default="and">
      Logic mode: `and` (all terms must match) or `or` (any term can match).
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="exclude_job_keywords" type="object">
  Keywords to exclude from job titles and descriptions.

  <Expandable title="Exclude Keywords Object Properties">
    <ParamField body="title" type="array">
      Keywords to exclude from job titles.
    </ParamField>

    <ParamField body="description" type="array">
      Keywords to exclude from job descriptions.
    </ParamField>

    <ParamField body="mode" type="string" default="and">
      Exclusion mode: `and` (exclude if all terms present) or `or` (exclude if any term present).
    </ParamField>
  </Expandable>
</ParamField>

### Job Board Filters

<ParamField body="job_boards" type="boolean">
  Filter by job boards. `true` includes only job board results, `false` excludes them, `null` includes both.
</ParamField>

<ParamField body="include_job_boards" type="array">
  List of job board names to include in search results.
</ParamField>

<ParamField body="exclude_job_boards" type="array">
  List of job board names to exclude from search results.
</ParamField>

### Other Options

<ParamField body="exclude_duplicates" type="boolean" default="true">
  If `false`, includes duplicate job postings.
</ParamField>

<ParamField body="is_agency" type="boolean" default="true">
  If `false`, excludes jobs from recruitment agencies.
</ParamField>

<ParamField body="limit" type="integer" default="100">
  The number of results to return. Min: `1`, Max: `500`.
</ParamField>

<ParamField body="next_cursor" type="string">
  The cursor for fetching the next page of results. See [Pagination](#pagination).
</ParamField>

## Response

<ResponseField name="success" type="boolean" required>
  `true` for successful requests, `false` for failed requests.
</ResponseField>

<ResponseField name="data" type="object">
  The response data wrapper. `null` if `success` is `false`.

  <Expandable title="Data Object Properties">
    <ResponseField name="company_details" type="object">
      Detailed information about the company.

      <Expandable title="Company Details Properties">
        <ResponseField name="company_name" type="string">
          The official name of the company.
        </ResponseField>

        <ResponseField name="description" type="string">
          Company description or about section.
        </ResponseField>

        <ResponseField name="industry" type="string">
          The industry the company operates in.
        </ResponseField>

        <ResponseField name="employee_data" type="object">
          Information about company size.

          <Expandable title="Employee Data Properties">
            <ResponseField name="headcount" type="integer">
              Exact number of employees.
            </ResponseField>

            <ResponseField name="size_range" type="string">
              Employee count range (e.g., "1001-5000").
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="website" type="string">
          Company website URL.
        </ResponseField>

        <ResponseField name="linkedin_url" type="string">
          Company LinkedIn profile URL.
        </ResponseField>

        <ResponseField name="locations" type="array">
          List of company locations.
        </ResponseField>

        <ResponseField name="founded_date" type="object">
          When the company was founded.
        </ResponseField>

        <ResponseField name="specialties" type="array">
          List of company specialties.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="jobs" type="array" required>
      List of job objects matching the criteria.

      <Expandable title="Job Object Properties">
        <ResponseField name="Job Title" type="string">
          The title of the job.
        </ResponseField>

        <ResponseField name="Job Type" type="string">
          The type of job (e.g., `Full Time`, `Contract`).
        </ResponseField>

        <ResponseField name="Job Description" type="string">
          The full description of the job.
        </ResponseField>

        <ResponseField name="Company Name" type="string">
          The name of the hiring company.
        </ResponseField>

        <ResponseField name="City" type="string">
          The city where the job is located.
        </ResponseField>

        <ResponseField name="State" type="string">
          The state or province.
        </ResponseField>

        <ResponseField name="Country" type="string">
          The country.
        </ResponseField>

        <ResponseField name="Is Remote" type="boolean">
          Whether the job is remote.
        </ResponseField>

        <ResponseField name="Post Date" type="string">
          The date the job was posted (YYYY-MM-DD).
        </ResponseField>

        <ResponseField name="Valid Through" type="string">
          The date the job posting expires.
        </ResponseField>

        <ResponseField name="Job URL" type="string">
          URL to the original job posting.
        </ResponseField>

        <ResponseField name="Apply URL" type="string">
          Direct URL to apply for the job.
        </ResponseField>

        <ResponseField name="Job Board" type="string">
          The source job board.
        </ResponseField>

        <ResponseField name="Department Name" type="array">
          Department(s) for the job.
        </ResponseField>

        <ResponseField name="Seniority Level" type="string">
          Seniority level of the position.
        </ResponseField>

        <ResponseField name="Salary Offered" type="string">
          Salary information as a raw string.
        </ResponseField>

        <ResponseField name="Salary From" type="float">
          Lower bound of the salary range.
        </ResponseField>

        <ResponseField name="Salary To" type="float">
          Upper bound of the salary range.
        </ResponseField>

        <ResponseField name="Salary Currency" type="string">
          Currency of the salary (e.g., `USD`).
        </ResponseField>

        <ResponseField name="Skills" type="array">
          List of skills inferred from the description.
        </ResponseField>

        <ResponseField name="Logo URL" type="string">
          URL to the company's logo.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="total" type="integer" required>
      Number of jobs returned in this response.
    </ResponseField>

    <ResponseField name="total_jobs_found" type="integer" required>
      Total number of jobs found for the entire query.
    </ResponseField>

    <ResponseField name="credits_used" type="integer" required>
      Number of credits used for this request.
    </ResponseField>

    <ResponseField name="credits_remaining" type="integer" required>
      Remaining credits for the API key.
    </ResponseField>

    <ResponseField name="next_cursor" type="string">
      Cursor for the next page. `null` if this is the last page.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="error" type="object">
  Error details. `null` if `success` is `true`.

  <Expandable title="Error Object Properties">
    <ResponseField name="code" type="string">
      Error code identifying the type of error.
    </ResponseField>

    <ResponseField name="message" type="string">
      Human-readable error message.
    </ResponseField>

    <ResponseField name="details" type="array">
      Additional validation error details.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://api.sentrion.ai/api/v1/search/company-jobs' \
    -H 'Authorization: Bearer YOUR_API_KEY' \
    -H 'Content-Type: application/json' \
    -d '{
      "company_name": "Apple",
      "company_domain": "apple.com",
      "jobs_locations": [
        {
          "country": "United States",
          "state": "California",
          "city": "Cupertino"
        }
      ],
      "department": ["Engineering"],
      "job_keywords": {
        "title": ["Engineer"],
        "mode": "or"
      },
      "seniority_level": ["Mid Level"],
      "limit": 50
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.sentrion.ai/api/v1/search/company-jobs',
      headers={
          'Authorization': 'Bearer YOUR_API_KEY',
          'Content-Type': 'application/json'
      },
      json={
          'company_name': 'Apple',
          'company_domain': 'apple.com',
          'jobs_locations': [
              {
                  'country': 'United States',
                  'state': 'California',
                  'city': 'Cupertino'
              }
          ],
          'department': ['Engineering'],
          'job_keywords': {
              'title': ['Engineer'],
              'mode': 'or'
          },
          'seniority_level': ['Mid Level'],
          'limit': 50
      }
  )

  data = response.json()
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.sentrion.ai/api/v1/search/company-jobs', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      company_name: 'Apple',
      company_domain: 'apple.com',
      jobs_locations: [
        {
          country: 'United States',
          state: 'California',
          city: 'Cupertino'
        }
      ],
      department: ['Engineering'],
      job_keywords: {
        title: ['Engineer'],
        mode: 'or'
      },
      seniority_level: ['Mid Level'],
      limit: 50
    })
  });

  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Success Response theme={null}
  {
    "success": true,
    "data": {
      "company_details": {
        "company_name": "Apple",
        "description": "We're a diverse collective of thinkers and doers...",
        "industry": "Computers and Electronics Manufacturing",
        "employee_data": {
          "headcount": 170873,
          "size_range": null
        },
        "website": "http://www.apple.com/careers",
        "linkedin_url": "https://www.linkedin.com/company/apple/",
        "locations": [
          {
            "address_line1": "1 Apple Park Way",
            "city": "Cupertino",
            "state": "California",
            "country": "US",
            "is_headquarters": true
          }
        ],
        "founded_date": {
          "year": 1976
        },
        "specialties": [
          "Innovative Product Development",
          "World-Class Operations"
        ]
      },
      "jobs": [
        {
          "Job Type": "Full Time",
          "Job Title": "Analog/Mixed-Signal IC Design Engineer",
          "Apply URL": null,
          "Post Date": "2025-04-01",
          "City": "San Diego",
          "Job Board": "Theladders",
          "Job Description": "Summary At Apple, we work every day...",
          "Country": "US",
          "Company Name": "Apple",
          "State": "CA",
          "Is Remote": false,
          "Job URL": "https://www.theladders.com/job/...",
          "Department Name": ["Engineering"],
          "Seniority Level": "Entry Level",
          "Skills": ["Signal Processing", "Design Reviews"]
        }
      ],
      "total": 1,
      "total_jobs_found": 1,
      "credits_used": 1,
      "credits_remaining": 999,
      "next_cursor": "some_opaque_cursor_string"
    },
    "error": null
  }
  ```

  ```json Error Response (422) theme={null}
  {
    "success": false,
    "data": null,
    "error": {
      "code": "validation_error",
      "message": "Input validation failed",
      "details": [
        {
          "loc": ["body", "limit"],
          "msg": "Input should be less than or equal to 500",
          "type": "less_than_equal"
        }
      ]
    }
  }
  ```
</ResponseExample>

## Pagination

This API uses cursor-based pagination to navigate through large result sets.

<Steps>
  <Step title="Make your first request">
    Make your initial request with `next_cursor` set to `null` or omitted.
  </Step>

  <Step title="Check for more results">
    If the response contains a non-null `next_cursor` string, more results are available.
  </Step>

  <Step title="Fetch the next page">
    Use the `next_cursor` value from the previous response in your next request to fetch the subsequent page.
  </Step>

  <Step title="Continue until complete">
    When `next_cursor` is `null` in the response, you have reached the end of the results.
  </Step>
</Steps>

<CodeGroup>
  ```python Python Pagination Example theme={null}
  import requests

  def fetch_all_jobs(company_name, api_key):
      all_jobs = []
      cursor = None
      
      while True:
          response = requests.post(
              'https://api.sentrion.ai/api/v1/search/company-jobs',
              headers={'Authorization': f'Bearer {api_key}'},
              json={
                  'company_name': company_name,
                  'limit': 100,
                  'next_cursor': cursor
              }
          )
          
          data = response.json()
          all_jobs.extend(data['data']['jobs'])
          
          cursor = data['data']['next_cursor']
          if cursor is None:
              break
      
      return all_jobs
  ```

  ```javascript Node.js Pagination Example theme={null}
  async function fetchAllJobs(companyName, apiKey) {
    const allJobs = [];
    let cursor = null;
    
    while (true) {
      const response = await fetch('https://api.sentrion.ai/api/v1/search/company-jobs', {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${apiKey}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({
          company_name: companyName,
          limit: 100,
          next_cursor: cursor
        })
      });
      
      const data = await response.json();
      allJobs.push(...data.data.jobs);
      
      cursor = data.data.next_cursor;
      if (!cursor) break;
    }
    
    return allJobs;
  }
  ```
</CodeGroup>
