Skip to content

Changes made for Hiring Manager Co-pilot #162

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions match_profile_to_positions/.env.example

This file was deleted.

3,325 changes: 1,610 additions & 1,715 deletions match_profile_to_positions/poetry.lock

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
read_jd_task:
description: >
Extract relevant information from the given JD. Focus on the role level, role compentency expectations and candidate expectations
Ensure to capture the expectations around execution mindset, techincal expertise and strengthening organization.

JD file: ./src/match_to_proposal/data/mlswejd.md
expected_output: >
A structured summary of the JD, including:
- Role level
- Technical Skills
- Soft skills
- Responsibilites of the role
read_hp_task:
description: >
Extract relevant information from the given Hiring Plan template. Focus on extracting the questions in the job profile, areas of key responsibility, measurements of success & major key performance objectives and the Job requirements sections
HP file: ./src/match_to_proposal/data/hp.md'
expected_output: >
A structured list of questions for each section including:
- Job profile
- Areas of key responsibility
- Measurements of success & major key performance objectives
- Job requirements

hp_generator_task:
description: >
Answer the questions in the different sections of the hiring plan using data from the JD.
Don't add any information that doesn't exist in the JD. Keep the answers very concise. 2-3 bullet points only
Finally, suggest a set of behavioral questions to ask the candidates based on the company's expected behaviors by level. See behaviors.csv for the expected behaviors

JD file: ./src/match_to_proposal/data/mlswejd.md
HP file: ./src/match_to_proposal/data/hp.md'
Behaviors file: ./src/match_to_proposal/data/behaviors.csv
expected_output: >
A structured output that contains answers for each question in the list of questions for each section including:
- Job profile
- Areas of key responsibility
- Measurements of success & major key performance objectives
- Job requirements
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
hp_reader:
role: >
HP Reader
goal: >
Extract job profile, areas of key responsibility, Measurements of Sucess and Major Key Performance objectives and Job requirments
backstory: >
You are an expert at extracting relevant sections from a flat text template document

jd_reader:
role: >
Job Description Parser
goal: >
Extract job description including required skills, and responsibilities.
backstory: >
As a seasoned hiring manager, you have a knack for interpreting job descriptions.

hp_generator:
role: >
hp_generator
goal: >
Answer the questions in the hiring plan template using data from the job description.
backstory: >
You are a seasoned hiring manager who has expertise in drafting hiring plans that match the job descriptions

Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ matcher:
Match the CV to the job opportunities based on skills and experience.
backstory: >
A seasoned recruiter, you specialize in finding the perfect fit between candidates and job roles.

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
cf_reader:
role: >
CF Reader
goal: >
Extract competencies from from the CSV file, such as role type, role level and competencies
backstory: >
With years of experience in HR, you excel at understanding the career frameworks by role type & level.

jd_reader:
role: >
Job Description Parser
goal: >
Extract job description including role type, role level, required skills, and responsibilities.
backstory: >
As a seasoned hiring manager, you have a knack for interpreting job descriptpions.

matcher:
role: >
Matcher
goal: >
Match the JD to the career framework based on role type and level.
backstory: >
As a data analyst who has transitioned to HR, you specialize in fine tuning the job description to match the career framework and you can therefore easily identify matches and gaps between the framework expectations and the job description.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
read_jd_task:
description: >
Extract relevant information from the given JD. Focus on the role level, role compentency expectations and candidate expectations
Ensure to capture the expectations around execution mindset, techincal expertise and strengthening organization.

JD file: {path_to_jd}
expected_output: >
A structured summary of the JD, including:
- Role level
- Execution expectations
- Technical expectations
- Organizational expectations

match_cf_task:
description: >
Match the JD to the career framework based on role level, compentencies around execution, technical skills and organizational needs.
Evaluate how well the job description matches the career framework,
focusing on the alignment of competencies at the role level

Career framework file: {path_to_cf_csv}
expected_output: >
A list of competencies that best match the JD, including:
- Competency from the career framework and the relevant JD requirement
A list of competencies that least match the JD, including:
- Competency from the career framework and a suggestion for what can be included in the JD for this expectation
42 changes: 28 additions & 14 deletions match_profile_to_positions/src/match_to_proposal/crew.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,53 @@
@CrewBase
class MatchToProposalCrew():
"""MatchToProposal crew"""
agents_config = 'config/agents.yaml'
tasks_config = 'config/tasks.yaml'
agents_config = 'config/HPagents.yaml'
tasks_config = 'config/HPTasks.yaml'

@agent
def cv_reader(self) -> Agent:
def jd_reader(self) -> Agent:
return Agent(
config=self.agents_config['cv_reader'],
config=self.agents_config['jd_reader'],
tools=[FileReadTool()],
verbose=True,
allow_delegation=False
)

@agent
def matcher(self) -> Agent:
def hp_reader(self) -> Agent:
return Agent(
config=self.agents_config['matcher'],
tools=[FileReadTool(), CSVSearchTool()],
config=self.agents_config['hp_reader'],
tools=[FileReadTool()],
verbose=True,
allow_delegation=False
)

@agent
def hp_generator(self) -> Agent:
return Agent(
config=self.agents_config['hp_generator'],
tools=[FileReadTool()],
verbose=True,
allow_delegation=False
)

@task
def read_cv_task(self) -> Task:
def read_jd_task(self) -> Task:
return Task(
config=self.tasks_config['read_cv_task'],
agent=self.cv_reader()
config=self.tasks_config['read_jd_task'],
agent=self.jd_reader()
)

@task
def match_cv_task(self) -> Task:
def read_hp_task(self) -> Task:
return Task(
config=self.tasks_config['read_hp_task'],
agent=self.hp_reader()
)
@task
def hp_generator_task(self) -> Task:
return Task(
config=self.tasks_config['match_cv_task'],
agent=self.matcher()
config=self.tasks_config['hp_generator_task'],
agent=self.hp_generator()
)

@crew
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Entry-Level Professionals,Professionals,,Managers / Team Leaders,,Functional Leaders,,Executives
1,2,3,4,5,6,7,8
"- Seeks to learn and asks questions to solve problems with guidance
- Listens to different points of view and seeks input before making a decision
- Speaks up when faced with uncertainty or concerns
- Owns and delivers high quality work; learns from mistakes
- Engages in feedback conversations
- Collaborates well with others
- Adapts to change and demonstrates a willingness to take on new work as it comes up
- Demonstrates our values and contributes to an inclusive culture","- Seeks to learn and asks questions to solve problems with increased independence
- Listens to different points of view and forms an opinion to make a decision
- Speaks up when faced with uncertainty or concerns
- Takes ownership over work, learns from mistakes, and understands priorities
- Has a continuous improvement mindset
- Gives, asks, and accepts feedback
- Collaborates well with others across teams
- Adapts to change, is flexible, and independently takes on new work
- Understands and demonstrates our values
- Contributes to an inclusive culture","- Asks questions to gather relevant context and solves problems independently
- Challenges assumptions and takes different points of view into account to make a decision
- Speaks up and engages in egoless debate to get a good outcome
- Takes ownership over work, learns from mistakes, and prioritizes effectively
- Identifies opportunities for continuous improvement
- Gives, asks, and accepts feedback regularly
- Collaborates well with others across teams
- Adapts to change, is flexible, and seeks opportunities to take on more
- Understands and demonstrates our values
- Contributes to an inclusive culture","- Gathers information, tests potential solutions, and guides others to look beyond the obvious solution
- Interrogates assumptions and data to make rigorous decisions
- Engages in and guides healthy, egoless debates
- Owns personal and team results and misses
- Identifies opportunities for continuous improvement across the team
- Consistently seeks feedback and proactively shares a tough message if needed
- Builds collaborative, cross-functional partnerships across Formation Bio
- Helps others be adaptable, flexible and open to change
- Demonstrates and embodies our values
- Helps to build diverse and inclusive teams","- Gathers information, tests potential solutions, and guides others to look beyond the obvious solution to complex, cross-functional problems
- Makes rigorous decisions when faced with ambiguity and/or conflicting points of view
- Owns personal and team results and misses
- Identifies opportunities for continuous improvement across teams and drives implementation
- Consistently seeks feedback and delivers difficult feedback with empathy
- Builds collaborative, cross-functional partnerships across Formation Bio
- Guides teams through change by helping individuals understand the why
- Demonstrates and embodies our values
- Builds diverse and inclusive teams","- Identifies and solves cross-functional problems, guides teams and individuals toward scalable solutions
- Makes rigorous decisions when faced with ambiguity and/or conflicting points of view while weighing team and company risks
- Guides teams to think differently and adopt a beginner’s mindset
- Owns cross-functional results while giving credit to others and misses while taking accountability
- Identifies opportunities for continuous improvement in order to raise the bar and drives implementation across own function
- Sets an example and holds others accountable to seek, share, and act on feedback
- Builds collaborative, cross-functional partnerships and helps to elevate other teams
- Commits to change and aligns teams towards the new direction, proactively communicating the why; remains calm when faced with adversity
- Champions and embodies our values
- Holds self and other leaders accountable to build diverse and inclusive teams
- Creates an environment where all employees feel they belong","- Leads teams across functions to solve company-wide problems with scalable solutions
- Drives decisions that impact company-wide strategy while ensuring rigor and owning risk
- Owns company-wide results and misses; and guides teams to consistently raise the bar
- Drives continuous improvement across Formation Bio by leading teams to think differently while adopting a beginner’s mindset
- Ensures feedback is shared cross-functionally in a constructive, growth oriented way, while also driving action
- Builds collaborative, cross-functional partnerships that put the needs of the team and company first
- Anticipates and leads teams through change while understanding the implications of cross-functional actions
- Guides teams to be resilient and collaboratively navigate adversity
- Champions and embodies our values, proactively addresses others when values are not being upheld
- Holds self, other leaders and functions accountable to build diverse and inclusive teams
- Creates an environment where all employees feel they belong","- Leads Formation Bio through periods of change and ambiguity with a hypothesis driven, solutions oriented approach
- Does what’s best for Formation Bio and ensures that the mission is our north star that informs everything we do
- Holds all employees accountable to think differently, respect cross-functional opinions and value diversity of thought when making decisions
- Recognizes and celebrates team wins and takes personal accountability for failures without placing blame on others
- Communicates a vision and strategy that guides the company forward
- Fosters a culture of feedback that drives continuous improvement and results
- Sets an example for others and holds leaders accountable to deliver, seek and take action on feedback
- Ensures Formation Bio is able to adapt to change and is set-up for long-term success
- Ensures Formation Bio’s values and commitment to DEI are upheld across the company as a whole
- Accountable for building a strong culture where diversity is celebrated and employees feel they belong at Formation Bio"
,,,,,,,
Note - Bolded words highlight how the levels change / increase in expectation,,,,,,,
Loading