Skip to main content

Available Search Methods

Hirebase offers three primary ways to search for jobs:
  1. POST /v2/jobs/search - Full-featured search with JSON request body
  2. POST /v2/jobs/vsearch - Semantic vector search using DeepSearch
The traditional search methods (both POST and GET variants) allow you to filter jobs using exact matching criteria.

Search Parameters

  • job_titles: Array or comma-separated list of job titles to search for
  • keywords: Terms to match in job descriptions
  • job_types: Filter by job types (e.g., “Full-time”, “Contract”)
  • visa: Filter for jobs that offer visa sponsorship
  • location_group: Predefined geographic area (e.g., “Bay_Area”)
  • location_types: Filter by work arrangements (e.g., “Remote”, “Hybrid”, “On-site”)
  • geo_locations: Array of location objects with city, region, and country
  • Currency: Currency salary is paid in (USD, GBP, etc.)
  • yoe: Years of experience range with min and max values
  • salary: Salary range with min and max values
  • company_name: Filter by specific company name
  • industry: Filter by industry sector
  • sub_industry: Filter by more specific industry category
  • sort_by: Field to sort results by (e.g., “relevance”, “date”, “salary”)
  • sort_order: Sort direction (“asc” or “desc”)
  • page: Page number for pagination
  • limit: Number of results per page
// POST /v2/jobs/search
const searchJobs = async () => {
  const response = await fetch('https://api.hirebase.org/v2/jobs/search', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'YOUR_API_KEY',
    },
    body: JSON.stringify({
      job_titles: ["Software Engineer", "Backend Engineer"],
      keywords: ["Python", "AWS"],
      location_types: ["Remote"],
      experience: ["Mid"],
      yoe: { min: 2, max: 5 },
      salary: { min: 100000, max: 150000 },
      sort_by: "date",
      sort_order: "desc",
      page: 1,
      limit: 10
    }),
  });
  
  const data = await response.json();
  return data;
};
The vector search endpoint (POST /v2/jobs/vsearch) provides a more powerful way to find jobs based on semantic similarity rather than exact keyword matching.

Vector Search Parameters

  • query: Natural language description of the job you’re looking for
  • job_id: Find jobs similar to a specific job using a job’s retrieved ID
  • artifact_id: Find jobs matching a resume or other document that you’ve uploaded using it’s ID
  • search_type: Type of search to perform (“summary”, “job”, “resume”)
  • top_k: Number of results to return (default: 10)
  • score_threshold: Minimum similarity score to include in results
// POST /v2/jobs/vsearch
const vectorSearch = async () => {
  const body = {
    query: "Senior backend engineer with Python and microservices experience",
    location_types: "Remote",
	experience: "Senior",
    salary_from: 120000,
    top_k: 15
  };
  
  const response = await fetch(`https://api.hirebase.org/v2/jobs/vsearch`, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'YOUR_API_KEY',
    },
    body: JSON.stringify(body)
  });
  
  const data = await response.json();
  return data;
};

Tips for Effective Job Searching

Balance precision and recall: Too many specific filters might exclude relevant jobs. Start broad and refine as needed.
Leverage vector search for harder queries: If traditional search isn’t finding what you need, try the vector search with natural language descriptions.
Use pagination wisely: Instead of increasing the limit, use pagination to load results incrementally for better performance.

Prompt Techniques: How to query the DeepSearch model to get best results

  1. Using locations to filter Jobs:
const vectorSearch = async () => {
  const body = {
    query: "Located in Santa Clara, California"
  };

  const response = await fetch('https://api.hirebase.org/v2/jobs/vsearch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'YOUR_API_KEY',
    },
    body: JSON.stringify(body)
  });

  const data = await response.json();
  return data;
};
  1. Specify the kind of Company you’re looking for:
const vectorSearch = async () => {
  const body = {
    query: "Senior Director of Supply Chain Management in Pharmaceuticals, small manufacturing company with long-term aspirations to service a global economy."
  };

  const response = await fetch('https://api.hirebase.org/v2/jobs/vsearch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'YOUR_API_KEY',
    },
    body: JSON.stringify(body)
  });

  const data = await response.json();
  return data;
};
  1. Specify the technical background of the job:
const vectorSearch = async () => {
  const body = {
    query: "5+ years of experience in quantitative analysis, preferably at large financial or technology firms. Expertise in machine learning frameworks such as PyTorch. Strong background in data analysis, statistical modeling, and programming Located in New York City or willing to relocate. Ability to lead projects and mentor junior team members."
  };

  const response = await fetch('https://api.hirebase.org/v2/jobs/vsearch', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': 'YOUR_API_KEY',
    },
    body: JSON.stringify(body)
  });

  const data = await response.json();
  return data;
};

Tips for effective DeepSearch

Be as precise as you want: When prompting, you have unlimited precision power at your fingertips. You can have broad searches that match many different types of jobs such as ‘Medical Tech Sales’, or you can pinpoint a niche such as ‘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’.
Find the jobs your best qualified for: Use your background as a mechanism to get the best job recomendations and easily filter your qualifications, skills, and technical ability. Unlike text search which matches phrases, our DeepSearch model uses the idea of your technical ability to filter without the phrase necessarily being present in the job description. Because of this, for example searching with a skill such as _‘Market Research’ _will identify roles that require related expertise—such as data analysis, competitive intelligence, or customer insights—even when “Market Research” isn’t listed word-for-word in the job description.
User Context: Our model understands what your looking for on a deeper level. Providing your experience building with AWS, we understand that you are looking for Cloud Engineering jobs. If your a recent graduate, our model will understand your looking for entry level jobs. By providing the model a good context, you can leverage it’s iniate ability to match subtle characteristics of yourself and leverage these to get results which would otherwise be impossible with text-based search.
Parameters vs. Prompting: From our own internal testing of the model, prompting is the most powerful way to get the best results. While this API does support a limited number of parameters, the true power of our model is with prompting. When using our model, its highly recommended to try prompting first, and then utilize the parameters; we have yet to encounter a single situation where the input parameters function better than the prompt, however we decided to expose these for users who are most comfortable with this method.

Next Steps