---
title: "Search blue collar job listings"
method: POST
path: "/v1/blue-collar-jobs/search"
tags: ["Blue collar jobs"]
---

# Search blue collar job listings

`POST /v1/blue-collar-jobs/search`

## Request

- Base URL: `https://api.fiber.ai`
- URL: `https://api.fiber.ai/v1/blue-collar-jobs/search`
- Auth: none declared

Search blue collar and trade job postings. Ideal for finding service, manufacturing, trades, and other non-desk positions. Currently US-only. Supports search by company, job title/keyword, and location. Supports pagination via nextPageToken.

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

<span>💰 <strong>Cost:</strong> 2 credits per search&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

<span>⏱ <strong>Recommended timeout:</strong> 1 minute&nbsp;<span title="Recommended timeout: set your HTTP client timeout to at least 1 minute for this endpoint.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required: Your Fiber API key
  - `companySlug` string, nullable: Company identifier on the job board. Use the resolve-company endpoint to find this from a domain or name.
  - `query` string, nullable: Job title or keyword to search for (e.g. 'warehouse worker', 'forklift operator').
  - `location` string, nullable: US city, state, or region to search within (e.g. 'Philadelphia, PA', 'Texas'). Only US locations are supported.
  - `nextPageToken` string, nullable: Pagination token returned from a previous search. Pass to get the next page of results.

## Response `200`

Default Response

- object
  - `output` object, required
    - `jobs` object[], required: List of job listings matching the search.
      - `id` string, required: Unique job listing identifier.
      - `title` string, required: Job title.
      - `companyName` string, required: Name of the company that posted the job listing.
      - `location` string, required: Job location (city, state, or region).
      - `url` string, required: Direct URL to the full job listing.
      - `description` string, nullable: Brief description or snippet of the job posting.
      - `salary` object, nullable: Compensation information. Covers various forms of pay (hourly, daily, monthly, yearly). Null when not listed.
        - `text` string, required: Human-readable salary string as shown on the listing (e.g. '$18 - $22 an hour', 'From $45,000 a year').
        - `local` object, nullable: Parsed compensation in the listed currency. Null when the salary text uses an unrecognized format that could not be parsed into structured numbers.
          - `currency` string, nullable: ISO 4217 currency code (e.g. 'USD', 'CAD').
          - `min` number, nullable: Lower bound of compensation range.
          - `max` number, nullable: Upper bound of compensation range.
        - `usd` object, nullable: Compensation in USD. Null when the listing currency is not USD or could not be determined.
          - `min` number, nullable: Lower bound of compensation range in USD.
          - `max` number, nullable: Upper bound of compensation range in USD.
        - `period` 'hourly' | 'daily' | 'monthly' | 'yearly' | 'null', nullable: Pay period. Null when the listing does not specify a recognizable pay frequency.
      - `estimatedPostedAt` string, nullable: Estimated date the job was posted in ISO 8601 format. Derived from approximate relative time.
    - `estimatedJobCount` number, nullable: Estimated total number of matching jobs across all pages.
    - `nextPageToken` string, nullable: Pagination token. Pass in the next request to get more results. Null when no more pages are 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

## Changes

- **2026-07-31** `4002aa81d4fb`: 2 breaking, 1 info
  - the response property `advice` became nullable for the status `200`
  - the response property `advice` became optional for the status `200`
  - the `advice` response's property default value `` was removed for the status `200`
- **2026-07-13** `f14ac2efab0c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fiber/apis/fiber-ai-api/changes/v1/blue-collar-jobs/search/post.md)

---

[API](https://skmtc.dev/fiber/apis/fiber-ai-api.md) - [All operations](https://skmtc.dev/fiber/apis/fiber-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fiber/apis/fiber-ai-api/revisions/d8237cb5c35e?raw)
