MuhammadQASIM111 commited on
Commit
13b588b
·
verified ·
1 Parent(s): b29fff9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -21
app.py CHANGED
@@ -41,6 +41,7 @@ def extract_text_from_resume(file_path):
41
  else:
42
  return "Unsupported file format."
43
 
 
44
  resume_feedback = Agent(
45
  role="Professional Resume Advisor",
46
  goal="Give feedback on resumes.",
@@ -48,12 +49,6 @@ resume_feedback = Agent(
48
  backstory="Experienced in making resumes stand out."
49
  )
50
 
51
- resume_feedback_task = Task(
52
- description="Provide detailed feedback on resumes.",
53
- expected_output="Resume feedback with an overall score.",
54
- agent=resume_feedback
55
- )
56
-
57
  resume_advisor = Agent(
58
  role="Professional Resume Writer",
59
  goal="Enhance resumes based on feedback.",
@@ -61,13 +56,6 @@ resume_advisor = Agent(
61
  backstory="Expert in refining resumes to highlight key strengths."
62
  )
63
 
64
- resume_advisor_task = Task(
65
- description="Rewrite the resume based on feedback.",
66
- expected_output="Enhanced resume in markdown format.",
67
- context=[resume_feedback_task],
68
- agent=resume_advisor
69
- )
70
-
71
  search_tool = SerperDevTool()
72
 
73
  job_researcher = Agent(
@@ -78,12 +66,27 @@ job_researcher = Agent(
78
  backstory="Skilled in finding job opportunities based on candidate qualifications."
79
  )
80
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  research_task = Task(
82
  description="Find 5 relevant jobs based on the resume.",
83
  expected_output="List of 5 job openings with links.",
84
  agent=job_researcher
85
  )
86
 
 
87
  crew = Crew(
88
  agents=[resume_feedback, resume_advisor, job_researcher],
89
  tasks=[resume_feedback_task, resume_advisor_task, research_task],
@@ -91,15 +94,20 @@ crew = Crew(
91
  )
92
 
93
  def resume_agent(file_path, location):
 
94
  resume_text = extract_text_from_resume(file_path)
 
 
 
95
  result = crew.kickoff(inputs={"resume": resume_text, "location": location})
96
-
97
- feedback = resume_feedback_task.output.raw.strip("```markdown").strip()
98
- improved_resume = resume_advisor_task.output.raw.strip("```markdown").strip()
99
- job_roles = research_task.output.raw.strip("```markdown").strip()
100
-
101
  return feedback, improved_resume, job_roles
102
 
 
103
  with gr.Blocks() as demo:
104
  gr.Markdown("# Resume Feedback and Job Matching Tool")
105
  gr.Markdown("*Expected Runtime: 1 Min*")
@@ -111,9 +119,9 @@ with gr.Blocks() as demo:
111
  submit_button = gr.Button("Submit")
112
 
113
  with gr.Column():
114
- feedback_output = gr.Markdown(label="Resume Feedback")
115
- improved_resume_output = gr.Markdown(label="Improved Resume")
116
- job_roles_output = gr.Markdown(label="Relevant Job Roles")
117
 
118
  submit_button.click(
119
  lambda: gr.update(value="Processing..."),
 
41
  else:
42
  return "Unsupported file format."
43
 
44
+ # Define Agents
45
  resume_feedback = Agent(
46
  role="Professional Resume Advisor",
47
  goal="Give feedback on resumes.",
 
49
  backstory="Experienced in making resumes stand out."
50
  )
51
 
 
 
 
 
 
 
52
  resume_advisor = Agent(
53
  role="Professional Resume Writer",
54
  goal="Enhance resumes based on feedback.",
 
56
  backstory="Expert in refining resumes to highlight key strengths."
57
  )
58
 
 
 
 
 
 
 
 
59
  search_tool = SerperDevTool()
60
 
61
  job_researcher = Agent(
 
66
  backstory="Skilled in finding job opportunities based on candidate qualifications."
67
  )
68
 
69
+ # Define Tasks
70
+ resume_feedback_task = Task(
71
+ description="Provide detailed feedback on resumes.",
72
+ expected_output="Resume feedback with an overall score.",
73
+ agent=resume_feedback
74
+ )
75
+
76
+ resume_advisor_task = Task(
77
+ description="Rewrite the resume based on feedback.",
78
+ expected_output="Enhanced resume in markdown format.",
79
+ context=[resume_feedback_task],
80
+ agent=resume_advisor
81
+ )
82
+
83
  research_task = Task(
84
  description="Find 5 relevant jobs based on the resume.",
85
  expected_output="List of 5 job openings with links.",
86
  agent=job_researcher
87
  )
88
 
89
+ # Crew Setup
90
  crew = Crew(
91
  agents=[resume_feedback, resume_advisor, job_researcher],
92
  tasks=[resume_feedback_task, resume_advisor_task, research_task],
 
94
  )
95
 
96
  def resume_agent(file_path, location):
97
+ """Runs the AI pipeline to process resume and provide feedback, enhancements, and job recommendations."""
98
  resume_text = extract_text_from_resume(file_path)
99
+ if "Unsupported" in resume_text:
100
+ return "Invalid file format. Please upload a PDF or DOCX file.", "", ""
101
+
102
  result = crew.kickoff(inputs={"resume": resume_text, "location": location})
103
+
104
+ feedback = getattr(resume_feedback_task.output, 'raw', "").strip("```markdown").strip() if resume_feedback_task.output else "No feedback available."
105
+ improved_resume = getattr(resume_advisor_task.output, 'raw', "").strip("```markdown").strip() if resume_advisor_task.output else "No revised resume available."
106
+ job_roles = getattr(research_task.output, 'raw', "").strip("```markdown").strip() if research_task.output else "No job listings found."
107
+
108
  return feedback, improved_resume, job_roles
109
 
110
+ # Gradio UI
111
  with gr.Blocks() as demo:
112
  gr.Markdown("# Resume Feedback and Job Matching Tool")
113
  gr.Markdown("*Expected Runtime: 1 Min*")
 
119
  submit_button = gr.Button("Submit")
120
 
121
  with gr.Column():
122
+ feedback_output = gr.Markdown()
123
+ improved_resume_output = gr.Markdown()
124
+ job_roles_output = gr.Markdown()
125
 
126
  submit_button.click(
127
  lambda: gr.update(value="Processing..."),