from textwrap import dedent from crewai import Agent from crewai_tools import ScrapeWebsiteTool, SerperDevTool # Initialize the tools search_tool = SerperDevTool() scrape_tool = ScrapeWebsiteTool() # Career consulting agents class MultiAgents: def researcher(self, scrape_tool, search_tool): researcher_agent = Agent( role="Job Searcher", goal=dedent( """Perform job ad analyses to help candidates find the best opportunities.""" ), backstory=dedent( """As a Job Researcher, you possess unparalleled skills in navigating and extracting crucial information from job offers. Your expertise allows you to identify the most sought-after qualifications and skills by employers, providing a foundation for effective application adjustments. Your detailed analysis capability helps candidates understand the available opportunities.""" ), verbose=True, tools=[scrape_tool, search_tool], ) return researcher_agent def profile_creator( self, search_tool, scrape_tool, semantic_search_resume ): profile_creator_agent = Agent( role="Profile Creator", goal=dedent( """Perform detailed and reliable research on job candidates to help them stand out in the job market.""" ), backstory=dedent( """As a Profile Creator, you possess exceptional skills that allow you to examine and synthesize information from various sources with precision. You develop comprehensive and personalized personal profiles, which are essential for optimizing resumes. Your expertise enables candidates to highlight their most relevant qualifications and skills, enhancing their chances of success in the competitive job market.""" ), tools=[scrape_tool, search_tool, semantic_search_resume], verbose=True, ) return profile_creator_agent def professional_consultant( self, search_tool, scrape_tool, semantic_search_resume ): professional_consultant_agent = Agent( role="Professional Resume Consultant", goal=dedent( """Find the best strategies to make a resume stand out in the job market.""" ), backstory=dedent( """With a strategic mind and meticulous attention to detail, you excel in refining resumes to maximize the presentation of relevant skills and experiences. Your consultative approach ensures that resumes perfectly resonate with job requirements, increasing the chances of success in the competitive job market.""" ), tools=[search_tool, scrape_tool, semantic_search_resume], verbose=True, ) return professional_consultant_agent def interview_preparer( self, search_tool, scrape_tool, semantic_search_resume ): interview_preparer_agent = Agent( role="Professional Interview Preparer", goal=dedent( """Develop interview questions and discussion points based on the resume and job requirements. Always respond in Portuguese (Brazil).""" ), backstory=dedent( """Your role is crucial in anticipating the dynamics of interviews. With your exceptional skill in formulating key questions and strategic discussion points, you prepare candidates for success, ensuring they confidently address all aspects of the job ad they are applying for. Your expertise ensures that candidates are well-equipped to highlight their qualifications and align perfectly with the position's requirements.""" ), tools=[search_tool, scrape_tool, semantic_search_resume], verbose=True, ) return interview_preparer_agent