Fiber AI
Search & discovery

Advanced work experience search

Filter people by the roles in their history — employer, title, function, specialty, and seniority — each condition matched against the same role.

Work experience search filters people on the roles they have held, not just their current title. It answers questions like "who was in Sales at Salesforce and is now in Engineering?" or "senior nurses at Mayo Clinic", with every condition matched against the same role.

There are two ways in:

  • jobs is the flexible, per-role path. Each entry describes one role (employer, title, function or specialty, seniority, or a combination) and carries its own tenure. It replaces the deprecated pastJobs and currentJobs.
  • Top-level jobCategories and seniority are coarse filters scoped by jobStatus. Use them for a quick "any role in Marketing"; reach for jobs when you need to pin an employer or a specific tenure.

The jobs filter

Each entry takes:

FieldMatches
companyOne employer: a LinkedIn org ID, URL, slug, or domain
jobTitleThe role's raw title, with the same match modes as the top-level title filter
jobCategoriesThe role's function and/or specialty
seniorityThe role's seniority level
statusThe role's tenure. Required: current, past, or any

Combine entries with allOf (every entry must match), anyOf (any), or noneOf (exclude). Each entry needs at least one of the matching fields above, plus its status.

{
  "jobs": {
    "allOf": [
      { "jobCategories": { "anyOf": [{ "type": "function", "value": "Sales" }] }, "status": "current" },
      { "jobCategories": { "anyOf": [{ "type": "function", "value": "Engineering" }] }, "status": "past" }
    ]
  }
}

That finds people who are in Sales now and were previously in Engineering.

Functions and specialties

Job categories come from a two-level tree:

  • Function is one of 26 broad areas, plus Other: Accounting, Administrative, Arts and Design, Business Development, Community and Social Services, Consulting, Education, Engineering, Entrepreneurship, Finance, Healthcare Services, Human Resources, Information Technology, Legal, Marketing, Media and Communication, Military and Protective Services, Operations, Product Management, Program and Project Management, Purchasing, Quality Assurance, Real Estate, Research, Sales, Customer Success and Support, and Other.
  • Specialty is a finer area inside exactly one function. Because every specialty has a single parent function, naming the specialty implies the function. Examples: Software Engineering and Data & ML Engineering under Information Technology; Account Executive and Sales Development under Sales; Nursing and Physicians & Advanced Practice under Healthcare Services.

An entry is tagged with its level:

{ "jobCategories": { "anyOf": [{ "type": "specialty", "value": "Sales Development" }] } }

When you are unsure, pick the specialty first and let the function follow. Each function has a General … specialty for titles that name the area but no sub-area, and Other is the last resort for titles that are not a job. Values are validated: an unknown function or specialty returns 400.

GET /v1/enums/job-categories returns the whole tree — every function with its specialties nested underneath — plus the seniority values, for free. Fetch it once and validate user input against it so a typo becomes a suggestion instead of a silent zero-result search.

Seniority

Six levels, matching LinkedIn's taxonomy: Internship, Entry level, Associate, Mid-Senior level, Director, and Executive.

Seniority comes from the qualifier in the title (Intern, Junior, Associate, Senior, Lead, Staff, Principal, Manager, Director, VP, Head, Chief, Founder), not from the domain word. Two cases are worth knowing:

  • "Manager" is a job, not a level by itself. A bare "Product Manager" is Mid-Senior level; only Director, VP, or Head-of titles reach Director or Executive.
  • "Owner" has two senses. A product or feature owner is an individual contributor, ranked by its qualifier; a business owner (owner, proprietor) is Executive.

Experience industries

experienceIndustry filters people by the industries of the companies they have worked at — current employer, past employers, or both. It uses the same standard categories as company search (Healthcare, Finance, Software), so the value lists you already use there apply here too.

{
  "experienceIndustry": { "anyOf": ["Healthcare"] },
  "jobStatus": { "status": "ever-employed" }
}

jobStatus does the scoping, exactly as for the other work-experience filters: omitted (or currently-employed) means the current employer, previously-employed means past employers, ever-employed means either. noneOf excludes industries the same way.

This is a different filter from the person's own industry (industryV2): that matches the single industry written on someone's profile; experienceIndustry matches any employer in their history. "A nurse who has worked at hospitals" is experienceIndustry; "a person whose profile says Healthcare" is industryV2. The full comparison is in industry filtering.

What each role returns

A profile's experiences[] carries, per role:

FieldWhat it tells you
titleThe raw title as it appears on the profile
cleaned_titleThe title cleaned up: taglines and company noise removed, abbreviations expanded, typos fixed, non-English translated. For example, "Marketing Team | UGC CREATOR" becomes "UGC Creator", and "Gerente de ventas minoristas" becomes "Retail Sales Manager"
job_functionThe function from the older list. Still returned; prefer job_function_v2
job_function_v2The function from the two-level tree
job_specialtyThe specialty within that function
industryThe employer's industry for that role
company_org_idThe employer's LinkedIn org ID. Reuse it to query the company
company_linkedin_idsOther LinkedIn company IDs the employer is known by
is_currentWhether the role is current
start_date / end_dateThe role's tenure
start_date_precision / end_date_precisionHow exact each date is: "year" (LinkedIn showed only "2023") or "month" (LinkedIn showed "June 2023"). Check this before formatting — a "year" date is always the first of January

jobTitle filters match the raw title; cleaned_title is the normalized form returned for display.

Coverage

Functions, specialties, and seniority are populated on a growing share of profiles, and more often on current roles than past ones. A category or seniority filter therefore returns fewer people than the population it describes. Combine it with a company or title filter when you need maximum recall.

On this page