Latest code changes committed
Browse files
src/ats/constants.py
DELETED
|
@@ -1,47 +0,0 @@
|
|
| 1 |
-
JOB_DESCRIPTION = """
|
| 2 |
-
# Junior React Developer
|
| 3 |
-
|
| 4 |
-
**Position:** Junior React Developer
|
| 5 |
-
**Duration:** 12-month contract with the possibility of extension based on performance and project needs.
|
| 6 |
-
|
| 7 |
-
We are seeking a motivated Junior React Developer to join our team and assist in the development of our cutting-edge Next.js web application. This project integrates the Vercel AI SDK to enhance user experience with advanced AI-driven features.
|
| 8 |
-
|
| 9 |
-
**Key Responsibilities:**
|
| 10 |
-
- Develop and maintain React components and Next.js applications.
|
| 11 |
-
- Integrate AI-driven features using the Vercel AI SDK.
|
| 12 |
-
- Collaborate with senior developers to design and implement new features.
|
| 13 |
-
- Optimize application performance and ensure responsiveness across different devices.
|
| 14 |
-
- Participate in code reviews and contribute to best practices.
|
| 15 |
-
- Troubleshoot and debug issues to ensure the highest quality of the web application.
|
| 16 |
-
|
| 17 |
-
**Qualifications:**
|
| 18 |
-
- 1-2 years of experience in front-end development with React and Next.js.
|
| 19 |
-
- Proficiency in JavaScript, TypeScript, CSS, and HTML.
|
| 20 |
-
- Experience with Git and RESTful APIs.
|
| 21 |
-
- Familiarity with Vercel AI SDK is a plus.
|
| 22 |
-
- Strong problem-solving skills and attention to detail.
|
| 23 |
-
- Excellent communication and teamwork abilities.
|
| 24 |
-
- Ability to work independently and take initiative on projects.
|
| 25 |
-
|
| 26 |
-
**What We Offer:**
|
| 27 |
-
- Opportunity to work with cutting-edge technologies and AI integration.
|
| 28 |
-
- Collaborative and supportive work environment.
|
| 29 |
-
- Mentorship from senior developers to help grow your skills.
|
| 30 |
-
- Potential for role extension and career advancement within the company.
|
| 31 |
-
- Flexible working hours and the possibility of remote work.
|
| 32 |
-
|
| 33 |
-
This role is ideal for someone looking to grow their skills in Next.js, React, and AI-powered web applications while contributing to impactful projects.
|
| 34 |
-
"""
|
| 35 |
-
|
| 36 |
-
SKILLS = [
|
| 37 |
-
"React",
|
| 38 |
-
"Next.js",
|
| 39 |
-
"JavaScript",
|
| 40 |
-
"TypeScript",
|
| 41 |
-
"Vercel AI SDK",
|
| 42 |
-
"CSS",
|
| 43 |
-
"HTML",
|
| 44 |
-
"Git",
|
| 45 |
-
"REST APIs",
|
| 46 |
-
"CrewAI",
|
| 47 |
-
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/ats/crews/resume_parser_crew/tools/resume_parser_tool.py
CHANGED
|
@@ -34,7 +34,7 @@ class ResumeParserTool(BaseTool):
|
|
| 34 |
|
| 35 |
# Basic fields using regex
|
| 36 |
data["email"] = re.search(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", text)
|
| 37 |
-
print("TEXT : ",text)
|
| 38 |
# Phone number extraction
|
| 39 |
phone_pattern = re.compile(r"""
|
| 40 |
(?:\+?\d{1,3}[-.\s]?)? # Optional country code
|
|
|
|
| 34 |
|
| 35 |
# Basic fields using regex
|
| 36 |
data["email"] = re.search(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", text)
|
| 37 |
+
#print("TEXT : ",text)
|
| 38 |
# Phone number extraction
|
| 39 |
phone_pattern = re.compile(r"""
|
| 40 |
(?:\+?\d{1,3}[-.\s]?)? # Optional country code
|
src/ats/utils/candidateUtils.py
CHANGED
|
@@ -94,12 +94,11 @@ def combine_candidates_with_scores(
|
|
| 94 |
"""
|
| 95 |
Combine the candidates with their scores using a dictionary for efficient lookups.
|
| 96 |
"""
|
| 97 |
-
print("COMBINING CANDIDATES WITH SCORES")
|
| 98 |
-
print("SCORES:", candidate_scores)
|
| 99 |
-
print("CANDIDATES:", candidates)
|
| 100 |
# Create a dictionary to map score IDs to their corresponding CandidateScore objects
|
| 101 |
score_dict = {score.id: score for score in candidate_scores}
|
| 102 |
-
print("SCORE DICT:", score_dict)
|
| 103 |
|
| 104 |
scored_candidates = []
|
| 105 |
for candidate in candidates:
|
|
@@ -117,7 +116,6 @@ def combine_candidates_with_scores(
|
|
| 117 |
)
|
| 118 |
)
|
| 119 |
|
| 120 |
-
print("SCORED CANDIDATES:", scored_candidates)
|
| 121 |
with open("lead_scores.csv", "w", newline="") as f:
|
| 122 |
writer = csv.writer(f)
|
| 123 |
writer.writerow(["id", "name", "email", "score"])
|
|
@@ -130,7 +128,7 @@ def combine_candidates_with_scores(
|
|
| 130 |
candidate.score
|
| 131 |
]
|
| 132 |
)
|
| 133 |
-
print("Lead scores saved to lead_scores.csv")
|
| 134 |
return scored_candidates
|
| 135 |
|
| 136 |
def send_email(file_path,to_email):
|
|
@@ -157,7 +155,7 @@ def send_email(file_path,to_email):
|
|
| 157 |
server.starttls()
|
| 158 |
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
|
| 159 |
server.send_message(msg)
|
| 160 |
-
print(f"Email sent to {to_email}")
|
| 161 |
|
| 162 |
except Exception as e:
|
| 163 |
print(f"Error sending to {to_email}: {e}")
|
|
|
|
| 94 |
"""
|
| 95 |
Combine the candidates with their scores using a dictionary for efficient lookups.
|
| 96 |
"""
|
| 97 |
+
# print("COMBINING CANDIDATES WITH SCORES")
|
| 98 |
+
# print("SCORES:", candidate_scores)
|
| 99 |
+
# print("CANDIDATES:", candidates)
|
| 100 |
# Create a dictionary to map score IDs to their corresponding CandidateScore objects
|
| 101 |
score_dict = {score.id: score for score in candidate_scores}
|
|
|
|
| 102 |
|
| 103 |
scored_candidates = []
|
| 104 |
for candidate in candidates:
|
|
|
|
| 116 |
)
|
| 117 |
)
|
| 118 |
|
|
|
|
| 119 |
with open("lead_scores.csv", "w", newline="") as f:
|
| 120 |
writer = csv.writer(f)
|
| 121 |
writer.writerow(["id", "name", "email", "score"])
|
|
|
|
| 128 |
candidate.score
|
| 129 |
]
|
| 130 |
)
|
| 131 |
+
#print("Lead scores saved to lead_scores.csv")
|
| 132 |
return scored_candidates
|
| 133 |
|
| 134 |
def send_email(file_path,to_email):
|
|
|
|
| 155 |
server.starttls()
|
| 156 |
server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
|
| 157 |
server.send_message(msg)
|
| 158 |
+
#print(f"Email sent to {to_email}")
|
| 159 |
|
| 160 |
except Exception as e:
|
| 161 |
print(f"Error sending to {to_email}: {e}")
|