---
title: "List Matched Positions for Employee"
method: GET
path: "/api/v2/core/employees/{employeeId}/matched-positions"
tags: ["Employee", "Position"]
---

# List Matched Positions for Employee

`GET /api/v2/core/employees/{employeeId}/matched-positions`

## Request

- Base URL: `https://apiv2.eightfold.ai`
- URL: `https://apiv2.eightfold.ai/api/v2/core/employees/{employeeId}/matched-positions`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/eightfold/apis/api-server-v2-service-service/docs/api/v2/core/employees/:employeeId/matched-positions/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns the positions recommended to an employee, at parity with the Career Hub 'Recommended jobs' feed: the tenant's Career Hub position visibility rules, feed search overrides, the employee's job preferences and location, and dismissed jobs all apply, and results are sorted by match score. The tenant must show a Recommended Jobs feed on the employee Career Hub home page (a recommended_jobs feed, or a feed with template_type recommended_jobs, listed in order_of_feeds and defined in feeds); otherwise the call returns 400. An empty list means the feed has no recommendations for the employee. By default the Career Hub fallback rows ("Showing other relevant jobs") are not returned; pass fallback=true to get them when the primary feed is empty and the tenant's feed config enables a fallback. Runs as the employee, so the employee must have a user login and Career Hub enabled. For the recruiter-side ATS match of any profile use /profiles/<profileId>/matched-positions instead. JWT callers need Career Hub position access and can only request their own recommendations.

## Path parameters

- `employeeId` string, required

## Query parameters

- `start` integer
- `limit` integer
- `validatedSkills` string
- `fallback` string
- `exclude` string
- `keyList` string

## Headers

- `Authorization` string, required

## Response `200`

OK

- object
  - `data` MatchingPositionsSchema[]
    - `missingSkills` string[], nullable: Position skills missing in candidate's profile
    - `position` ConcisePositionSchema
      - `postingUrl` string, nullable: posting Url
      - `atsEntityId` string, nullable: atsEntityId in the ats system
      - `locations` string[], nullable: The name of the location of the job
      - `positionId` integer, nullable: job id
      - `title` string, nullable: The job title
    - `skillScoreRelevance` number, float, nullable: Skill relevance score based on matching of job and candidate profile
    - `validatedSkills` string[], nullable: Position skills validated in candidate's profile
    - `finalScore` number, float, nullable: The matching score (range 0 to 5) of job and candidate profile
    - `titleScoreRelevance` number, float, nullable: Title relevance score based on matching of job and candidate profile
  - `meta` MetaSchema
    - `totalCount` integer, nullable
    - `pageTotalCount` integer, nullable
    - `pageStartIndex` integer, nullable

## Changes

- **2026-11-03** `9a8b3a927e93`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/eightfold/apis/api-server-v2-service-service/changes/api/v2/core/employees/:employeeId/matched-positions/get.md)

---

[API](https://skmtc.dev/eightfold/apis/api-server-v2-service-service.md) - [All operations](https://skmtc.dev/eightfold/apis/api-server-v2-service-service/llms.txt) - [OpenAPI document](https://skmtc.dev/eightfold/apis/api-server-v2-service-service/revisions/9a8b3a927e93?raw)
