Sobes.tech
Senior

Now we want to go to HeadHunter and search for candidates by filters — how to architect this?

sobes.tech AI

Answer from AI

For the candidate search architecture on HeadHunter with filters, the following approach can be proposed:

  1. Data collection: use the HeadHunter API to obtain candidate data or parse it if the API is limited.

  2. Data storage: save the obtained data in your own database (e.g., PostgreSQL or Elasticsearch) to ensure quick search and filtering.

  3. Indexing and search: for complex filters and full-text search, it is better to use Elasticsearch or similar engines that allow efficient searching across multiple parameters.

  4. Search service: implement a separate microservice in Go that will accept filter requests, formulate queries to the database/index, and return results.

  5. Caching: for frequently repeated queries, use cache (Redis) to reduce load.

  6. Data update: set up periodic synchronization with HeadHunter to keep data up-to-date.

  7. Security and restrictions: consider HeadHunter API limits, implement error handling, and restrict request frequency.

Architecture example:

  • Go service for integration with HH API and database updates
  • Elasticsearch for storage and search
  • REST API for frontend or other services

This approach will ensure flexibility, scalability, and fast filter processing.