Skip to main content

Overview

The Applicant Search module enables companies to proactively search for qualified candidates based on various criteria including location, education, experience, and technical skills.

Search Criteria

Simplex Level (5.1.1 - 5.1.4)

Location

  • City OR Country (select one)
  • Single value per search

Education

  • Bachelor
  • Master
  • Doctorate

Work Experience

  • None
  • Any
  • Keyword search (case-insensitive)

Employment Types

Multiple selection allowed:
  • Full-time
  • Part-time
  • Internship
  • Contract

Search Result Display

Basic Information Shown:
  • First Name
  • Last Name
  • Email
  • City
  • Country
  • Highest Education Degree
Detailed View: Click on applicant to see:
  • All basic information above
  • Education history
  • Work Experience details
  • Objective Summary

Medium Level Features

Full-Text Search (5.2.1)

Search across multiple fields simultaneously:
  • Work Experience
  • Objective Summary
  • Technical Skills
Example: Search for “software engineer python” finds applicants with these terms in any of the three fields.

Technical Skills Filtering (5.2.2)

Uses OR logic for multiple skills
Skill Tag Search:
  • Filter by technical skill tags
  • Example: Search for “Kafka, Java, MongoDB”
  • Returns applicants with Kafka OR Java OR MongoDB
  • Not all three skills required
Common Skill Tags:
  • Languages: Python, Java, JavaScript, Go, Rust
  • Frameworks: React, Spring Boot, Django, Angular
  • Databases: MongoDB, PostgreSQL, MySQL, Redis
  • Tools: Docker, Kubernetes, Kafka, Git

Performance Optimizations

  • Search results loaded incrementally
  • Improves performance with large datasets
  • Smooth scrolling experience
  • Reduces initial load time
Search page responsive to:
  • Desktop devices
  • Mobile devices
  • Tablet devices
  • Adaptive layout and controls

Skill Tags Display (5.2.5)

Visual Skill Indicators

Each applicant result displays their skill tags for quick assessment:
  • Color-coded tags
  • Easy visual scanning
  • Quick skill matching

Ultimo Level Features

Database Sharding Optimization (5.3.1)

Requires database sharding implementation
Sharding Strategy:
  • Use Country as sharding key
  • Queries routed to relevant shard only
  • Significantly improves search performance
  • Reduces database load
Default Behavior:
  • System defaults to Vietnam location
  • Can be changed by user
  • Optimizes for primary user base

Applicant Marking System (5.3.2)

  • Favorite
  • Warning
  • Mark promising candidates
  • Quick access for future reference
  • Indicated in search results
  • Company-specific favorites
Marking Contexts:
  • From profile view
  • From job application review
  • Visual indicators in search results

Search Interface

Basic Search Example

{
  "location": {
    "type": "COUNTRY",
    "value": "Vietnam"
  },
  "education": ["BACHELOR", "MASTER"],
  "workExperience": {
    "type": "KEYWORD",
    "value": "software engineer"
  },
  "employmentTypes": ["FULL_TIME", "INTERNSHIP"]
}

Advanced Search with Skills

{
  "location": {
    "type": "CITY",
    "value": "Ho Chi Minh City"
  },
  "skills": ["React", "Spring Boot", "Docker"],
  "education": ["MASTER"],
  "fullTextSearch": "backend development microservices"
}

Search Flow

Implementation Guidelines

All text searches must be case-insensitive to ensure comprehensive results
Examples:
  • “Software Engineer” = “software engineer” = “SOFTWARE ENGINEER”
  • “python” = “Python” = “PYTHON”

Performance Considerations

1

Index Fields

Create database indexes on searchable fields
2

Use FTS Engine

Implement full-text search engine (Elasticsearch, MongoDB Atlas Search)
3

Implement Pagination

Use cursor-based or offset pagination for lazy loading
4

Cache Results

Cache frequently accessed searches in Redis

Data Integration

Applicant profile data must be consumed from Job Applicant subsystem API
Required API Calls:
  • GET /api/applicants/search
  • GET /api/applicants//profile
  • GET /api/applicants//documents