Code Clinic | Building a ReAct Agent on LangChain with Memory
How to Use ReAct Agents to Automate Your Recruiting Process. A technical exploration.
Introduction
Before we jump into the technicalities of this exercise, let’s start by taking a step back.
Many agent projects fail because their goals and tasks are not well defined. AutoGPT suffers from that. We all know that goals should be specific, measurable, achievable, relevant, and time-bound. But what does that really mean?
While the goal “find me a new job” is achievable it fails in pretty much every other category. You can expect feedback from an agent only to be as generic as ‘apply to jobs in your network’.
And that’s the problem. Your agent does not know anything about you, the real experience you can bring to the team, or your “edge” in a hypercompetitive global recruiting market.
Combining memory and human feedback might solve that.
Goal
For this code clinic, I will define our “agent” as a front-line recruiter who automatically screens all applicants by sourcing and analyzing feedback from potential candidates.
In a real-world scenario, this could improve the application process for applicants significantly because our agents immediately engage with the candidate, collect required information, and end up making a decision to proceed or not with the candidate.
Problem
Why is this better, faster, cheaper? Today we submit our CVs, as hundreds of others hopefuls, through aggregator sites (Indeed, LinkedIn) to an ATS eligibility check. Job aggregators make the submission process so seamless that thousands of applicants apply for a role. That is not feasible for humans to manage. If you are hiring you need ATS.
Then days or weeks later candidates receive an automated rejection message because the keywords we carefully crafted into three bullet points per job covering years of work didn’t match what the ATS was looking for.
Likely, no human has ever looked at the document. But is that really a mistake of the applicant?
Proposed Solution
An agent that can pre-screen all applicants, inquire for additional information, and expand on an applicant’s experience outside of keyword matching.
For the solution to work, we aim to solve the following
Can the agent do the pre-screening for all candidates and not discriminate on gender, sex, age, etc.?
How can the agent capture more knowledge about the candidate?
How can the agent discern that a candidate is the right fit for the role?
We will be using LangChain for this exercise. Even though their documentation is terrible, their tool stack to build an agent is probably the most straightforward compared to other vendors.
Let’s build our agent.
If you have not done so, please like share, or subscribe.