---
title: "Job postings search"
method: POST
path: "/v1/job-search"
tags: ["Search"]
---

# Job postings search

`POST /v1/job-search`

Search for job postings with flexible filtering capabilities

<span>⚡ <strong>Rate limit:</strong> 120 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 1 credit per job posting found&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `searchParams` object, required — Job search filter parameters
    - `companies` union — Filter jobs by one type of company identifier with array values
      - object
        - `identifier` 'linkedinSlug', required
        - `value` string[], required — Array of LinkedIn company slugs (e.g., ['microsoft'])
      - object
        - `identifier` 'domain', required
        - `value` string[], required — Array of company domains (e.g., ['microsoft.com'])
      - object
        - `identifier` 'linkedinUrl', required
        - `value` string[], required — Array of LinkedIn company URLs, e.g., https://www.linkedin.com/company/microsoft/
      - object
        - `identifier` 'linkedinOrgID', required
        - `value` string[], required — Array of LinkedIn organization IDs (numeric strings), e.g., '1035' for Microsoft
    - `title` string[], nullable — Array of job titles for partial match (e.g., 'Software Engineer', 'Manager')
    - `isActive` 'true' | 'false' | 'no_preference' | 'null', nullable — Filter by job status: true=active, false=closed, no_preference=both
    - `postedAt` union — Filter by job posting date (supports relative and absolute dates)
      - object
        - `strategy` 'absolute', required
        - `range` object, nullable
          - `lowerBound` string, nullable
          - `upperBound` string, nullable
      - object
        - `strategy` 'relative', required
        - `window` union
          - object
            - `method` 'lastN', required
            - `period` 'day' | 'week' | 'month' | 'quarter' | 'year', required
            - `quantity` number, required
          - object
            - `method` 'within', required
            - `period` 'day' | 'week' | 'month' | 'quarter' | 'year', required
            - `lowerBound` number, nullable
            - `upperBound` number, nullable
          - object
            - `method` 'calendar', required
            - `which` 'current' | 'previous', required
            - `period` 'day' | 'week' | 'month' | 'quarter' | 'year', required
    - `numApplicants` object, nullable — Filter by number of applicants (range)
      - `lowerBound` integer, nullable
      - `upperBound` integer, nullable
    - `jobFunctions` string[], nullable — Array of job functions
    - `industries` string[], nullable — Array of industries
    - `annualSalaryUsd` object, nullable — Filter by annual salary range in USD
      - `lowerBound` integer, nullable
      - `upperBound` integer, nullable
    - `yearsOfExperience` object, nullable — Filter by years of experience required
      - `lowerBound` integer, nullable
      - `upperBound` integer, nullable
    - `jobLocationType` string[], nullable — Filter by work location type. Deprecated.
    - `employmentType` string[], nullable — Array of employment types (e.g., Full-time, Part-time, Contract, Internship)
    - `seniorityLevel` string[], nullable — Array of seniority levels (e.g., Entry level, Mid-Senior level, Director)
    - `countryOrRegionCode` string[], nullable — Array of country or region codes (e.g., USA, IND, X-ANGLOSPHERE)
  - `pageSize` integer — Number of jobs to return per page (max 1000)
  - `cursor` string, nullable — Pagination cursor for fetching next page of results

## Response `200`

Default Response

- object
  - `output` object, required
    - `data` object[], required — Array of job postings matching the search criteria
      - `job_id` string, required — Unique job identifier
      - `title` string, nullable — Job title/position
      - `company_name` string, nullable — Company name
      - `company_logo_url` string, uri, nullable — Company logo URL
      - `posted_at` string, nullable — When the job was posted
      - `job_url` string, uri, nullable — LinkedIn job URL
      - `applicant_range` object, nullable — Applicant count range
        - `gte` number, nullable
        - `lte` number, nullable
      - `description` string, nullable — Job description text
      - `seniority_level` string, nullable — Seniority level (e.g., 'Entry level', 'Senior level')
      - `employment_type` string, nullable — Employment type (e.g., 'Full-time', 'Part-time')
      - `job_function` string[], nullable — Job function categories
      - `raw_industries` string, nullable — Raw industries string from LinkedIn
      - `standard_industries` string[], nullable — Standardized industry categories
      - `compensation_range` object, nullable — Structured compensation range with currency and period
        - `lte` object, nullable
          - `currencyUnit` string, required — These are just currency symbols, like CA$ or £
          - `number` number, required
          - `period` 'hr' | 'm' | 'yr' | 'daily', required
        - `gte` object, nullable
          - `currencyUnit` string, required — These are just currency symbols, like CA$ or £
          - `number` number, required
          - `period` 'hr' | 'm' | 'yr' | 'daily', required
      - `annual_salary_usd` object, nullable — Annual salary approximation in USD
        - `gte` number, nullable
        - `lte` number, nullable
      - `years_of_experience` object, nullable — Years of experience required
        - `gte` number, nullable
        - `lte` number, nullable
      - `standardized_location` object, nullable — Standardized location with geo data including lat/lon
        - `street_address` string, nullable
        - `neighborhood` string, nullable
        - `city` string, nullable
        - `state_name` string, nullable
        - `state_code` string, nullable
        - `county` string, nullable
        - `postal_code` string, nullable
        - `country_code` string, nullable
        - `country_name` string, nullable
        - `coordinates` object, nullable
          - `lat` number, required
          - `lon` number, required
        - `timezone` string, nullable
        - `full_address` string, nullable
        - `formatted_address` string, nullable
      - `job_location_type` 'On-site' | 'Remote' | 'Hybrid' | 'null', nullable — Work location type
      - `status` 'active' | 'closed', required — Job status
    - `nextCursor` string, nullable — Cursor for fetching the next page of results. Null if no more results available
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/revisions/5b9ee17f79e9/schema)
