Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

When an employee opens a new referral request from a candidate, two questions usually come first: have these two people interacted before, and what happened the last time? In ReferralHub, a job-referral application described by its author, Sai Sailu, the answer is meant to come from a separate memory layer. Current request status stays in a relational database, and earlier context is retrieved from a memory service when the employee reviews the request. This article walks through that design, what the author says was built, and where the evidence stops.

What ReferralHub does

ReferralHub connects two sides of a hiring workflow. Candidates explore job opportunities, compare their profiles against open positions, and submit referral requests. Employees review those requests, inspect the match between each candidate and the job, and decide whether to refer or decline.

The author’s motivation is a practical gap. An employee who has handled earlier requests or conversations involving the same candidate has to rely on personal recollection or search old messages to reconstruct that history. ReferralHub is meant to surface relevant prior context at the moment a later request is reviewed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Separating current state from memory

The central design decision is that the project does not ask one store to do two jobs. Structured application data and transactional status live in MySQL. Contextual information about earlier interactions lives in Hindsight, a separate memory service that the Spring Boot backend integrates with. The author treats Hindsight as a source of background for decisions, not as a replacement for the database that records what the current state is.

MySQL: transactional state

MySQL holds the structured records the application needs to function: users, candidate profiles, jobs, companies, and referral requests. Referral status values such as pending, referred, and declined are stored here as transactional state, so the application always has one authoritative answer to “where does this request stand?”

Hindsight: contextual memory

Hindsight holds information about earlier interactions. It does not decide whether a request is pending or referred; that remains in MySQL. Its role is to help the employee understand the history behind a request.

HindsightService: retention and recall

The Spring Boot backend uses a service class, HindsightService, to manage memory operations. The author describes two of them:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Retention stores relevant information in an appropriate scope, so that it can be found later.
  • Recall searches for earlier context in response to a query, such as a candidate, a job, or a reviewing employee.

Memory scopes

Memory is organized into three scopes, which the author describes as a way to keep information sorted and to make recall more relevant:

  • Candidate context: prior interactions involving a particular candidate.
  • Employee context: what a particular employee has handled or discussed.
  • Job context: information tied to a specific position.

How the two stores compare

Concern MySQL Hindsight
Role in ReferralHub Structured application data and referral status Contextual information about earlier interactions
Examples of stored items Users, candidate profiles, jobs, companies, referral requests Relevant prior context retained by the backend
Answers the question “What is the current status?” “Have these people interacted before, and what happened?”
Accessed through Application data layer HindsightService retention and recall
Organizing unit Relational records Candidate, employee, and job scopes
Query and retrieval performance Not stated in the author’s write-up Not stated in the author’s write-up

The request lifecycle

The author describes the flow from discovery to decision as follows:

  1. A candidate discovers a job.
  2. The system calculates a profile match between the candidate and the position.
  3. The candidate submits a referral request.
  4. The request is stored in MySQL.
  5. Relevant context from the request is retained in Hindsight under the appropriate scope.
  6. The employee reviews the request and recalls prior context about the candidate, job, or their own earlier handling.
  7. The employee makes the referral decision, which is recorded as status in MySQL.

The useful property of this ordering is that memory is written at the point the interaction happens and read at the point a decision is made. The memory layer sits between those two moments and does not gate either one.

The match example and what it does not prove

The author’s write-up includes an illustrative match display, “AI Match: 70%,” with Java shown as matched and Spring Boot and SQL shown as missing. It is there to show what an employee might see during review. It is not a measured result. The write-up does not describe how the score is validated, how often it agrees with human judgment, or how accurate it is for any set of candidates. Readers should treat the number as a UI example, not as evidence about matching quality.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the design lesson is

The author’s takeaway is stated directly: “The purpose of memory is not simply to store more information. It is to make useful information available when it is needed.”

The same point explains why the architecture matters. Adding a memory system does not make an application better on its own. In this project, memory is justified only if it changes what an employee can understand during the next referral interaction. Keeping status in MySQL and history in Hindsight is how the author tries to make that distinction concrete.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What is and is not established

The write-up is the author’s own account of a project. It is a reliable description of what the author says the design contains: the separation of MySQL and Hindsight, the retention and recall operations, and the three memory scopes. It does not provide independent evidence that the system works as intended.

  • No independent evaluation, reliability benchmark, or security assessment is reported.
  • No measured memory-retrieval performance is reported.
  • No production deployment or user outcome data is reported.
  • The implementation details beyond the described components, including how privacy, access control, retention periods, and deletion are handled, are not described in the text available for this article.

Evaluating a similar architecture

If you are considering a comparable design, the author’s account suggests four questions to answer for your own system:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Responsibility split: which store is authoritative for current state, and which holds contextual history?
  • Scoping and querying: how are memories grouped, and what does a recall query look like?
  • Relevance and attribution: can a recalled item be traced to a specific earlier interaction, and is it relevant to the decision in front of the reviewer?
  • Operational controls: what are the requirements for privacy, access control, retention, and deletion of memory data? These need to be designed explicitly and are not covered by the ReferralHub write-up.

The first two questions are answered by the ReferralHub design. The last two are open questions for any implementation, including this one.

Where to read the original

The project account is by Sai Sailu. For the full description of the architecture and its workflow, read the original write-up directly, and treat this article as a guide to its structure and its limits.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.