All right. So you just learned a lot about agents. We talked about all the different features. But this lesson is super important, because this lesson it's we're going full circle. We're basically going back into lesson one and talking about that use case that we showed where we're going to help you build this agent that will help you apply for jobs. These agents are going to be able to look at the job postings, understanding its requirements, and then cross that over with your current resume and your skills and make sure that we tailor your resume to apply for jobs. It's a very interesting use case, and we're going to get the chance to apply everything that we learned so far. So let's look into that. So in this lesson ,we're going to be building a super interesting crew. We are going full circle to the crew that we mentioned in the first lesson. We are going to be building a crew that will help us to increase our odds of getting an interview by tailor making, our resume me for a specific job application. I'm so excited about this, honestly. By now, you're already understand that this is the future of work and engineering, and I truly believe that AI agents are a key part of the future businesses and how you, as an engineer, can drive an immense impact on your job and your career. So, let's talk about this crew, what is the process and what is the goal? We talked about these in other lessons, so let's dive right into that. So what is the goal? The goal is to maximize your chances of getting an interview for a given job posting and the process throughout we are able to achieve that is one, learning the job requirements. Then two: crossing those requirements with your specific skill set and experiences. And then we reshape your resume to highlight your relevant areas. And then we rewrite that resume with the appropriate language. And then as a bonus, we can also have this crew sell some talking points for an initial interview, something that you can read before jumping into the call, and that will help you understand how you can better highlight your skills in a way that makes you look good for that job position. So let's jump right into the code. All right. So let's get the boilerplate code out of the way, making sure that we don't get any warnings and that import or trimming classes the agent, the task, and the crew class. Now, we have those three classes right for us. Let's make sure that we also add or environment variables so that we send our models we're going to be working with. In this case we are using GPT- 4 turbo. And you're going to notice that we are using serper dev again. You're going to be provided with a key or you're going to be able to create an account and get a key from there. All right. Now let's focus on the tools that we are going to be using. And there is a set of different tools that we're going to be using for this one. All of those tools are coming from the crewAI package tools. And you can see there are four of them. There is the file read tool, there's the scrape website tool, there is the MDX search tool, and there is the Serp dev tool. 61 00:03:17,430 --> 00:03:20,333 Let's go over each one of them. The search tool, we already know about that, allows us to search the internet. The scrape tool, we also have used it, allow us to scrape a website content. The read resume tool, is using the file read tool, and making sure that it only allows the agent to read one specific file. In this case is a fake resume That is written as a markdown, and I'm going to show you that file in a second. And then the final tool: is the MDX search tool. This allows us to perform RAG over our fake resume. So, we can do semantic search over anything that is in or resume. So let's create those tools and get those files. All right. So let's start by looking at this fake resume file so that we can see what we are working with. This is what the fake resume file looks. And all of this is made up, so in this case, we have our buddy Noah Williams. And you can see in here Noah's profile, his work history, everything that he have been up to throughout his career. You can see that it has an MBA. It knows a lot about leadership and it has like been calling out his leadership achievements throughout his entire resume. You can see that it defines himself as a software engineer leader, and talks about how he excelled in leading both remote and in-office engineering teams. So, you can see that this is more of a profile for someone that is applying to a manager role. Which is okay. But if you look further, you're going to realize that Noah Williams is also a very good engineer. He has experience with Ruby, Python, JavaScript, TypeScript, elixir. And you're going to find that he hid them in his work history. There's a lot of amazing gems of technical work that he has built throughout his career, but is not being highlighted in the right way. Again, depending on what job he might be applying. All right, let's go back to our code. So now that we have our tools, let's start creating our agents. And for this crew, we're going to create four different agents. The first one is going to be a researcher agent. So let me copy this. And just paste it in here. So this agent is a tech job researcher. Its goal is to make sure that doing analysis on the job posting, it's basically trying to understand what are the needs behind that job posting, what are their what is the company trying to achieve with their job posting? What is the kind of person that they're trying to hire? So this is what these agents are going to be responsible for. Now let's create our second agent. Our second agent is a profiler. So this profiler basically does a research on the job applicants and tries to understand some of the crossover. So, looking at the resume and the job posting, what are the things that stand out in there that makes this person actually look like a good match for this job opening. So this agent is going to be very important in this crew, because it's going to be the one that's going to highlight the things that we want to really pop up. So now let's go for a third agent. Our third agent is a resume strategist. It's the one that's is going to actually updated resume. It's going to learn about the job postings and learn about the skills that the person has that has found around the intersection. So it's going to write that down. You can see that among our three agents, all of them have access to a few different dev tools. The resume strategist one is going to be able to scrape the internet, search the internet, read the resume and do a semantic search over the resume. So it's a very capable agent. On top of that, we need one final agent. We want one agent to help us to prepare for the coming interview. So this is the engineering interview preparer. This agent is going to, once that things wrap up, make sure to put together questions and answers and talking points that you want to come prepared to when going to this interview, assuming we get it. It's a great way for us to make sure that we're feeling confident and that we know that we can highlight our skills in a way that makes sure that the employer understands that we are a good fit for that job opening. So now that we have created our four agents, we are ready to create our tasks and we are going to use four different tasks. One task for every agent. And you can already see some of the interpolation going on here. You can see that we expect a job posting URL. The second task is the profiling task is the task that is actually responsible to cross some information about you that you're trying to apply to this job and the actual job position. So you can see that in here, there are other variables that are being interpolated, like a GitHub URL and even like, a personal note on some of the things that you have been doing as a professional. So that is also something that we are going to leverage in here. Now for the third task, we are going to do a resume strategy task. This task is going to be the one responsible for actually updating the resume. And you can see in here that we are outputting a file out of this task. So we're going to have a new file at the end of this crew that is going to be your tailored resume. So we are going to start from your actual resume. And we're going to have a new one that is now optimized for that job posting. So we can go ahead and create that task. And now or final task is the one that is going to help you prepare for the interview. It's going to put together the talking points, your relevant to the job posting so that you feel ready for that. And you're going to notice that this task is also writing its results into a file. In this case, the interview materials markdown file. And then you're going to be able to look into that later once that this crew finishes up. Okay. We created all of our tasks. Now it's time for us to put this crew together. So let's start by creating our crew and bringing all the agents and all the tasks within it. Now that we have this crew, before we kick it off, we need to make sure that we covered all the inputs and all the interpolations that we expected through all of it. So in this case, that's quite a few. Let me paste them here. So you can see that we expect a job posting URL, a GitHub URL, and a person right up where you can explain a little bit about yourself with a few words and the things that you think that make you suitable for this job posting. All right. So now that we have our inputs ready before we kick this crew off, let's go back to the tasks just so that we fully understand what is happening with this crew. This is going to be a very interesting exercise for us. So let's look at our tasks. If you look at the research task, you're going to notice that it's allowing us to execute that task in parallel. What it means that we're going to have one agent working on that at the same time that we're going to have another agent working on the next task, the profile task. Because you can see that also has the sync execution set to true. So you can see that in this case we're going to have one agent doing research and the job posting at the same time that we're going to have another agent doing a research on your profile. So this is great because we are saving on time by making this our crew execute faster because those two tasks can be executed in parallel. But then for our third task, the resume strategy task, we want to make sure that it's using the output from both tasks that happened beforehand, so that these tasks can get their results to off the resume research, but also from the job application research. And you can see that we do this here on this context argument, where we basically say that the context for this task, it's actually those two tasks that were executed above. So even if the profile tasks finish executing earlier in the research task is still going on, the resume strategy task is going to wait until both of those tasks finishes before it can actually move on and use those context in order to come up with a new strategy for your resume. All right. So now that we understand what is going on, well, let's go ahead and kick off our crew. So, in here you can see that two tasks are initiated in parallel. Our tech job researcher is just started doing its work. And the personal profiler for engineer has also started doing its work. So both are doing their work in parallel as expected. Let's see how they're doing. So you can see that one of them is doing the compilation on the profiles for Noah. It's basically trying to check GitHub contributions looking at the website to kind of like do some scraping on that. And you can see that's going to try to get as much information from that URL as possible. You can also see that our other agent is actually scraping the job posting and trying to learn as much as it can about what is the actual posting and the actual needs for that job. So let's dig along and see how that goes. All right, so you can see here now that one of the agents finished up its work. It now understands all the necessary skills for this job posting and understands the qualifications that this person must have, the experiences that are expected and also the characteristics of what would be a good match for this position. So now that we understand all that we can see for other agent already finished its research as well. All right. We can see that our other agent also finished the research on Noah. And now it knows everything about Noah. It knows its SKUs, what it has been up to, what are the languages that it's most proficient about. And one of the things that Noah's interested in. So, now we can have our resume the strategy agent, kind of bring those two set of information together to write you a tailor-made resume for this job posting. So let's see how that goes. So in here we can see that our agent starts by reading the original resume. So he understands everything that's in there. And it's going to use that as a starting point. You can see that it now rewrote the resume to highlight the main things That are going to make Noah look like the best match possible for this job posting. And by the end of this, you can see that now, the engineering interview prepare is kind of during the questions and some of the talking points that you're going to be able to use to prepare yourself for the interview if you get it. All right. So this should be most of our crew execution. Let's look at what the actual end files are. So let's look at what the tailor-made the resume looks like. So you can see if we put it side to side with the fake resume, that it changes things is likely. Before no one was highlighting how he was an amazing software engineering leader. But now he's highlighting how he's a full stack developer that has a lot of experience with software engineering. You can see that he was mentioning so much like this Skus, Ruby, and Python, but it was kind of like buried in there. But in here, it's being very clear that he's proficient in multiple programing languages and talking about all of them. You can see that before, Noah didn't mention some of his knowledge in databases, but now it does. It mentions that it knows MySQL and MongoDB. And if we dive into Noah's work history, we can see how it now it's more trimmed down to the things that actually matter for this position. Highlighting Noah's Sku's they're better matching, the better match the job posting and that makes sure that increase his odds of actually getting in the interview. And we're going to see these changes throughout the entire resume. Just making sure that it highlights the things that makes Noah look great. Now let's check the interview materials, the things that you're going to use to prepare in case you do get the interview. This is so good. You can see in here that it simulates and questions and talks about how you can prep to them, and even give you some talking points that would allow you to showcase your experience with specific frameworks or specific languages or database management, how things that are deemed relevant for that job posting. So with this, you should be able to go into this interview feeling confident and prepared to answer any questions that might be thrown your way. Now let's go back towards slides real quick so that we can recap, shall we? Just put together an amazing crew. And the reason why I like this crew so much, is because it's so practical. It helps you directly if you are trying to apply for a job. This is something that you could actually use today and that would increase your odds of actually getting interviews. So you should be feeling very proud of yourself for learning everything that you learned so far throughout all of these lessons. And I'm looking forward to see what you're going to be able to keep building with this. Now that you learned so much about multiple agent systems. All right, let's wrap this lesson here. And I see you in the next one.