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).
object
Parameters for semantic, embedding-based search
Show child attributes
Show child attributes
string[]
Optional list of explicit job IDs to constrain the semantic search.
string
ID of the embedding artifact (e.g., resume) to use. Use the
_id returned by Upload Resume.string
Semantic text query to be encoded into a vector for similarity matching.
number[][]
Explicit embedding vectors (each must be 768 elements long) to compare against job vectors.
number
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.object
Traditional filtering parameters
Show child attributes
Show child attributes
string[]
Array of job titles to search for (e.g.,
["Software Engineer", "Data Scientist"]).string[]
Array of keywords to match within job descriptions.
string
Filter by a specific job’s slug (deep-link identifier).
string
Filter by a specific company’s slug.
string
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.string[]
Work arrangements to include. Accepted values:
"Remote", "Hybrid", "In-Person".object[]
string[]
Experience level categories. Accepted values:
"Entry", "Junior", "Mid", "Senior", "Executive".string
Set to
"true" to include jobs without specified years of experience.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.string
Exact company name filter.
string
Relative timeframe (e.g.,
"today", "last_week", "last_month").number
Jobs posted in the last n days (e.g.,
7).string
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.string
Set to
"true" to include listings without salary data.string
Three-letter currency code (e.g.,
"USD").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.string[]
Specific job categories (e.g.,
["Data Science"]).string
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.string[]
More specific industry categories.
string
Set to
"true" to only include visa-sponsored roles.string
Set to
"true" to include expired listings.string
Set to
"true" to omit jobs the user has already viewed.string
User’s MongoDB ObjectId for personalized filtering.
string[]
Source job boards (e.g.,
["iCIMS","Greenhouse"]).string
Field to sort lexical results by. Accepted values:
"relevance", "date_posted", "salary", "company", "yoe". Invalid values are silently ignored.string
"asc" or "desc".number
default:"1"
Page number
number
default:"10"
Results per page
Response
array
Array of job objects matching the query.
Show child attributes
Show child attributes
string
Unique job identifier
string
Job title
string
Unparsed job title as scraped from the source.
string
Full job description (HTML or text)
string
URL to apply
array
Tags/categories for the role
string
Employment type. One of:
"Full Time", "Part Time", "Contract / Temporary", "Internship".string
Work arrangement
string
Raw location string from the source job board (before normalization into
locations).array
object|null
Offered salary range
Show child attributes
Show child attributes
number
Minimum salary
number
Maximum salary
string
Currency code
string
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.string | null
Parsed experience tier for the role (e.g.,
"Senior"). May be null when not inferred.string
Required education level. One of:
"No Education Required", "High school degree",
"Associate degree", "Bachelor's degree", "Master's degree", "Doctoral degree".string[]
List of skills mentioned in the job description
string[]
List of technologies mentioned in the job description
string[]
List of benefits mentioned in the job description
string
Brief qualifications summary
string
Team at the company hiring for the position
string
Language the job posting is in
boolean
Whether visa sponsorship is offered
boolean
Indicates whether the listing was posted by a recruiting agency
boolean
Whether the listing mentions equity compensation.
string
Posting date (format:
YYYY-MM-DD).string
Source job board
string
URL of the job board
string
Deep-link slug for the job
string
Name of hiring company
string
Company slug
string
Company website
string
URL to company logo
string
Content hash of the listing.
string
The source ATS’s own job identifier.
string | null
Contact email for the listing, when available. Paid users only.
string | null
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).number
Company/role “coolness” rating (0–10).
number
Work-flexibility rating (0–10).
number
Compensation competitiveness rating (0–10).
number
Benefits package rating (0–10).
number
Role-level impact and autonomy rating (0–10).
number
Company/role prestige rating (0–10).
number
Career growth / learning opportunity rating (0–10).
boolean
Whether the parsed listing metadata is considered complete.
number
Internal signal (0–1) reflecting how targetable/complete the listing is for matching.
object
Enriched company profile
Show child attributes
Show child attributes
string
Short company description
string|null
LinkedIn URL
string[]
List of services that the company provides
array
Industry sectors
array
Detailed industry categories
string | null
Categorical company type (e.g.,
"Startup", "Enterprise").boolean | null
Whether the company is a recruiting/talent agency.
boolean | null
Whether the company is a third-party agency.
number
Total number of matching jobs. Capped at 2,500 for this endpoint.
number
Current page number
number
Number of results returned
number
Total pages available
Rate limit: 100 requests per 60 seconds per API key.
429 responses include a Retry-After header. 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.