---
title: "Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles. The endpoint interprets natural language queries and applies structured filters such as job titles, seniority, skills, locations, past jobs, education, and languages to identify relevant people. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request."
method: POST
path: "/fiber/v1/natural-language-search/profiles"
tags: ["Fiber AI"]
---

# Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles. The endpoint interprets natural language queries and applies structured filters such as job titles, seniority, skills, locations, past jobs, education, and languages to identify relevant people. Pagination billing: call the first page normally and save billing.requestId from the Orthogonal /v1/run response. For later page, offset, or cursor calls on the same logical search, pass parentRequestId with unchanged non-pagination parameters. Valid continuation calls still get their own request IDs and quoted price, but are charged 0. Changing filters starts a new billable request.

`POST /fiber/v1/natural-language-search/profiles`

## Request

- Base URL: `https://api.orthogonal.com/mpp`
- URL: `https://api.orthogonal.com/mpp/fiber/v1/natural-language-search/profiles`
- Auth: none declared
- TypeScript: <https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/docs/fiber/v1/natural-language-search/profiles/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- object
  - `query` string, required
  - `pageSize` integer: The number of profiles to return, if you need to get more results, you can paginate.
  - `getDetailedEducation` boolean: Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
  - `getDetailedWorkExperience` boolean: Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
  - `cursor` string: A pagination cursor returned from a previous search response. Use this to fetch the next page of results. For later cursor pages of the same logical search, keep non-pagination parameters unchanged and pass top-level parentRequestId from the first Orthogonal /v1/run response.

## Response `200`

Successful response

## Other responses

- `402`: Payment Required (x402 / MPP / np)

## Changes

- **2026-11-08** `857e915717f4`: 1 breaking
  - added required request body
- **2026-08-25** `806e279c8d50`: 2 info
  - api tag `Fiber AI` added
  - api tag `Fiber AI API` removed

[Operation history](https://skmtc.dev/orthogonal/apis/orthogonal-api-marketplace/changes/fiber/v1/natural-language-search/profiles/post.md)

---

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