In this C3 diagram, we explain how different components within the Matching System interact. The system manages saving stories and roles, extracting AI-based features, and generating matches between them. Due to the large size of the UI, it is not represented in this data flow. However, all interactions by Job Candidates and Employers happen through the UI, which communicates with the Matching API.
The Matching System orchestrates the extraction of features from stories and roles, the scoring of pairs of job positions and resumes, and the determination of matches. It uses asynchronous processes, AI feature extraction, and periodic checks for new or unmatched stories and roles.
- Deterministic Scoring
AI should only be used for feature extraction and not for the scoring and matching itself, as described in ADR-011: Deterministic Matching.
- Job Candidate or Employer requests the match status via the Matching API.
- The Matching API retrieves the match status from the Match Service.
- The Match Service reads the relevant data from the Shared Database.
- The Matching API sends the result back to the Job Candidate or Employer.
- Job Candidate or Employer submits an update request for a match state via the Matching API.
- The Matching API forwards the request to the Match Service.
- The Match Service writes the updated state to the Shared Database.
- A confirmation is sent back through the Matching API to the Job Candidate or Employer.
- The Feature Extractor periodically checks the Shared Database for pairs of open roles and stories without a score.
- The Feature Extractor sends the unrated stories or roles to the AI Feature Extraction Adapter (asynchronously).
- The AI Feature Extraction Adapter forwards the request to the AI Feature Extraction service (external, asynchronous).
- The AI Feature Extraction service processes the story or role and sends the extracted features back to the AI Feature Extraction Adapter.
- The AI Feature Extraction Adapter forwards the features to the Feature Extractor, which writes them to the Shared Database.
- The Match Creator periodically checks the Shared Database for combinations of open roles and stories that haven't been evaluated.
- The Match Creator analyzes the combinations and searches for potential matches.
- If a match is found, the Matches Publisher is notified.
- The Matches Publisher sends the match information to the Match Topic Queue for further processing.