Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstalliTechGuides 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.
Recommended Free Tools
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.
#1 Best Overall
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.
Rank #2
HindsightService: retention and recall
The Spring Boot backend uses a service class, HindsightService, to manage memory operations. The author describes two of them:
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →- 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:
Rank #3
- 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:
- A candidate discovers a job.
- The system calculates a profile match between the candidate and the position.
- The candidate submits a referral request.
- The request is stored in MySQL.
- Relevant context from the request is retained in Hindsight under the appropriate scope.
- The employee reviews the request and recalls prior context about the candidate, job, or their own earlier handling.
- 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.
Rank #4
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.
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.”
Best Value
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.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:
- 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.
Quick Recap
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.

