This commit is contained in:
feder-cr 2024-08-23 22:20:48 +01:00
parent b85a3c4719
commit 08fa73c8de
11 changed files with 570 additions and 186 deletions

3
.gitignore vendored
View File

@ -6,11 +6,8 @@ test*
openaiSelenium*
open_ai_calls.json
_*
data_folder*
.venv
generated_cv*
resume.html
.vscode
chrome_profile
lib*
answers.json

311
README.md
View File

@ -175,55 +175,281 @@ This file contains your resume information in a structured format. Fill it out w
Each section has specific fields to fill out:
- `personal_information:`
- Contains basic personal details
- Example: `name: "John Doe"`
#### Personal Information
- `self_identification:`
- Optional demographic information
- Example: `gender: "Male"`
##### Description
This section contains basic personal details to identify yourself and provide contact information.
- `legal_authorization:`
- Work authorization status
- Use `true` or `false` for each field
- Example: `usWorkAuthorization: true`
- **name**: Your first name.
- **surname**: Your last name or family name.
- **date_of_birth**: Your birth date in the format DD/MM/YYYY.
- **country**: The country where you currently reside.
- **city**: The city where you currently live.
- **address**: Your full address, including street and number.
- **phone_prefix**: The international dialing code for your phone number (e.g., +1 for the USA, +44 for the UK).
- **phone**: Your phone number without the international prefix.
- **email**: Your primary email address.
- **github**: URL to your GitHub profile, if applicable.
- **linkedin**: URL to your LinkedIn profile, if applicable.
- `work_preferences:`
- Your work-related preferences
- Use `true` or `false` for each field
- Example: `remoteWork: true`
##### Example
```yaml
personal_information:
name: "Jane"
surname: "Doe"
date_of_birth: "01/01/1990"
country: "USA"
city: "New York"
address: "123 Main St"
phone_prefix: "+1"
phone: "5551234567"
email: "jane.doe@example.com"
github: "https://github.com/janedoe"
linkedin: "https://www.linkedin.com/in/janedoe/"
```
- `education_details:`
- List your educational background
- Include degree, university, GPA, graduation year, field of study, and skills acquired
- Example:
```yaml
- degree: "Bachelor's"
#### Education Details
##### Description
This section outlines your academic background, including degrees earned and relevant coursework.
- **degree**: The type of degree obtained (e.g., Bachelor's Degree, Master's Degree).
- **university**: The name of the university or institution where you studied.
- **gpa**: Your Grade Point Average or equivalent measure of academic performance.
- **graduation_year**: The year you graduated.
- **field_of_study**: The major or focus area of your studies.
- **exam**: A list of courses or subjects taken along with their respective grades.
##### Example
```yaml
education_details:
- degree: "Bachelor's Degree"
university: "University of Example"
gpa: "3.8"
graduationYear: "2022"
fieldOfStudy: "Computer Science"
skillsAcquired:
problemSolving: "4"
```
gpa: "3.8/4"
graduation_year: "2022"
field_of_study: "Software Engineering"
exam:
Algorithms: "A"
Data Structures: "B+"
Database Systems: "A"
Operating Systems: "A-"
Web Development: "B"
```
- `experience_details:`
- List your work experiences
- Include position, company, employment period, location, industry, key responsibilities, and skills acquired
- Example:
```yaml
#### Experience Details
##### Description
This section details your work experience, including job roles, companies, and key responsibilities.
- **position**: Your job title or role.
- **company**: The name of the company or organization where you worked.
- **employment_period**: The timeframe during which you were employed in the role (e.g., MM/YYYY - MM/YYYY).
- **location**: The city and country where the company is located.
- **industry**: The industry or field in which the company operates.
- **key_responsibilities**: A list of major responsibilities or duties you had in the role.
- **skills_acquired**: Skills or expertise gained through this role.
##### Example
```yaml
experience_details:
- position: "Software Developer"
company: "Tech Corp"
employmentPeriod: "Jan 2020 - Present"
location: "San Francisco, USA"
company: "Tech Innovations Inc."
employment_period: "06/2021 - Present"
location: "San Francisco, CA"
industry: "Technology"
keyResponsibilities:
responsibility1: "Developed web applications using React"
skillsAcquired:
adaptability: "3"
```
key_responsibilities:
- responsibility_1: "Developed web applications using React and Node.js"
- responsibility_2: "Collaborated with cross-functional teams to design and implement new features"
- responsibility_3: "Troubleshot and resolved complex software issues"
skills_acquired:
- "React"
- "Node.js"
- "Software Troubleshooting"
```
- Other sections like `projects`, `availability`, `salary_expectations`, `certifications`, `skills`, `languages`, and `interests` follow a similar format, with each item on a new line.
#### Projects
##### Description
Include notable projects you have worked on, including personal or professional projects.
- **name**: The name or title of the project.
- **description**: A brief summary of what the project involves or its purpose.
- **link**: URL to the project, if available (e.g., GitHub repository, website).
##### Example
```yaml
projects:
- name: "Weather App"
description: "A web application that provides real-time weather information using a third-party API."
link: "https://github.com/janedoe/weather-app"
- name: "Task Manager"
description: "A task management tool with features for tracking and prioritizing tasks."
link: "https://github.com/janedoe/task-manager"
```
#### Achievements
##### Description
Highlight notable accomplishments or awards you have received.
- **name**: The title or name of the achievement.
- **description**: A brief explanation of the achievement and its significance.
##### Example
```yaml
achievements:
- name: "Employee of the Month"
description: "Recognized for exceptional performance and contributions to the team."
- name: "Hackathon Winner"
description: "Won first place in a national hackathon competition."
```
#### Certifications
##### Description
Include any professional certifications you have earned.
- **certification_name**: The name of the certification.
##### Example
```yaml
certifications:
- "Certified Scrum Master"
- "AWS Certified Solutions Architect"
```
#### Languages
##### Description
Detail the languages you speak and your proficiency level in each.
- **language**: The name of the language.
- **proficiency**: Your level of proficiency (e.g., Native, Fluent, Intermediate).
##### Example
```yaml
languages:
- language: "English"
proficiency: "Fluent"
- language: "Spanish"
proficiency: "Intermediate"
```
#### Interests
##### Description
Mention your professional or personal interests that may be relevant to your career.
- **interest**: A list of interests or hobbies.
##### Example
```yaml
interests:
- "Machine Learning"
- "Cybersecurity"
- "Open Source Projects"
- "Digital Marketing"
- "Entrepreneurship"
```
#### Availability
##### Description
State your current availability or notice period.
- **notice_period**: The amount of time required before you can start a new role (e.g., "2 weeks", "1 month").
##### Example
```yaml
availability:
notice_period: "2 weeks"
```
#### Salary Expectations
##### Description
Provide your expected salary range.
- **salary_range_usd**: The salary range you are expecting, expressed in USD.
##### Example
```yaml
salary_expectations:
salary_range_usd: "80000 - 100000"
```
#### Self-Identification
##### Description
Provide information related to personal identity, including gender and pronouns.
- **gender**: Your gender identity.
- **pronouns**: The pronouns you use (e.g., He/Him, She/Her, They/Them).
- **veteran**: Your status as a veteran (e.g., Yes, No).
- **disability**: Whether you have a disability (e.g., Yes, No).
- **ethnicity**: Your ethnicity.
##### Example
```yaml
self_identification:
gender: "Female"
pronouns: "She/Her"
veteran: "No"
disability: "No"
ethnicity: "Asian"
```
#### Legal Authorization
##### Description
Indicate your legal ability to work in various locations.
- **eu_work_authorization**: Whether you are authorized to work in the European Union (Yes/No).
- **us_work_authorization**: Whether you are authorized to work in the United States (Yes/No).
- **requires_us_visa**: Whether you require a visa to work in the US (Yes/No).
- **requires_us_sponsorship**: Whether you require sponsorship to work in the US (Yes/No).
- **requires_eu_visa**: Whether you require a visa to work in the EU (Yes/No).
- **legally_allowed_to_work_in_eu**: Whether you are legally allowed to work in the EU (Yes/No).
- **legally_allowed_to_work_in_us**: Whether you are legally allowed to work in the US (Yes/No).
- **requires_eu_sponsorship**: Whether you require sponsorship to work in the EU (Yes/No).
##### Example
```yaml
legal_authorization:
eu_work_authorization: "Yes"
us_work_authorization: "No"
requires_us_visa: "Yes"
requires_us_sponsorship: "Yes"
requires_eu_visa: "No"
legally_allowed_to_work_in_eu: "Yes"
legally_allowed_to_work_in_us: "No"
requires_eu_sponsorship: "No"
```
#### Work Preferences
##### Description
Specify your preferences for work arrangements and conditions.
- **remote_work**: Whether you are open to remote work (Yes/No).
- **in_person_work**: Whether you are open to in-person work (Yes/No).
- **open_to_relocation**: Whether you are willing to relocate for a job (Yes/No).
- **willing_to_complete_assessments**: Whether you are willing to complete job assessments (Yes/No).
- **willing_to_undergo_drug_tests**: Whether you are willing to undergo drug testing (Yes/No).
- **willing_to_undergo_background_checks**: Whether you are willing to undergo background checks (Yes/No).
##### Example
```yaml
work
_preferences:
remote_work: "Yes"
in_person_work: "No"
open_to_relocation: "Yes"
willing_to_complete_assessments: "Yes"
willing_to_undergo_drug_tests: "No"
willing_to_undergo_background_checks: "Yes"
```
### PLUS. data_folder_example
@ -247,7 +473,6 @@ Using this folder as a guide can be particularly helpful for:
2. Seeing examples of valid data for each field
3. Having a reference point while filling out your personal files
#### Important Note
## Usage
0. **LinkedIn language**
@ -276,7 +501,7 @@ Using this folder as a guide can be particularly helpful for:
## Documentation
For detailed information on each component and their respective roles, please refer to the [Documentation](documentation.md) file.
TODO ):
## Troubleshooting
@ -292,7 +517,7 @@ LinkedIn_AIHawk provides a significant advantage in the modern job market by aut
## Contributors
- [feder-cr](https://github.com/feder-cr/) - Creator and Maintainer
- [feder-cr](https://github.com/feder-cr) - Creator and Lead Developer
LinkedIn_AIHawk is still in beta, and your feedback, suggestions, and contributions are highly valued. Feel free to open issues, suggest enhancements, or submit pull requests to help improve the project. Let's work together to make LinkedIn_AIHawk an even more powerful tool for job seekers worldwide.

View File

@ -1,40 +1,42 @@
remote: true
remote: [true/false]
experienceLevel:
internship: true
entry: false
associate: true
mid-senior level: false
director: true
executive: false
internship: [true/false]
entry: [true/false]
associate: [true/false]
mid-senior level: [true/false]
director: [true/false]
executive: [true/false]
jobTypes:
full-time: true
contract: false
part-time: false
temporary: true
internship: false
other: false
volunteer: true
full-time: [true/false]
contract: [true/false]
part-time: [true/false]
temporary: [true/false]
internship: [true/false]
other: [true/false]
volunteer: [true/false]
date:
all time: false
month: true
week: false
24 hours: true
all time: [true/false]
month: [true/false]
week: [true/false]
24 hours: [true/false]
positions:
- Software Enginner ML
- position1
- position2
locations:
- USA
- Country1
- Country2
distance: 100
companyBlacklist:
- Noir
- Crossover
- Company1
- Company2
titleBlacklist:
- diocane
- word1
- word2

View File

@ -1,133 +1,101 @@
personal_information:
name: "Liam"
surname: "Murphy"
date_of_birth: "15/08/1995"
country: "Ireland"
city: "Galway"
address: "Galway City Center"
phone_prefix: "+353"
phone: "871234567"
email: "liam.murphy@gmail.com"
github: "https://github.com/liam-murphy"
linkedin: "https://www.linkedin.com/in/liam-murphy/"
name: "[Your Name]"
surname: "[Your Surname]"
date_of_birth: "[DD/MM/YYYY]"
country: "[Your Country]"
city: "[Your City]"
address: "[Your Address]"
phone_prefix: "[Your Phone Prefix]"
phone: "[Your Phone Number]"
email: "[Your Email Address]"
github: "[Your GitHub Profile URL]"
linkedin: "[Your LinkedIn Profile URL]"
education_details:
- degree: "Bachelor's Degree"
university: "National University of Ireland, Galway"
gpa: "4/4"
graduation_year: "2020"
field_of_study: "Computer Science"
- degree: "[Your Degree]"
university: "[Your University]"
gpa: "[Your GPA]"
graduation_year: "[Year of Graduation]"
field_of_study: "[Your Field of Study]"
exam:
Information Theory and Inference: "4"
Algorithm Analysis and Design: "4"
Object-Oriented Languages and Programming: "4"
Linear Algebra and Numerical Analysis: "4"
Database: "4"
[Course Name 1]: "[Grade]"
[Course Name 2]: "[Grade]"
[Course Name 3]: "[Grade]"
[Course Name 4]: "[Grade]"
[Course Name 5]: "[Grade]"
experience_details:
- position: "Co-Founder & Software Engineer"
company: "CryptoWave Solutions"
employment_period: "03/2021 - Present"
location: "Ireland"
industry: "Blockchain Technology"
- position: "[Your Job Title]"
company: "[Company Name]"
employment_period: "[Start Date] - [End Date]"
location: "[Location]"
industry: "[Industry]"
key_responsibilities:
- responsibility_1: "Co-founded and led a startup specializing in app and software development with a focus on blockchain technology"
- responsibility_2: "Provided blockchain consultations for 10+ companies, enhancing their software capabilities with secure, decentralized solutions"
- responsibility_3: "Developed blockchain applications, integrated cutting-edge technology to meet client needs and drive industry innovation"
- responsibility_1: "[Key Responsibility 1]"
- responsibility_2: "[Key Responsibility 2]"
- responsibility_3: "[Key Responsibility 3]"
skills_acquired:
- "Blockchain development"
- "Software engineering"
- "Consultancy"
- position: "Research Intern"
company: "National University of Ireland, Galway"
employment_period: "11/2022 - 03/2023"
location: "Galway, Ireland"
industry: "IoT Security Research"
key_responsibilities:
- responsibility_1: "Conducted in-depth research on IoT security, focusing on binary instrumentation and runtime monitoring"
- responsibility_2: "Performed in-depth study of the MQTT protocol and Falco"
- responsibility_3: "Developed multiple software components including MQTT packet analysis library, Falco adapter, and RML monitor in Prolog"
- responsibility_4: "Authored thesis 'Binary Instrumentation for Runtime Monitoring of Internet of Things Systems Using Falco'"
skills_acquired:
- "IoT security"
- "Binary instrumentation"
- "MQTT protocol"
- "Prolog programming"
- position: "Software Engineer"
company: "University Hospital Galway"
employment_period: "05/2022 - 11/2022"
location: "Galway, Ireland"
industry: "Healthcare IT"
key_responsibilities:
- responsibility_1: "Integrated and enforced robust security protocols"
- responsibility_2: "Developed and maintained a critical software tool for password validation used by over 1,600 employees"
- responsibility_3: "Played an integral role in the hospital's cybersecurity team"
skills_acquired:
- "Cybersecurity"
- "Software development"
- "Password validation"
- "[Skill 1]"
- "[Skill 2]"
- "[Skill 3]"
projects:
- name: "JobBot"
description: "AI-driven tool to automate and personalize job applications on LinkedIn, gained over 3000 stars on GitHub, improving efficiency and reducing application time"
link: "https://github.com/liam-murphy/jobbot"
- name: "mqtt-packet-parser"
description: "Developed a Node.js module for parsing MQTT packets, improved parsing efficiency by 40%"
link: "https://github.com/liam-murphy/mqtt-packet-parser"
- name: "[Project Name]"
description: "[Brief Description of the Project]"
link: "[Project URL]"
- name: "[Project Name]"
description: "[Brief Description of the Project]"
link: "[Project URL]"
achievements:
- name: "Winner of an Irish public competition"
description: "Won first place in a public competition with a perfect score of 70/70, securing a Software Developer position at University Hospital Galway"
- name: "Galway Merit Scholarship"
description: "Awarded annually from 2018 to 2020 in recognition of academic excellence and contribution"
- name: "GitHub Recognition"
description: "Gained over 3000 stars on GitHub with JobBot project"
- name: "[Achievement Title]"
description: "[Brief Description of the Achievement]"
- name: "[Achievement Title]"
description: "[Brief Description of the Achievement]"
certifications:
- "C1"
- "[Certification Name]"
languages:
- language: "English"
proficiency: "Native"
- language: "Spanish"
proficiency: "Professional"
- language: "[Language Name]"
proficiency: "[Proficiency Level]"
- language: "[Language Name]"
proficiency: "[Proficiency Level]"
interests:
- "Full-Stack Development"
- "Software Architecture"
- "IoT system design and development"
- "Artificial Intelligence"
- "Cloud Technologies"
- "[Interest 1]"
- "[Interest 2]"
- "[Interest 3]"
- "[Interest 4]"
- "[Interest 5]"
availability:
notice_period: "immediately"
notice_period: "[Notice Period]"
salary_expectations:
salary_range_usd: "100000"
salary_range_usd: "[Expected Salary Range in USD]"
self_identification:
gender: "Male"
pronouns: "He"
veteran: "No"
disability: "No"
ethnicity: "white"
gender: "[Gender]"
pronouns: "[Pronouns]"
veteran: "[Veteran Status]"
disability: "[Disability Status]"
ethnicity: "[Ethnicity]"
legal_authorization:
eu_work_authorization: "Yes"
us_work_authorization: "No"
requires_us_visa: "Yes"
requires_us_sponsorship: "Yes"
requires_eu_visa: "No"
legally_allowed_to_work_in_eu: "Yes"
legally_allowed_to_work_in_us: "No"
requires_eu_sponsorship: "No"
eu_work_authorization: "[Yes/No]"
us_work_authorization: "[Yes/No]"
requires_us_visa: "[Yes/No]"
requires_us_sponsorship: "[Yes/No]"
requires_eu_visa: "[Yes/No]"
legally_allowed_to_work_in_eu: "[Yes/No]"
legally_allowed_to_work_in_us: "[Yes/No]"
requires_eu_sponsorship: "[Yes/No]"
work_preferences:
remote_work: "Yes"
in_person_work: "Yes"
open_to_relocation: "Yes"
willing_to_complete_assessments: "Yes"
willing_to_undergo_drug_tests: "Yes"
willing_to_undergo_background_checks: "Yes"
remote_work: "[Yes/No]"
in_person_work: "[Yes/No]"
open_to_relocation: "[Yes/No]"
willing_to_complete_assessments: "[Yes/No]"
willing_to_undergo_drug_tests: "[Yes/No]"
willing_to_undergo_background_checks: "[Yes/No]"

View File

@ -1,3 +1,3 @@
email: [Your Linkedin email]
password: [Your Linkedin password]
openai_api_key: [OpenAi API key, tutorial -> https://medium.com/@lorenzozar/how-to-get-your-own-openai-api-key-f4d44e60c327]
email: myemaillinkedin@gmail.com
password: ImpossiblePassowrd10
openai_api_key: sk-11KRr4uuTwpRGfeRTfj1T9BlbkFJjP8QTrswHU1yGruru2FR

View File

@ -0,0 +1,39 @@
remote: true
experienceLevel:
internship: true
entry: true
associate: true
mid-senior level: true
director: false
executive: false
jobTypes:
full-time: true
contract: false
part-time: false
temporary: true
internship: false
other: false
volunteer: true
date:
all time: false
month: true
week: false
24 hours: true
positions:
- Software Tester
locations:
- USA
distance: 100
companyBlacklist:
- Noir
- Crossover
titleBlacklist:

View File

@ -0,0 +1,133 @@
personal_information:
name: "Liam"
surname: "Murphy"
date_of_birth: "15/08/1995"
country: "Ireland"
city: "Galway"
address: "Galway City Center"
phone_prefix: "+353"
phone: "871234567"
email: "liam.murphy@gmail.com"
github: "https://github.com/liam-murphy"
linkedin: "https://www.linkedin.com/in/liam-murphy/"
education_details:
- degree: "Bachelor's Degree"
university: "National University of Ireland, Galway"
gpa: "4/4"
graduation_year: "2020"
field_of_study: "Computer Science"
exam:
Information Theory and Inference: "4"
Algorithm Analysis and Design: "4"
Object-Oriented Languages and Programming: "4"
Linear Algebra and Numerical Analysis: "4"
Database: "4"
experience_details:
- position: "Co-Founder & Software Engineer"
company: "CryptoWave Solutions"
employment_period: "03/2021 - Present"
location: "Ireland"
industry: "Blockchain Technology"
key_responsibilities:
- responsibility_1: "Co-founded and led a startup specializing in app and software development with a focus on blockchain technology"
- responsibility_2: "Provided blockchain consultations for 10+ companies, enhancing their software capabilities with secure, decentralized solutions"
- responsibility_3: "Developed blockchain applications, integrated cutting-edge technology to meet client needs and drive industry innovation"
skills_acquired:
- "Blockchain development"
- "Software engineering"
- "Consultancy"
- position: "Research Intern"
company: "National University of Ireland, Galway"
employment_period: "11/2022 - 03/2023"
location: "Galway, Ireland"
industry: "IoT Security Research"
key_responsibilities:
- responsibility_1: "Conducted in-depth research on IoT security, focusing on binary instrumentation and runtime monitoring"
- responsibility_2: "Performed in-depth study of the MQTT protocol and Falco"
- responsibility_3: "Developed multiple software components including MQTT packet analysis library, Falco adapter, and RML monitor in Prolog"
- responsibility_4: "Authored thesis 'Binary Instrumentation for Runtime Monitoring of Internet of Things Systems Using Falco'"
skills_acquired:
- "IoT security"
- "Binary instrumentation"
- "MQTT protocol"
- "Prolog programming"
- position: "Software Engineer"
company: "University Hospital Galway"
employment_period: "05/2022 - 11/2022"
location: "Galway, Ireland"
industry: "Healthcare IT"
key_responsibilities:
- responsibility_1: "Integrated and enforced robust security protocols"
- responsibility_2: "Developed and maintained a critical software tool for password validation used by over 1,600 employees"
- responsibility_3: "Played an integral role in the hospital's cybersecurity team"
skills_acquired:
- "Cybersecurity"
- "Software development"
- "Password validation"
projects:
- name: "JobBot"
description: "AI-driven tool to automate and personalize job applications on LinkedIn, gained over 3000 stars on GitHub, improving efficiency and reducing application time"
link: "https://github.com/liam-murphy/jobbot"
- name: "mqtt-packet-parser"
description: "Developed a Node.js module for parsing MQTT packets, improved parsing efficiency by 40%"
link: "https://github.com/liam-murphy/mqtt-packet-parser"
achievements:
- name: "Winner of an Irish public competition"
description: "Won first place in a public competition with a perfect score of 70/70, securing a Software Developer position at University Hospital Galway"
- name: "Galway Merit Scholarship"
description: "Awarded annually from 2018 to 2020 in recognition of academic excellence and contribution"
- name: "GitHub Recognition"
description: "Gained over 3000 stars on GitHub with JobBot project"
certifications:
- "C1"
languages:
- language: "English"
proficiency: "Native"
- language: "Spanish"
proficiency: "Professional"
interests:
- "Full-Stack Development"
- "Software Architecture"
- "IoT system design and development"
- "Artificial Intelligence"
- "Cloud Technologies"
availability:
notice_period: "immediately"
salary_expectations:
salary_range_usd: "100000"
self_identification:
gender: "Male"
pronouns: "He"
veteran: "No"
disability: "No"
ethnicity: "white"
legal_authorization:
eu_work_authorization: "Yes"
us_work_authorization: "No"
requires_us_visa: "Yes"
requires_us_sponsorship: "Yes"
requires_eu_visa: "No"
legally_allowed_to_work_in_eu: "Yes"
legally_allowed_to_work_in_us: "No"
requires_eu_sponsorship: "No"
work_preferences:
remote_work: "Yes"
in_person_work: "Yes"
open_to_relocation: "Yes"
willing_to_complete_assessments: "Yes"
willing_to_undergo_drug_tests: "Yes"
willing_to_undergo_background_checks: "Yes"

View File

@ -0,0 +1,3 @@
email: myemaillinkedin@gmail.com
password: ImpossiblePassowrd10
openai_api_key: sk-11KRr4uuTwpRGfeRTfj1T9BlbkFJjP8QTrswHU1yGruru2FR

5
job.py
View File

@ -10,6 +10,7 @@ class Job:
description: str = ""
summarize_job_description: str = ""
pdf_path: str = ""
recruiter_link: str = ""
def set_summarize_job_description(self, summarize_job_description):
self.summarize_job_description = summarize_job_description
@ -17,6 +18,9 @@ class Job:
def set_job_description(self, description):
self.description = description
def set_recruiter_link(self, recruiter_link):
self.recruiter_link = recruiter_link
def formatted_job_information(self):
"""
Formats the job information as a markdown string.
@ -27,6 +31,7 @@ class Job:
- Position: {self.title}
- At: {self.company}
- Location: {self.location}
- Recruiter Profile: {self.recruiter_link or 'Not available'}
## Description
{self.description or 'No description provided.'}

View File

@ -55,8 +55,8 @@ class LinkedInEasyApplier:
time.sleep(random.uniform(3, 5))
try:
easy_apply_button = self._find_easy_apply_button()
job_description = self._get_job_description()
job.set_job_description(job_description)
job.set_job_description(self._get_job_description())
job.set_recruiter_link(self._get_job_recruiter())
actions = ActionChains(self.driver)
actions.move_to_element(easy_apply_button).click().perform()
self.gpt_answerer.set_job(job)
@ -107,6 +107,19 @@ class LinkedInEasyApplier:
tb_str = traceback.format_exc()
raise Exception(f"Error getting Job description: \nTraceback:\n{tb_str}")
def _get_job_recruiter(self):
try:
hiring_team_section = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.XPATH, '//h2[text()="Meet the hiring team"]'))
)
recruiter_element = hiring_team_section.find_element(By.XPATH, './/following::a[contains(@href, "linkedin.com/in/")]')
recruiter_link = recruiter_element.get_attribute('href')
return recruiter_link
except Exception as e:
print(f"Errore durante l'estrazione del link del recruiter: {e}")
return ""
def _scroll_page(self) -> None:
scrollable_element = self.driver.find_element(By.TAG_NAME, 'html')
#utils.scroll_slow(self.driver, scrollable_element, step=300, reverse=False)
@ -269,8 +282,6 @@ class LinkedInEasyApplier:
else:
question_type = 'textbox'
answer = self.gpt_answerer.answer_question_textual_wide_range(question_text)
existing_answer = None
for item in self.all_data:
if item['question'] == self._sanitize_text(question_text) and item['type'] == question_type:

View File

@ -149,6 +149,7 @@ class LinkedInJobManager:
"company": job.company,
"job_title": job.title,
"link": job.link,
"job_recruiter": job.recruiter_link,
"job_location": job.location,
"pdf_path": pdf_path
}