You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a Streamlit-based web application that evaluates resumes (CVs) against job descriptions using Oracle Cloud Infrastructure's Generative AI via Langchain `ChatOCIGenAI`.
4
+
5
+
---
6
+
7
+
## 🔍 Features
8
+
9
+
- Upload multiple resumes in PDF format
10
+
- Select or input a job description
11
+
- Evaluate resumes using Oracle Gen AI
12
+
- Receive classification like `Excellent`, `Strong`, `Possible`, etc.
13
+
- Get profile summaries, missing keywords, and improvement suggestions
You are a highly advanced and experienced ATS (Application Tracking System) with deep expertise in evaluating resumes in the tech field.
84
+
85
+
Your task is to:
86
+
1. Give a unique name to the candidate
87
+
2. Evaluate the resume provided against the given job description (JD).
88
+
3. Assign a classification label for the match based on the alignment between the resume and the JD, using the following range:
89
+
- "Not Suited" (very low alignment with the JD)
90
+
- "Unlikely" (partial alignment but missing key qualifications or skills)
91
+
- "Possible" (moderate alignment with some gaps in experience or keywords)
92
+
- "Strong" (high alignment with minor gaps)
93
+
- "Excellent" (very high alignment with minimal to no gaps)
94
+
4. Identify keywords in the job description and list any missing keywords or key competencies essential for the role.
95
+
5. Summarize the candidates profile concisely.
96
+
6. Clearly explain why the resume is classified as such, including suggestions for improvement if applicable.
97
+
98
+
Here is the data:
99
+
Resume: {text}
100
+
Job Description: {jd}
101
+
102
+
Consider the competitive nature of the job market and ensure high accuracy in your evaluation. Your response MUST and always has to adhere to the following JSON structure:
103
+
{{"Name": "name", "JD Match": "classification label", "MissingKeywords": ["list of missing keywords"], "Profile Summary": "concise profile summary", "Reason": "reason for classification with improvement suggestions"}}
104
+
"""
105
+
106
+
defcvEvaluate():
107
+
"""
108
+
Launches the Streamlit web app, handles user inputs (job descriptions and resumes),
109
+
invokes the OCI Gen AI model, and displays the evaluation results.
110
+
"""
111
+
# Streamlit app
112
+
st.title("CV Evaluation (ATS) using Oracle Gen AI")
113
+
114
+
# Set up the session state for the job description
115
+
if"jd"notinst.session_state:
116
+
st.session_state["jd"] =""
117
+
118
+
st.header("Available Opportunities:")
119
+
col1, col2, col3=st.columns(3)
120
+
121
+
st.session_state["jd"] =st.text_area("Please provide the job description or select from the below open-opportunities")
122
+
# Place buttons in each column
123
+
withcol1:
124
+
ifst.button("Human Resources Specialist"):
125
+
st.session_state["jd"] ="""**Job Title**: Human Resources Specialist
126
+
127
+
**Company**: XYZ Energy
128
+
129
+
**Location**: London, UK
130
+
131
+
**Job Description**:
132
+
133
+
XYZ Energy is seeking a dedicated and proactive HR Specialist to join our team. In this role, you will support our mission of powering sustainable energy solutions by managing employee relations, recruitment, and organizational development.
134
+
135
+
**Key Responsibilities**:
136
+
137
+
- Coordinate end-to-end recruitment for various roles within the energy sector.
138
+
- Manage onboarding processes to ensure new hires integrate seamlessly.
139
+
- Provide support for employee relations, including conflict resolution and policy interpretation.
140
+
- Implement HR initiatives to enhance employee engagement and retention.
141
+
- Ensure compliance with employment laws and regulations.
142
+
143
+
**Qualifications**:
144
+
145
+
- Bachelor’s degree in Human Resources or related field.
146
+
- 2+ years of HR experience, preferably in the energy or utility sector.
147
+
- Strong interpersonal and organizational skills.
148
+
- Familiarity with HR software and best practices.
149
+
150
+
Join XYZ Energy and play a key role in fostering a thriving workplace culture that drives our commitment to sustainable energy."""
151
+
st.write("Human Resources Specialist role is selected")
XYZ Energy is seeking a dynamic and skilled Technical Specialist to join our innovative team. In this role, you will contribute to our mission of delivering sustainable energy solutions by leveraging your technical expertise to support and enhance operations, systems, and technology implementations.
163
+
164
+
Key Responsibilities:
165
+
166
+
Provide technical support for the implementation, maintenance, and optimization of energy systems and technologies.
167
+
Collaborate with cross-functional teams to identify and address technical challenges in energy projects.
168
+
Analyze system performance data to identify areas for improvement and recommend solutions.
169
+
Manage the integration of new technologies into existing operations, ensuring minimal disruption.
170
+
Support troubleshooting efforts, resolve technical issues, and deliver expert guidance to internal and external stakeholders.
171
+
Stay updated on emerging technologies and industry trends to maintain XYZ Energy's competitive edge.
172
+
Qualifications:
173
+
174
+
Bachelor’s degree in Engineering, Computer Science, or a related technical field.
175
+
3+ years of experience in a technical role, preferably within the energy or utilities sector.
176
+
Strong analytical and problem-solving skills with the ability to interpret complex technical data.
177
+
Hands-on experience with energy systems, software tools, and technical project management.
178
+
Excellent communication and collaboration skills to engage with diverse stakeholders.
179
+
A passion for sustainability and a commitment to supporting XYZ Energy's vision for a greener future.
180
+
Join XYZ Energy and help us drive innovation in the energy industry as we work together to power a more sustainable tomorrow."""
181
+
st.write("Technical Specialist role is selected")
182
+
withcol3:
183
+
ifst.button("Customer Support Agent"):
184
+
st.session_state["jd"] =""""Job Title: Customer Support Agent
185
+
186
+
Company: XYZ Energy
187
+
188
+
Location: London, UK
189
+
190
+
Job Description:
191
+
192
+
XYZ Energy is looking for a friendly and proactive Customer Support Agent to join our team. In this role, you will be the first point of contact for our customers, providing exceptional support and ensuring a seamless customer experience as we deliver sustainable energy solutions.
193
+
194
+
Key Responsibilities:
195
+
196
+
Respond to customer inquiries via phone, email, and chat, providing timely and accurate information.
197
+
Resolve customer issues, including billing, service requests, and technical concerns, with professionalism and efficiency.
198
+
Guide customers through the onboarding process and educate them about our energy solutions and services.
199
+
Maintain detailed records of customer interactions and escalate complex issues to the appropriate teams.
200
+
Collaborate with internal departments to ensure customer needs are met promptly and effectively.
201
+
Continuously seek feedback to improve the customer support experience and processes.
202
+
Qualifications:
203
+
204
+
High school diploma or equivalent; a bachelor’s degree is a plus.
205
+
1+ years of experience in a customer support or service role, ideally in the energy or utility sector.
206
+
Strong communication and interpersonal skills with a customer-first attitude.
207
+
Ability to handle challenging situations with empathy and problem-solving skills.
208
+
Proficiency in CRM systems and standard office software.
209
+
A passion for sustainable energy and a commitment to helping customers achieve their goals.
210
+
Join XYZ Energy and be a key player in delivering outstanding service to our customers while contributing to a greener future."""
211
+
st.write("Customer Support agent role is selected")
212
+
213
+
214
+
# Resumes to be analyzed
215
+
uploaded_files=st.sidebar.file_uploader("Upload Your Resumes", accept_multiple_files=True, type="pdf", help="Please upload the pdfs")
216
+
217
+
submit=st.button("Submit")
218
+
withst.spinner("Processing. Please wait...."):
219
+
ifsubmit:
220
+
ifuploaded_files:
221
+
print(st.session_state["jd"])
222
+
foruploaded_fileinuploaded_files:
223
+
ifuploaded_fileisnotNone:
224
+
resume_text=input_pdf_text(uploaded_file)
225
+
resume_name=os.path.splitext(uploaded_file.name)[0] # Use file name without extension as candidate name
0 commit comments