Skip to main content

Overview

The Premium Subscription feature enables companies to access advanced capabilities, including real-time notifications when new applicants match their specific hiring criteria.

Subscription Model

Subscription Interface

Premium subscription plans comparison

Pricing (6.1.1)

Monthly Subscription

$30 USD per monthCompanies can subscribe using third-party payment systems:
  • Stripe
  • PayPal
The system records and displays premium status on the company profile page.

Expiration Notifications (6.1.2)

Email notification sent 7 days before subscription expires:
  • Subscription end date
  • Renewal instructions
  • Link to payment portal
Email sent when subscription officially expires:
  • Service termination notice
  • Features lost with expiration
  • Renewal options

Applicant Search Profile

Medium Level (6.2.1 - 6.2.4)

Premium companies can define and save custom search profiles for automatic candidate matching.

Technical Background

Skill Tags (6.2.2)
  • React
  • Spring Boot
  • Kafka
  • Docker
  • Python
  • AWS
  • Snowflake
Tags enable efficient matching against applicant profiles

Employment Status

Multiple Selection (6.2.3)
  • Full-time
  • Part-time
  • Fresher
  • Internship
  • Contract
If neither Full-time nor Part-time specified, both are included in matching

Location

Country Filter
  • Specify desired country
  • Matches applicants in that location
  • Used for sharding optimization

Salary Range

Flexible Range (6.2.4)
  • Minimum amount (defaults to 0 if not set)
  • Maximum amount (no limit if not set)
  • Includes applicants with undeclared salary
Example: 1000 - 2500 USD

Education Requirements

Highest Education Degree

Premium companies can specify desired education level:
  • Bachelor’s degree
  • Master’s degree
  • Doctorate degree

Real-Time Notifications

Ultimo Level (6.3.1)

Requires Kafka messaging platform implementation
Real-Time Matching Service The system implements an event-driven notification service:
1

Profile Change Event

Job Applicant creates or edits their profile
2

Kafka Producer

Job Applicant system publishes event to Kafka topic
3

Kafka Consumer

Dedicated consumer service in Job Manager system listens to topic
4

Match Evaluation

Consumer evaluates profile against ALL active premium company criteria
5

Notification Delivery

For each match, system delivers immediate real-time notification

Notification Delivery

  • WebSocket
  • Email
  • In-App
Real-time push notifications to active browser sessions

Search Profile Examples

Software Engineer Profile

{
  "profileName": "Full-Stack Software Engineers",
  "technicalSkills": ["React", "Spring Boot", "Docker"],
  "employmentStatus": ["FULL_TIME", "INTERNSHIP"],
  "country": "Vietnam",
  "salaryRange": {
    "min": 800,
    "max": null,
    "currency": "USD"
  },
  "education": ["BACHELOR", "MASTER"]
}

Data Engineer Profile

{
  "profileName": "Contractual Data Engineers",
  "technicalSkills": ["Python", "AWS", "Snowflake"],
  "employmentStatus": ["CONTRACT"],
  "country": "Singapore",
  "salaryRange": {
    "min": 1200,
    "max": null,
    "currency": "USD"
  },
  "education": ["MASTER", "DOCTORATE"]
}

Matching Logic

Criteria Evaluation

Skills Matching

Skills use OR logic - applicant needs at least ONE matching skill from the company’s required skills list.
Example:
  • Company requires: React, Spring Boot, Docker
  • Applicant has: React, Python
  • Result: MATCH (React matches)

Salary Compatibility

The system includes applicants when:
  • Applicant’s desired salary is within company’s range
  • Applicant hasn’t specified a desired salary
  • Company’s max salary is not set (open-ended)

Premium Features Summary

Real-Time Alerts

Instant notifications when candidates match your criteria

Custom Search Profiles

Save and manage multiple candidate search profiles

Priority Support

Dedicated support for premium subscribers

Advanced Analytics

Detailed insights on candidate matches and trends

Implementation Requirements

Database Schema

CREATE TABLE premium_subscriptions (
    id UUID PRIMARY KEY,
    company_id UUID NOT NULL,
    start_date TIMESTAMP NOT NULL,
    end_date TIMESTAMP NOT NULL,
    status VARCHAR(20) NOT NULL,
    payment_method VARCHAR(50),
    created_at TIMESTAMP DEFAULT NOW()
);

CREATE TABLE search_profiles (
    id UUID PRIMARY KEY,
    company_id UUID NOT NULL,
    profile_name VARCHAR(255) NOT NULL,
    technical_skills TEXT[],
    employment_status TEXT[],
    country VARCHAR(100),
    min_salary DECIMAL(10,2),
    max_salary DECIMAL(10,2),
    education_levels TEXT[],
    is_active BOOLEAN DEFAULT TRUE,
    created_at TIMESTAMP DEFAULT NOW()
);

Kafka Topics

Topic: applicant-profile-updates
{
  "eventType": "PROFILE_CREATED | PROFILE_UPDATED",
  "applicantId": "uuid",
  "timestamp": "2026-01-10T10:30:00Z",
  "data": {
    "skills": ["React", "Python"],
    "country": "Vietnam",
    "desiredSalary": 1500,
    "education": "BACHELOR",
    "employmentPreferences": ["FULL_TIME", "INTERNSHIP"]
  }
}

Testing Scenarios