Skip to main content
POST
Vector Search Jobs
Run semantic job searches using vector embeddings. Instead of relying on keyword matching, this API understands the meaning behind your query to return more relevant job results. You can use the Vector Search Jobs API to search by natural language, match jobs similar to a specific listing, or find jobs that align with a candidate’s resume.

Endpoint

Search Types

Use the query parameter to search with a natural language description of the specific job.
Use the job_id parameter with search_type=job to find jobs similar to a specific job.
Use the artifact_id parameter with search_type=resume to find jobs that match a resume. The artifact_id is the _id returned by Upload Resume.

Request Body

Note:
  • All request body fields are optional unless stated otherwise.
  • Begin with minimal filters to avoid excluding relevant results too early.
  • Filter combinations can be mixed and matched.
  • Use specific filters to narrow down search results and get relevant matches.
The core vector search parameters (search_type, query, top_k, accuracy, limit, page) work as documented. Lexical filter parameters (salary_from, years_from, industries, locations, etc.) are accepted but may not narrow results in all cases. For reliable filtered search, use Neural Search, which combines vector matching with lexical filtering.
search_type
string
default:"summary"
required
Type of search to perform (“summary”, “job”, or “resume”)
query
string
required
Natural language description of the job you’re looking for
Note:Required only when the search type is Natural Language Query. Omit for Similar Job Search and Resume Matching search types.
job_id
string
required
The ID of the job to use as a reference for retrieving similar job listings (obtain job IDs from Search Jobs).
Note:Required only when the search type is Similar Job Search. Omit for Natural Language Query and Resume Matching search types.
artifact_id
string
required
Find jobs matching a resume by its stored id. This is the _id returned by Upload Resume.
The artifact_id must be a valid MongoDB ObjectId. A malformed (non-ObjectId) value currently returns 500 rather than 400/404.
Note:Required only when the search type is Resume Matching. Omit for Natural Language Query and Similar Job Search search types.
industries
string[]
Filter by one or more company industries (e.g., "Tech, Software & IT Services", "Healthcare"). See List Industries.
subindustries
string[]
Filter by one or more specific subindustries. See List Subindustries.
job_title
string
Filter jobs by exact job title (e.g., “Software Engineer”, “Marketing Manager”).
job_types
string[]
Array of employment types. Accepted values: "Full Time", "Part Time", "Contract", "Internship".
The "Contract" value matches roles whose returned job_type is "Contract / Temporary" — request token and response label differ.
The correct field name is job_types (plural). Using job_type (singular) is silently ignored — the request succeeds but the filter is not applied.
experience
string[]
Filter by experience level. Accepted values: "Entry", "Junior", "Mid", "Senior", "Executive".
company_types
string[]
Filter jobs by the hiring company’s headcount bucket. Accepted values: "1-10", "11-50", "51-200", "201-500", "501-1000", "1001-5000", "5001-10000", "10000+". Pass multiple values to combine ranges (e.g., ["11-50", "51-200"]).
This parameter is named company_types for historical reasons but currently filters by company size. A separate classification filter (Public Company / Non-Profit / etc.) will be added in a future API update.
job_categories
string[]
Filter by one or more job category tags (e.g., "Engineering Jobs", "Marketing Jobs").
job_slug
string
Filter by the unique slug of a job (used to fetch or highlight a specific job).
job_board
string[]
Filter by the job board source (e.g., “Workable”, “Greenhouse”).
company_name
string
Filter by the name of the company offering the job.
company_slug
string
Filter jobs by the unique company slug identifier.
locations
object
Filter jobs by one or more locations. Each location object can include city, region, or country.
date_posted
string
Filter jobs posted on or after a specific date (format: YYYY-MM-DD).
visa_sponsored
string
Filter to include only jobs that offer visa sponsorship.
top_k
number
default:"10"
Number of results to return
score
number
Minimum similarity score to include in results
Note:Higher similarity scores indicate stronger semantic matches.
salary_from
number
Minimum salary filter
salary_to
number
Maximum salary filter
years_from
number
Minimum years of experience filter
years_to
number
Maximum years of experience filter
page
number
default:"1"
Page number for pagination
limit
number
default:"10"
Number of results per page
offset
number
Offset for results (alternative to page)
Note:The page, limit, and offset fields all control how results are paginated i.e., how many results you get and which ones are returned. You can use either page and limit together or use offset withlimit.
  • If you’re using page, you’re asking for a specific page of results (like page 2 or page 3), and limit defines how many results appear on each page.
  • If you’re using offset, you’re skipping a certain number of results before starting to return data. For example, offset= 20 with limit= 10 means “skip the first 20 results, then return the next 10.”
accuracy
number
default:"0.0"
Search accuracy vs. speed, as a float from 0.0 (fastest) to 1.0 (most accurate). Higher values take more time.

Response

jobs
array
Array of job objects, each representing a single job listing along with company and scoring metadata.
total_count
number
Total number of matching job listings across all pages.
company_count
number
Reserved for unique-company counts. Currently always returns 0 for this endpoint — use total_count for result sizing.
page
number
Current page number of the response.
limit
number
Maximum number of jobs returned per page.
total_pages
number
Total number of pages available for the current query.
Rate limit: 4 requests/second on search endpoints. See Error Handling.Note: Per-job similarity score is not currently returned in vsearch responses (verified for summary and job search modes).

Example Request

Example Response

Error Responses

Returns when the request is missing required data or includes invalid parameters.
  • For example, this error occurs if an artifact_id is provided but not found in the system.
Returns when the API key is missing, invalid, or incorrect.
Returns when your account does not have permission to access the requested feature.
  • This usually means the feature is restricted to certain subscription tiers.
Best Practices
  • Use detailed natural language queries: The API performs best when queries are specific and clearly describe experience, goals, or desired roles.
  • Prefer prompts over structured parameters: The most accurate matches come from descriptive prompts rather than strict filters.