Neural Search Jobs
curl --request POST \
--url https://api.hirebase.org/v2/jobs/neural-search \
--header 'Content-Type: application/json' \
--data '
{
"vector": {
"job_ids": [
"<string>"
],
"artifact_id": "<string>",
"query": "<string>",
"vectors": [
[
123
]
],
"score_threshold": 123
},
"lexical": {
"job_titles": [
"<string>"
],
"keywords": [
"<string>"
],
"job_slug": "<string>",
"company_slug": "<string>",
"location_group": "<string>",
"location_types": [
"<string>"
],
"geo_locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"experience": [
"<string>"
],
"yoe": {
"min": 123,
"max": 123
},
"include_yoe": "<string>",
"company_types": [
"<string>"
],
"company_name": "<string>",
"date_posted": "<string>",
"days_ago": 123,
"month": "<string>",
"salary": {
"min": 123,
"max": 123
},
"include_no_salary": "<string>",
"currency": "<string>",
"job_types": [
"<string>"
],
"job_category": [
"<string>"
],
"industry": "<string>",
"sub_industry": [
"<string>"
],
"visa": "<string>",
"include_expired": "<string>",
"hide_seen_jobs": "<string>",
"user_id": "<string>",
"job_board": [
"<string>"
],
"sort_by": "<string>",
"sort_order": "<string>",
"page": 123,
"limit": 123
}
}
'import requests
url = "https://api.hirebase.org/v2/jobs/neural-search"
payload = {
"vector": {
"job_ids": ["<string>"],
"artifact_id": "<string>",
"query": "<string>",
"vectors": [[123]],
"score_threshold": 123
},
"lexical": {
"job_titles": ["<string>"],
"keywords": ["<string>"],
"job_slug": "<string>",
"company_slug": "<string>",
"location_group": "<string>",
"location_types": ["<string>"],
"geo_locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"experience": ["<string>"],
"yoe": {
"min": 123,
"max": 123
},
"include_yoe": "<string>",
"company_types": ["<string>"],
"company_name": "<string>",
"date_posted": "<string>",
"days_ago": 123,
"month": "<string>",
"salary": {
"min": 123,
"max": 123
},
"include_no_salary": "<string>",
"currency": "<string>",
"job_types": ["<string>"],
"job_category": ["<string>"],
"industry": "<string>",
"sub_industry": ["<string>"],
"visa": "<string>",
"include_expired": "<string>",
"hide_seen_jobs": "<string>",
"user_id": "<string>",
"job_board": ["<string>"],
"sort_by": "<string>",
"sort_order": "<string>",
"page": 123,
"limit": 123
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
vector: {
job_ids: ['<string>'],
artifact_id: '<string>',
query: '<string>',
vectors: [[123]],
score_threshold: 123
},
lexical: {
job_titles: ['<string>'],
keywords: ['<string>'],
job_slug: '<string>',
company_slug: '<string>',
location_group: '<string>',
location_types: ['<string>'],
geo_locations: [{city: '<string>', region: '<string>', country: '<string>'}],
experience: ['<string>'],
yoe: {min: 123, max: 123},
include_yoe: '<string>',
company_types: ['<string>'],
company_name: '<string>',
date_posted: '<string>',
days_ago: 123,
month: '<string>',
salary: {min: 123, max: 123},
include_no_salary: '<string>',
currency: '<string>',
job_types: ['<string>'],
job_category: ['<string>'],
industry: '<string>',
sub_industry: ['<string>'],
visa: '<string>',
include_expired: '<string>',
hide_seen_jobs: '<string>',
user_id: '<string>',
job_board: ['<string>'],
sort_by: '<string>',
sort_order: '<string>',
page: 123,
limit: 123
}
})
};
fetch('https://api.hirebase.org/v2/jobs/neural-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hirebase.org/v2/jobs/neural-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vector' => [
'job_ids' => [
'<string>'
],
'artifact_id' => '<string>',
'query' => '<string>',
'vectors' => [
[
123
]
],
'score_threshold' => 123
],
'lexical' => [
'job_titles' => [
'<string>'
],
'keywords' => [
'<string>'
],
'job_slug' => '<string>',
'company_slug' => '<string>',
'location_group' => '<string>',
'location_types' => [
'<string>'
],
'geo_locations' => [
[
'city' => '<string>',
'region' => '<string>',
'country' => '<string>'
]
],
'experience' => [
'<string>'
],
'yoe' => [
'min' => 123,
'max' => 123
],
'include_yoe' => '<string>',
'company_types' => [
'<string>'
],
'company_name' => '<string>',
'date_posted' => '<string>',
'days_ago' => 123,
'month' => '<string>',
'salary' => [
'min' => 123,
'max' => 123
],
'include_no_salary' => '<string>',
'currency' => '<string>',
'job_types' => [
'<string>'
],
'job_category' => [
'<string>'
],
'industry' => '<string>',
'sub_industry' => [
'<string>'
],
'visa' => '<string>',
'include_expired' => '<string>',
'hide_seen_jobs' => '<string>',
'user_id' => '<string>',
'job_board' => [
'<string>'
],
'sort_by' => '<string>',
'sort_order' => '<string>',
'page' => 123,
'limit' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hirebase.org/v2/jobs/neural-search"
payload := strings.NewReader("{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hirebase.org/v2/jobs/neural-search")
.header("Content-Type", "application/json")
.body("{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hirebase.org/v2/jobs/neural-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"jobs": [
{
"_id": "<string>",
"job_title": "<string>",
"job_title_raw": "<string>",
"description": "<string>",
"application_link": "<string>",
"job_categories": [
{}
],
"job_type": "<string>",
"location_type": "<string>",
"location_raw": "<string>",
"locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"salary_range": {
"min": 123,
"max": 123,
"currency": "<string>",
"period": "<string>"
},
"yoe_range": {
"min": 123,
"max": 123
},
"experience_level": {},
"education_level": "<string>",
"skills": [
"<string>"
],
"technologies": [
"<string>"
],
"benefits": [
"<string>"
],
"requirements_summary": "<string>",
"team": "<string>",
"language": "<string>",
"visa_sponsored": true,
"recruiter_agency": true,
"offers_equity": true,
"date_posted": "<string>",
"job_board": "<string>",
"job_board_link": "<string>",
"job_slug": "<string>",
"company_name": "<string>",
"company_slug": "<string>",
"company_link": "<string>",
"company_logo": "<string>",
"md5_hash": "<string>",
"platform_job_id": "<string>",
"contact_email": {},
"contact_phone": {},
"coolness_score": 123,
"flexibility_score": 123,
"compensation_value_score": 123,
"benefits_score": 123,
"impact_autonomy_score": 123,
"prestige_score": 123,
"growth_score": 123,
"meta_completeness": true,
"meta_targetability": 123,
"company_data": {
"description_summary": "<string>",
"linkedin_link": {},
"services": [
"<string>"
],
"size_range": {
"min": 123,
"max": 123
},
"industries": [
{}
],
"subindustries": [
{}
],
"type": {},
"is_recruiting_agency": {},
"is_3rd_party_agency": {}
}
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123
}Jobs API
Neural Search Jobs
Search for jobs using a combination of traditional lexical filters and semantic, vector-based matching.
POST
/
v2
/
jobs
/
neural-search
Neural Search Jobs
curl --request POST \
--url https://api.hirebase.org/v2/jobs/neural-search \
--header 'Content-Type: application/json' \
--data '
{
"vector": {
"job_ids": [
"<string>"
],
"artifact_id": "<string>",
"query": "<string>",
"vectors": [
[
123
]
],
"score_threshold": 123
},
"lexical": {
"job_titles": [
"<string>"
],
"keywords": [
"<string>"
],
"job_slug": "<string>",
"company_slug": "<string>",
"location_group": "<string>",
"location_types": [
"<string>"
],
"geo_locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"experience": [
"<string>"
],
"yoe": {
"min": 123,
"max": 123
},
"include_yoe": "<string>",
"company_types": [
"<string>"
],
"company_name": "<string>",
"date_posted": "<string>",
"days_ago": 123,
"month": "<string>",
"salary": {
"min": 123,
"max": 123
},
"include_no_salary": "<string>",
"currency": "<string>",
"job_types": [
"<string>"
],
"job_category": [
"<string>"
],
"industry": "<string>",
"sub_industry": [
"<string>"
],
"visa": "<string>",
"include_expired": "<string>",
"hide_seen_jobs": "<string>",
"user_id": "<string>",
"job_board": [
"<string>"
],
"sort_by": "<string>",
"sort_order": "<string>",
"page": 123,
"limit": 123
}
}
'import requests
url = "https://api.hirebase.org/v2/jobs/neural-search"
payload = {
"vector": {
"job_ids": ["<string>"],
"artifact_id": "<string>",
"query": "<string>",
"vectors": [[123]],
"score_threshold": 123
},
"lexical": {
"job_titles": ["<string>"],
"keywords": ["<string>"],
"job_slug": "<string>",
"company_slug": "<string>",
"location_group": "<string>",
"location_types": ["<string>"],
"geo_locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"experience": ["<string>"],
"yoe": {
"min": 123,
"max": 123
},
"include_yoe": "<string>",
"company_types": ["<string>"],
"company_name": "<string>",
"date_posted": "<string>",
"days_ago": 123,
"month": "<string>",
"salary": {
"min": 123,
"max": 123
},
"include_no_salary": "<string>",
"currency": "<string>",
"job_types": ["<string>"],
"job_category": ["<string>"],
"industry": "<string>",
"sub_industry": ["<string>"],
"visa": "<string>",
"include_expired": "<string>",
"hide_seen_jobs": "<string>",
"user_id": "<string>",
"job_board": ["<string>"],
"sort_by": "<string>",
"sort_order": "<string>",
"page": 123,
"limit": 123
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
vector: {
job_ids: ['<string>'],
artifact_id: '<string>',
query: '<string>',
vectors: [[123]],
score_threshold: 123
},
lexical: {
job_titles: ['<string>'],
keywords: ['<string>'],
job_slug: '<string>',
company_slug: '<string>',
location_group: '<string>',
location_types: ['<string>'],
geo_locations: [{city: '<string>', region: '<string>', country: '<string>'}],
experience: ['<string>'],
yoe: {min: 123, max: 123},
include_yoe: '<string>',
company_types: ['<string>'],
company_name: '<string>',
date_posted: '<string>',
days_ago: 123,
month: '<string>',
salary: {min: 123, max: 123},
include_no_salary: '<string>',
currency: '<string>',
job_types: ['<string>'],
job_category: ['<string>'],
industry: '<string>',
sub_industry: ['<string>'],
visa: '<string>',
include_expired: '<string>',
hide_seen_jobs: '<string>',
user_id: '<string>',
job_board: ['<string>'],
sort_by: '<string>',
sort_order: '<string>',
page: 123,
limit: 123
}
})
};
fetch('https://api.hirebase.org/v2/jobs/neural-search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hirebase.org/v2/jobs/neural-search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'vector' => [
'job_ids' => [
'<string>'
],
'artifact_id' => '<string>',
'query' => '<string>',
'vectors' => [
[
123
]
],
'score_threshold' => 123
],
'lexical' => [
'job_titles' => [
'<string>'
],
'keywords' => [
'<string>'
],
'job_slug' => '<string>',
'company_slug' => '<string>',
'location_group' => '<string>',
'location_types' => [
'<string>'
],
'geo_locations' => [
[
'city' => '<string>',
'region' => '<string>',
'country' => '<string>'
]
],
'experience' => [
'<string>'
],
'yoe' => [
'min' => 123,
'max' => 123
],
'include_yoe' => '<string>',
'company_types' => [
'<string>'
],
'company_name' => '<string>',
'date_posted' => '<string>',
'days_ago' => 123,
'month' => '<string>',
'salary' => [
'min' => 123,
'max' => 123
],
'include_no_salary' => '<string>',
'currency' => '<string>',
'job_types' => [
'<string>'
],
'job_category' => [
'<string>'
],
'industry' => '<string>',
'sub_industry' => [
'<string>'
],
'visa' => '<string>',
'include_expired' => '<string>',
'hide_seen_jobs' => '<string>',
'user_id' => '<string>',
'job_board' => [
'<string>'
],
'sort_by' => '<string>',
'sort_order' => '<string>',
'page' => 123,
'limit' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hirebase.org/v2/jobs/neural-search"
payload := strings.NewReader("{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hirebase.org/v2/jobs/neural-search")
.header("Content-Type", "application/json")
.body("{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hirebase.org/v2/jobs/neural-search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"vector\": {\n \"job_ids\": [\n \"<string>\"\n ],\n \"artifact_id\": \"<string>\",\n \"query\": \"<string>\",\n \"vectors\": [\n [\n 123\n ]\n ],\n \"score_threshold\": 123\n },\n \"lexical\": {\n \"job_titles\": [\n \"<string>\"\n ],\n \"keywords\": [\n \"<string>\"\n ],\n \"job_slug\": \"<string>\",\n \"company_slug\": \"<string>\",\n \"location_group\": \"<string>\",\n \"location_types\": [\n \"<string>\"\n ],\n \"geo_locations\": [\n {\n \"city\": \"<string>\",\n \"region\": \"<string>\",\n \"country\": \"<string>\"\n }\n ],\n \"experience\": [\n \"<string>\"\n ],\n \"yoe\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_yoe\": \"<string>\",\n \"company_types\": [\n \"<string>\"\n ],\n \"company_name\": \"<string>\",\n \"date_posted\": \"<string>\",\n \"days_ago\": 123,\n \"month\": \"<string>\",\n \"salary\": {\n \"min\": 123,\n \"max\": 123\n },\n \"include_no_salary\": \"<string>\",\n \"currency\": \"<string>\",\n \"job_types\": [\n \"<string>\"\n ],\n \"job_category\": [\n \"<string>\"\n ],\n \"industry\": \"<string>\",\n \"sub_industry\": [\n \"<string>\"\n ],\n \"visa\": \"<string>\",\n \"include_expired\": \"<string>\",\n \"hide_seen_jobs\": \"<string>\",\n \"user_id\": \"<string>\",\n \"job_board\": [\n \"<string>\"\n ],\n \"sort_by\": \"<string>\",\n \"sort_order\": \"<string>\",\n \"page\": 123,\n \"limit\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"jobs": [
{
"_id": "<string>",
"job_title": "<string>",
"job_title_raw": "<string>",
"description": "<string>",
"application_link": "<string>",
"job_categories": [
{}
],
"job_type": "<string>",
"location_type": "<string>",
"location_raw": "<string>",
"locations": [
{
"city": "<string>",
"region": "<string>",
"country": "<string>"
}
],
"salary_range": {
"min": 123,
"max": 123,
"currency": "<string>",
"period": "<string>"
},
"yoe_range": {
"min": 123,
"max": 123
},
"experience_level": {},
"education_level": "<string>",
"skills": [
"<string>"
],
"technologies": [
"<string>"
],
"benefits": [
"<string>"
],
"requirements_summary": "<string>",
"team": "<string>",
"language": "<string>",
"visa_sponsored": true,
"recruiter_agency": true,
"offers_equity": true,
"date_posted": "<string>",
"job_board": "<string>",
"job_board_link": "<string>",
"job_slug": "<string>",
"company_name": "<string>",
"company_slug": "<string>",
"company_link": "<string>",
"company_logo": "<string>",
"md5_hash": "<string>",
"platform_job_id": "<string>",
"contact_email": {},
"contact_phone": {},
"coolness_score": 123,
"flexibility_score": 123,
"compensation_value_score": 123,
"benefits_score": 123,
"impact_autonomy_score": 123,
"prestige_score": 123,
"growth_score": 123,
"meta_completeness": true,
"meta_targetability": 123,
"company_data": {
"description_summary": "<string>",
"linkedin_link": {},
"services": [
"<string>"
],
"size_range": {
"min": 123,
"max": 123
},
"industries": [
{}
],
"subindustries": [
{}
],
"type": {},
"is_recruiting_agency": {},
"is_3rd_party_agency": {}
}
}
],
"total_count": 123,
"page": 123,
"limit": 123,
"total_pages": 123
}This endpoint enables you to perform hybrid searches: apply familiar filters (titles, locations, salary, etc.) while simultaneously ranking results by vector similarity to a text query or embedding.
Endpoint
POST /v2/jobs/neural-search
Request Body
Note:
- You can supply only
vector, onlylexical, or both; at least one must be present. - If you include both, results are ordered by combined ranking (semantic score then lexical rank).
Parameters for semantic, embedding-based search
Show child attributes
Show child attributes
Optional list of explicit job IDs to constrain the semantic search.
ID of the embedding artifact (e.g., resume) to use. Use the
_id returned by Upload Resume.Semantic text query to be encoded into a vector for similarity matching.
Explicit embedding vectors (each must be 768 elements long) to compare against job vectors.
Minimum similarity score (0.0–1.0) for a job to appear in
jobs. Defaults to 0.0. Note: filters the returned jobs only — total_count still reflects the endpoint cap.Traditional filtering parameters
Show child attributes
Show child attributes
Array of job titles to search for (e.g.,
["Software Engineer", "Data Scientist"]).Array of keywords to match within job descriptions.
Filter by a specific job’s slug (deep-link identifier).
Filter by a specific company’s slug.
Predefined location set (e.g.,
"Bay_Area").⚠️ Not currently applied — this filter is accepted but does not affect results yet. Use
geo_locations for location filtering.Work arrangements to include. Accepted values:
"Remote", "Hybrid", "In-Person".Experience level categories. Accepted values:
"Entry", "Junior", "Mid", "Senior", "Executive".Set to
"true" to include jobs without specified years of experience.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.Exact company name filter.
Relative timeframe (e.g.,
"today", "last_week", "last_month").Jobs posted in the last n days (e.g.,
7).Specific month in
YYYY-MM format (e.g., "2023-12").⚠️ Not currently applied — this filter is accepted but does not affect results yet. Use
days_ago or date_posted to filter by posting time.Set to
"true" to include listings without salary data.Three-letter currency code (e.g.,
"USD").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.Specific job categories (e.g.,
["Data Science"]).Industry to filter by (e.g.,
"Tech, Software & IT Services", "Healthcare").industry must be a single string, not an array. Passing an array may result in a 500 error.More specific industry categories.
Set to
"true" to only include visa-sponsored roles.Set to
"true" to include expired listings.Set to
"true" to omit jobs the user has already viewed.User’s MongoDB ObjectId for personalized filtering.
Source job boards (e.g.,
["iCIMS","Greenhouse"]).Field to sort lexical results by. Accepted values:
"relevance", "date_posted", "salary", "company", "yoe". Invalid values are silently ignored."asc" or "desc".Page number
Results per page
Response
Array of job objects matching the query.
Show child attributes
Show child attributes
Unique job identifier
Job title
Unparsed job title as scraped from the source.
Full job description (HTML or text)
URL to apply
Tags/categories for the role
Employment type. One of:
"Full Time", "Part Time", "Contract / Temporary", "Internship".Work arrangement
Raw location string from the source job board (before normalization into
locations).Offered salary range
Show child attributes
Show child attributes
Minimum salary
Maximum salary
Currency code
Pay period for the salary range. Observed values:
"yearly", "monthly", "daily", "hourly".This field is not fully normalized today — you may also see
"year" (≡ "yearly") and "hour" (≡ "hourly"). Treat those as equivalent until normalized.Parsed experience tier for the role (e.g.,
"Senior"). May be null when not inferred.Required education level. One of:
"No Education Required", "High school degree",
"Associate degree", "Bachelor's degree", "Master's degree", "Doctoral degree".List of skills mentioned in the job description
List of technologies mentioned in the job description
List of benefits mentioned in the job description
Brief qualifications summary
Team at the company hiring for the position
Language the job posting is in
Whether visa sponsorship is offered
Indicates whether the listing was posted by a recruiting agency
Whether the listing mentions equity compensation.
Posting date (format:
YYYY-MM-DD).Source job board
URL of the job board
Deep-link slug for the job
Name of hiring company
Company slug
Company website
URL to company logo
Content hash of the listing.
The source ATS’s own job identifier.
Contact email for the listing, when available. Paid users only.
Contact phone number for the listing, when available. Paid users only.
Dimension scores —
coolness_score, flexibility_score, compensation_value_score, benefits_score, impact_autonomy_score, prestige_score, and growth_score each use a 0–10 scale (higher is better).Company/role “coolness” rating (0–10).
Work-flexibility rating (0–10).
Compensation competitiveness rating (0–10).
Benefits package rating (0–10).
Role-level impact and autonomy rating (0–10).
Company/role prestige rating (0–10).
Career growth / learning opportunity rating (0–10).
Whether the parsed listing metadata is considered complete.
Internal signal (0–1) reflecting how targetable/complete the listing is for matching.
Enriched company profile
Show child attributes
Show child attributes
Short company description
LinkedIn URL
List of services that the company provides
Industry sectors
Detailed industry categories
Categorical company type (e.g.,
"Startup", "Enterprise").Whether the company is a recruiting/talent agency.
Whether the company is a third-party agency.
Total number of matching jobs. Capped at 2,500 for this endpoint.
Current page number
Number of results returned
Total pages available
Rate limit: 4 requests/second on search endpoints. See Error Handling.Note: Results are ranked by semantic similarity internally, but a per-job
vector_score field is not currently returned in the response.Example Request
curl -X POST https://api.hirebase.org/v2/jobs/neural-search \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"vector": {
"query": "senior backend engineer building distributed systems with Python and Kubernetes"
},
"lexical": {
"location_types": ["Remote", "Hybrid"],
"experience": ["Senior"],
"industry": "Tech, Software & IT Services",
"days_ago": 30,
"limit": 10
}
}'
{
"vector": {
"query": "machine learning engineer"
},
"lexical": {
"location_group": "Bay_Area",
"experience": ["Mid", "Senior"],
"yoe": {"min": 2, "max": 5},
"job_types": ["Full Time"],
"industry": "Tech, Software & IT Services",
"page": 1,
"limit": 5
}
}
Example Response
{
"jobs": [
{
"_id": "6a2f14a48bea0df96e26ac7b",
"company_name": "CompanyXYZ",
"job_title": "Senior Python Engineer",
"job_title_raw": "Senior Python Engineer - Remote",
"description": "<p>… cleaned/summarized description …</p>",
"application_link": "https://jobs.workable.com/view/nqSdYtJwQ/...",
"job_categories": ["Software Engineer Jobs", "Engineering Jobs", "Information Technology Jobs"],
"job_type": "Full Time",
"location_type": "Remote",
"location_raw": "TELECOMMUTE; British Columbia, Canada",
"locations": [
{
"city": null,
"region": null,
"country": "Canada",
"coordinates": {"type": "Point", "coordinates": [-123.12, 49.28]},
"bbox": [-123.2, 49.0, -122.9, 49.3],
"address": "British Columbia, Canada"
}
],
"salary_range": {"min": 150000, "max": 210000, "currency": "USD", "period": "yearly"},
"yoe_range": {"min": 2, "max": 5},
"experience_level": "Senior",
"education_level": "Bachelor's degree",
"skills": ["Python", "FastAPI", "Distributed systems"],
"technologies": ["Python", "PostgreSQL", "AWS"],
"benefits": ["401k matching", "Remote-first", "Equity"],
"requirements_summary": "5+ years Python; distributed systems experience",
"team": "Platform Engineering",
"language": "en",
"visa_sponsored": false,
"recruiter_agency": false,
"offers_equity": false,
"date_posted": "2026-06-07",
"job_board": "workable",
"job_board_link": "https://jobs.workable.com/company/...",
"job_slug": "senior-python-engineer-17",
"company_slug": "companyxyz",
"company_link": "companyxyz.com",
"company_logo": "https://logos.hirebase.org/.../companyxyz-320x320-q95.jpg",
"md5_hash": "d6b5d4e7b99d23b082b46e49c22c168f",
"platform_job_id": "ad88b6ba-a905-4850-ad79-73beb0e97766",
"coolness_score": 6.4,
"flexibility_score": 6.1,
"compensation_value_score": 6.0,
"benefits_score": 5.0,
"impact_autonomy_score": 7.1,
"prestige_score": 5.2,
"growth_score": 6.2,
"meta_completeness": false,
"meta_targetability": 0.8,
"company_data": {
"description_summary": "CompanyXYZ builds …",
"linkedin_link": "https://www.linkedin.com/company/companyxyz",
"size_range": {"min": 51, "max": 200},
"industries": ["Tech, Software & IT Services"],
"subindustries": ["AI & ML"],
"services": ["Platform", "APIs"],
"type": "Startup",
"is_recruiting_agency": false,
"is_3rd_party_agency": false
}
}
],
"total_count": 23,
"page": 1,
"limit": 5,
"total_pages": 5
}
Error Responses
422 Unprocessable Entity
422 Unprocessable Entity
Returned when the request is malformed or contains invalid parameters.
500 Internal Server Error
500 Internal Server Error
Returned when an unexpected server-side error occurs.
403 Forbidden
403 Forbidden
Returned if you do not have access to this feature.
⌘I