Skip to main content

Which search endpoint should I use?

Hirebase offers three job-search endpoints. Pick the right one based on the shape of your query:
If you’re not sure: start with POST /v2/jobs/search for structured filters, or POST /v2/jobs/neural-search when you want to describe the role in natural language and still filter by things like experience, location, or industry.

Structured Search (POST /v2/jobs/search)

Exact filters applied against parsed job fields. This is the right choice when your query is expressible as structured filters (titles, keywords, location, salary range, dates, experience, etc.).

Search Parameters

  • job_titles: Array of job titles to search for.
  • keywords: Array of terms to match in job descriptions.
  • job_types: Filter by job types (e.g., "Full Time", "Contract").
  • visa: String "true" / "false" — filter for jobs that offer visa sponsorship.
  • location_group: Predefined geographic area (e.g., "Bay_Area"). ⚠️ Not currently applied — use geo_locations instead.
  • location_types: Work arrangements ("Remote", "Hybrid", "In-Person").
  • geo_locations: Array of location objects with city, region, and country. (recommended for location filtering)
  • geofilter_params: Geographic proximity controls (mode, radius, unit).
  • experience: Array of levels ("Entry", "Junior", "Mid", "Senior", "Executive").
  • yoe: Years of experience range with min / max.
  • salary: Salary range with min / max.
  • currency: ISO currency code (e.g., "USD", "GBP").
  • company_name: Filter by specific company name.
  • industry: Single industry or array of industries. See List Industries. (recommended for sector filtering)
  • sub_industry: Single subindustry or array. See List Subindustries. ⚠️ Not currently applied — use industry instead.
  • company_types: Headcount buckets (e.g., "1-10", "51-200"). Use types for categorical labels like "Startup" or "Enterprise".
  • sort_by: "relevance", "date_posted", "salary", "company", or "yoe".
  • sort_order: "asc" or "desc".
  • page: Page number (1-indexed). Page 1 is free; page 2+ requires an API key.
  • limit: Results per page (max 100).

Neural Search (POST /v2/jobs/neural-search)

Combines vector similarity with lexical filtering. Send a natural-language query under vector and add structured filters under lexical. This is the recommended endpoint for semantic search with reliable filtering.

Vector Search (POST /v2/jobs/vsearch)

Pure semantic-similarity search. Use when you just want the closest matches to a natural-language query and don’t need lexical filtering.
Vector search currently supports only the core search parameters (search_type, query, top_k, accuracy, limit, page). Lexical filter parameters are accepted but do not currently narrow results. For filtered semantic search, use Neural Search.
When writing queries for Neural Search or Vector Search:
  1. Use locations inline in the prompt:
  1. Describe the kind of company:
  1. Spell out technical background:
Be as precise as you want. You have unlimited precision at your fingertips. Broad (“Medical Tech Sales”) or niche (“L3 Product Manager used to working in fast-paced environments in small companies, looking to take the leap to a management role at a small consumer electronics company”) both work.
Find jobs you’re qualified for. Use your background to drive recommendations. Unlike plain text search which matches phrases, semantic search understands technical capability — searching "Market Research" also surfaces roles requiring related expertise like data analysis, competitive intelligence, or customer insights, even when those exact words don’t appear.
Provide context. Mentioning “experience building with AWS” implies you’re looking for Cloud Engineering work; “recent graduate” implies entry-level. Rich context gives the model more to match on.
Prompting beats parameters for semantic search. In our internal testing, a well-written query consistently outperforms structured filters passed to vsearch. Use Neural Search if you need both reliable filters and semantic matching.

Next Steps