Skip to content
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

Quick Fix for LinkedIn Automation + GPTParser + undetected-chromedriver #972

Closed

Conversation

BeniaminC
Copy link

@BeniaminC BeniaminC commented Nov 30, 2024

Fetched from PR #961 . However, some minor things were not working as described below.

It seems to be working perfectly fine now. it applies to at least 80% of the jobs. Tested with 100+ jobs.

@BeniaminC BeniaminC changed the title Quick Fix for Linkedin Automation Quick Fix for LinkedIn Automation (Fetched from PR #961) Nov 30, 2024
Changed to f-string
Fixed the question_text error
@cjbbb
Copy link
Collaborator

cjbbb commented Nov 30, 2024

@surapuramakhil do you have an account test on it?

@Yorisoft
Copy link

I just tried it on a fresh install of your branch, I'm still getting the error of No job results found on page :/

2024-11-30 03:11:14.148 | DEBUG    | ai_hawk.bot_facade:start_login:73 - Login process completed successfully
2024-11-30 03:11:14.148 | INFO     | __main__:create_and_run_bot:194 - Applying
2024-11-30 03:11:14.149 | DEBUG    | ai_hawk.bot_facade:start_apply:76 - Starting apply process
2024-11-30 03:11:14.149 | DEBUG    | ai_hawk.bot_facade:validate_state:19 - Validating AIHawkBotState with required keys: ['logged_in', 'job_application_profile_set', 'gpt_answerer_set', 'parameters_set']
2024-11-30 03:11:14.149 | DEBUG    | ai_hawk.bot_facade:validate_state:24 - State validation passed
2024-11-30 03:11:14.150 | DEBUG    | ai_hawk.job_manager:start_applying:136 - Starting job application process
2024-11-30 03:11:14.150 | DEBUG    | ai_hawk.linkedIn_easy_applier:__init__:48 - Initializing AIHawkEasyApplier
2024-11-30 03:11:14.150 | DEBUG    | ai_hawk.linkedIn_easy_applier:_load_questions_from_json:63 - Loading questions from JSON file: answers.json
2024-11-30 03:11:14.151 | WARNING  | ai_hawk.linkedIn_easy_applier:_load_questions_from_json:76 - JSON file not found, returning empty list
2024-11-30 03:11:14.151 | DEBUG    | ai_hawk.linkedIn_easy_applier:__init__:59 - AIHawkEasyApplier initialized successfully
2024-11-30 03:11:14.151 | DEBUG    | ai_hawk.job_manager:start_applying:148 - Starting the search for Software engineer in United States.
2024-11-30 03:11:14.151 | DEBUG    | ai_hawk.job_manager:start_applying:154 - Going to job page 0
2024-11-30 03:11:14.152 | DEBUG    | ai_hawk.job_manager:next_job_page:453 - Navigating to next job page: Software engineer in &location=United States, page 0
2024-11-30 03:11:20.313 | DEBUG    | ai_hawk.job_manager:start_applying:157 - Starting the application process for this page...
2024-11-30 03:11:20.340 | WARNING  | ai_hawk.job_manager:get_jobs_from_page:276 - No job results found on the page.
 expection: Traceback (most recent call last):
  File "C:\Users\yoris\Desktop\test\Auto_Jobs_Applier_AI_Agent\src\ai_hawk\job_manager.py", line 258, in get_jobs_from_page
    jobs_container = self.driver.find_element(By.XPATH, jobs_xpath_query)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yoris\Desktop\test\Auto_Jobs_Applier_AI_Agent\virtual\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 831, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\yoris\Desktop\test\Auto_Jobs_Applier_AI_Agent\virtual\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 440, in execute
    self.error_handler.check_response(response)
  File "C:\Users\yoris\Desktop\test\Auto_Jobs_Applier_AI_Agent\virtual\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 245, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//ul[contains(@class, 'scaffold-layout__list-container')]"}
  (Session info: chrome=131.0.6778.86)
Stacktrace:
        GetHandleVerifier [0x006F33E3+25059]
        (No symbol) [0x0067CDE4]
        (No symbol) [0x0055BEC3]
        (No symbol) [0x0059FD86]
        (No symbol) [0x0059FFCB]
        (No symbol) [0x005DD952]
        (No symbol) [0x005C1F44]
        (No symbol) [0x005DB51E]
        (No symbol) [0x005C1C96]
        (No symbol) [0x00593FAC]
        (No symbol) [0x00594F3D]
        GetHandleVerifier [0x009E5543+3113795]
        GetHandleVerifier [0x009FA20A+3198986]
        GetHandleVerifier [0x009F29E2+3168226]
        GetHandleVerifier [0x00793250+680016]
        (No symbol) [0x0068572D]
        (No symbol) [0x006829D8]
        (No symbol) [0x00682B75]
        (No symbol) [0x006757D0]
        BaseThreadInitThunk [0x763B7BA9+25]
        RtlInitializeExceptionChain [0x77B0C0CB+107]
        RtlClearBits [0x77B0C04F+191]


2024-11-30 03:11:20.340 | DEBUG    | ai_hawk.job_manager:start_applying:162 - No more jobs found on this page. Exiting loop.
Sleeping for 53.80948352813721 seconds. Press 'y' to skip waiting. Timeout 60 seconds :
2024-11-30 03:12:20.376 | DEBUG    | ai_hawk.job_manager:start_applying:224 - Sleeping for 53.80948352813721 seconds as user chose not to skip.

@BeniaminC
Copy link
Author

BeniaminC commented Nov 30, 2024

That must be a different code because that error must be on line 260. Do a pull from the PR. Put your LLM type and credentials (config.py), and do a git checkout <branch-name> -- data_folder for your data folder in your current local branch so you don't have to redo those.

@Shaon2221
Copy link

2024-11-30 15:29:16.024 | ERROR | ai_hawk.job_manager:start_applying:171 - Error during job application: list index out of range Traceback (most recent call last): File "/Users/shaonsikder/Downloads/Other Projects/Auto_Jobs_Applier_AI_Agent/src/ai_hawk/job_manager.py", line 169, in start_applying self.apply_jobs() File "/Users/shaonsikder/Downloads/Other Projects/Auto_Jobs_Applier_AI_Agent/src/ai_hawk/job_manager.py", line 306, in apply_jobs job_list = [self.job_tile_to_job(job_element) for job_element in job_element_list] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/shaonsikder/Downloads/Other Projects/Auto_Jobs_Applier_AI_Agent/src/ai_hawk/job_manager.py", line 306, in <listcomp> job_list = [self.job_tile_to_job(job_element) for job_element in job_element_list] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/shaonsikder/Downloads/Other Projects/Auto_Jobs_Applier_AI_Agent/src/ai_hawk/job_manager.py", line 493, in job_tile_to_job job.location = job_tile.find_element( ^^^^^^^^^^^^^^^^^^^^^^ IndexError: list index out of range

I am getting this error, can you fix this as well? @surapuramakhil @BeniaminC

@BeniaminC
Copy link
Author

BeniaminC commented Nov 30, 2024

It seems that some people's format don't have "COMPANY · LOCATION" in their job listings. Can you send me the format of location in the job listing?

@Shaon2221
Copy link

working fine now, Thank you! <3

@feder-cr
Copy link
Collaborator

@Shaon2221

@BeniaminC
Copy link
Author

BeniaminC commented Nov 30, 2024

working fine now, Thank you! <3

It seems like you did a PR pull from #961 before. There is a typo where he put a period character . instead of a dot character ·.

Glad it is working for you now.

@feder-cr feder-cr changed the title Quick Fix for LinkedIn Automation (Fetched from PR #961) Quick Fix for LinkedIn Automation + GPTParser + undetected-chromedriver Nov 30, 2024
@feder-cr
Copy link
Collaborator

feder-cr commented Nov 30, 2024

@BeniaminC Still very very istabile, I put in undetected-chromedriver, and at the same time I created a GPTparser to use for parsing operations via LLM

@feder-cr
Copy link
Collaborator

@Yorisoft
Copy link

That must be a different code because that error must be on line 260. Do a pull from the PR. Put your LLM type and credentials (config.py), and do a git checkout <branch-name> -- data_folder for your data folder in your current local branch so you don't have to redo those.

Working like a charm. Thanks mate!

@feder-cr
Copy link
Collaborator

Cattura
@BeniaminC @cjbbb

@Yorisoft
Copy link

Anyone else experiencing the bot saying that its applying to a position but it doesnt and moves on to the next?

2024-11-30 14:57:54.087 | DEBUG    | ai_hawk.linkedIn_easy_applier:_find_easy_apply_button:215 - Found 'Easy Apply' button 2, attempting to click
2024-11-30 14:57:54.091 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:142 - Retrieving job description
2024-11-30 14:57:54.091 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_description:249 - Getting job description
2024-11-30 14:57:56.488 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_description:266 - Job description retrieved successfully
2024-11-30 14:57:56.489 | DEBUG    | src.job:set_job_description:24 - Setting job description: About the job
Job Description

 Company:

Cogent Communications is a global, Tier 1 facilities-based ISP, consistently ranked as one of the top five networks in the world and is publicly traded on the NASDAQ Stock Market under the ticker symbol CCOI. Cogent specializes in providing businesses with high speed Internet access and Ethernet transport services. Cogent's facilities-based, all-optical IP network backbone provides IP services globally. Since its inception, Cogent has unleashed the benefits of IP technology, building one of the largest and highest capacity IP networks in the world. This network enables Cogent to offer large bandwidth connections at highly competitive prices. Cogent also offers superior customer support by virtue of its end-to-end control of service delivery and network monitoring. A competitive base salary and a full benefits package including; Health, Dental, Vision, Paid Time Off ( PTO), Short- and Long-Term Disability, Life Insurance, Holidays, Parental Leave, 401 ( k) plan with employer match, stock options, and an Employee Assistance Program. Most benefits take effect within 30 days of employment, and some require a waiting period.

 Job Summary:

The PHP Developer will assist in the design, development and maintenance of a several in-house business applications to support Corporate Sales, Operations and Finance as well as other departments. Under the guidance of the technical lead, the developer will work with application stakeholders to gather requirements, produce proofs-of-concept, obtain feedback, and complete the development, testing and implementation of the applications. This developer will also assist in maintaining some existing PHP and Java applications.

Compensation:

Pay Range: $90,000 - $100,000

 Essential Duties and Responsibilities:

Analyze technology/capability gaps, research, develop, and deploy software solutions
Work with project leads to define sprints and associated deliverables
Collaborate with other developers to design and optimize code
Conduct integration, test, bug fixes, and other software maintenance activities
Performing requirements analysis and proof of concept or prototyping as needed for engineering and design of corporate applications
Supporting applications in O&M status by providing enhancements and bug fixes as needed
Coding, testing, and debugging new software or enhancements to existing software
Developing user interfaces and applications by setting expectations and feature priorities throughout the development life cycle, determining design methodologies and tool sets, completing programming using languages and software products, and designing and conducting tests
Integration of platforms leveraging APIs
Assist in the creation of technical documentation and user guides in support of developed software

 Qualifications:

3+ years of PHP web development experience.
2+ years of experience with the Laravel Framework
2+ years of full-time experience with MySQL and/or MSSQL
Proficiency with HTML/CSS/JavaScript.
Experience in all phases of SDLC, OO analysis and design, and revision control systems.
Ability to converse with end-users, gather requirements, and provide feedback in plain non-technical English
Ability to structure a software project ( UI / API / DB)
 Ability to write clear, concise, and accurate technical documentation

At least 2 years of Computer Science college education or similar studies

Outstanding customer service and time management skills
Strong interpersonal, communication and organizational skills
Capable of writing and presenting detailed documentation

Physical Requirements:

Frequently remains in a sitting/stationary position during the workday.
Operates a computer and performs desk-based computer tasks continually, frequently viewing a computer screen.

 COVID-19 Policy:

Cogent has adopted a mandatory vaccination and booster policy which requires all U.S. employees to be fully vaccinated with one booster against COVID-19. Prior to beginning employment, new employees must provide proof of vaccination or apply for and receive an accommodation to be exempt from the policy.

By submitting an application or resume for this position, I understand that is an in-office position and agree to abide Cogent’s mandatory vaccination policy.

To apply for the PHP Developer position, please submit your resume and cover letter to [email protected].

Cogent Communications is an Equal Opportunity Employer.

 Company:

Cogent Communications is a global, Tier 1 facilities-based ISP, consistently ranked as one of the top five networks in the world and is publicly traded on the NASDAQ Stock Market under the ticker symbol CCOI. Cogent specializes in providing businesses with high speed Internet access and Ethernet transport services. Cogent's facilities-based, all-optical IP network backbone provides IP services globally. Since its inception, Cogent has unleashed the benefits of IP technology, building one of the largest and highest capacity IP networks in the world. This network enables Cogent to offer large bandwidth connections at highly competitive prices. Cogent also offers superior customer support by virtue of its end-to-end control of service delivery and network monitoring. A competitive base salary and a full benefits package including; Health, Dental, Vision, Paid Time Off ( PTO), Short- and Long-Term Disability, Life Insurance, Holidays, Parental Leave, 401 ( k) plan with employer match, stock options, and an Employee Assistance Program. Most benefits take effect within 30 days of employment, and some require a waiting period.

 Job Summary:

The PHP Developer will assist in the design, development and maintenance of a several in-house business applications to support Corporate Sales, Operations and Finance as well as other departments. Under the guidance of the technical lead, the developer will work with application stakeholders to gather requirements, produce proofs-of-concept, obtain feedback, and complete the development, testing and implementation of the applications. This developer will also assist in maintaining some existing PHP and Java applications.

Compensation:

Pay Range: $90,000 - $100,000

 Essential Duties and Responsibilities:

Analyze technology/capability gaps, research, develop, and deploy software solutions
Work with project leads to define sprints and associated deliverables
Collaborate with other developers to design and optimize code
Conduct integration, test, bug fixes, and other software maintenance activities
Performing requirements analysis and proof of concept or prototyping as needed for engineering and design of corporate applications
Supporting applications in O&M status by providing enhancements and bug fixes as needed
Coding, testing, and debugging new software or enhancements to existing software
Developing user interfaces and applications by setting expectations and feature priorities throughout the development life cycle, determining design methodologies and tool sets, completing programming using languages and software products, and designing and conducting tests
Integration of platforms leveraging APIs
Assist in the creation of technical documentation and user guides in support of developed software

 Qualifications:

3+ years of PHP web development experience.
2+ years of experience with the Laravel Framework
2+ years of full-time experience with MySQL and/or MSSQL
Proficiency with HTML/CSS/JavaScript.
Experience in all phases of SDLC, OO analysis and design, and revision control systems.
Ability to converse with end-users, gather requirements, and provide feedback in plain non-technical English
Ability to structure a software project ( UI / API / DB)
 Ability to write clear, concise, and accurate technical documentation

At least 2 years of Computer Science college education or similar studies

Outstanding customer service and time management skills
Strong interpersonal, communication and organizational skills
Capable of writing and presenting detailed documentation

Physical Requirements:

Frequently remains in a sitting/stationary position during the workday.
Operates a computer and performs desk-based computer tasks continually, frequently viewing a computer screen.

 COVID-19 Policy:

Cogent has adopted a mandatory vaccination and booster policy which requires all U.S. employees to be fully vaccinated with one booster against COVID-19. Prior to beginning employment, new employees must provide proof of vaccination or apply for and receive an accommodation to be exempt from the policy.

By submitting an application or resume for this position, I understand that is an in-office position and agree to abide Cogent’s mandatory vaccination policy.

To apply for the PHP Developer position, please submit your resume and cover letter to [email protected].

Cogent Communications is an Equal Opportunity Employer.
2024-11-30 14:57:56.490 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:145 - Job description set: About the job
Job Description

 Company:

Cogent Communications is a global, Tier 1 facilities-base
2024-11-30 14:57:56.491 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:147 - Retrieving recruiter link
2024-11-30 14:57:56.491 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_recruiter:278 - Getting job recruiter information
2024-11-30 14:58:06.893 | WARNING  | ai_hawk.linkedIn_easy_applier:_get_job_recruiter:297 - Failed to retrieve recruiter information: Message:
Stacktrace:
        GetHandleVerifier [0x00DF33E3+25059]
        (No symbol) [0x00D7CDE4]
        (No symbol) [0x00C5BEC3]
        (No symbol) [0x00C9FD86]
        (No symbol) [0x00C9FFCB]
        (No symbol) [0x00CDD952]
        (No symbol) [0x00CC1F44]
        (No symbol) [0x00CDB51E]
        (No symbol) [0x00CC1C96]
        (No symbol) [0x00C93FAC]
        (No symbol) [0x00C94F3D]
        GetHandleVerifier [0x010E5543+3113795]
        GetHandleVerifier [0x010FA20A+3198986]
        GetHandleVerifier [0x010F29E2+3168226]
        GetHandleVerifier [0x00E93250+680016]
        (No symbol) [0x00D8572D]
        (No symbol) [0x00D829D8]
        (No symbol) [0x00D82B75]
        (No symbol) [0x00D757D0]
        BaseThreadInitThunk [0x76B47BA9+25]
        RtlInitializeExceptionChain [0x7783C0CB+107]
        RtlClearBits [0x7783C04F+191]

2024-11-30 14:58:06.893 | DEBUG    | src.job:set_recruiter_link:28 - Setting recruiter link:
2024-11-30 14:58:06.894 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:150 - Recruiter link set:
2024-11-30 14:58:06.894 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:154 - Passing job information to GPT Answerer
2024-11-30 14:58:13.066 | DEBUG    | src.job:set_summarize_job_description:20 - Setting summarized job description: Analysis of PHP Developer Position at Cogent Communications

 Technical Skills
- PHP Development: 3+ years of experience in PHP web development.
- Laravel Framework: 2+ years of experience with the Laravel framework.
- Database Management: 2+ years of experience with MySQL and/or MSSQL.
- Web Technologies: Proficiency in HTML, CSS, and JavaScript.
- Software Development Life Cycle (SDLC): Experience in all phases of SDLC.
- Object-Oriented Analysis and Design: Familiarity with OO analysis and design principles.
- Revision Control Systems: Experience with version control systems (e.g., Git).
- API Integration: Ability to integrate platforms leveraging APIs.
- Technical Documentation: Skills in creating clear and concise technical documentation and user guides.

 Soft Skills
- Communication: Strong interpersonal and communication skills to converse with end-users and gather requirements in non-technical language.
- Problem-Solving: Ability to analyze technology gaps and develop software solutions.
- Time Management: Outstanding time management skills to handle multiple tasks and meet deadlines.
- Team Collaboration: Ability to collaborate effectively with other developers and project leads.
- Customer Service: Strong customer service orientation.

 Educational Qualifications and Certifications
- Education: At least 2 years of college education in Computer Science or a related field.
- Certifications: While not explicitly stated, relevant certifications in PHP development or web technologies may enhance a candidate's profile.

 Professional Experience
- Work Experience: Minimum of 3 years in PHP web development, with specific experience in the Laravel framework and database management (MySQL/MSSQL).
- Project Involvement: Experience in requirements analysis, proof of concept, coding, testing, and debugging of software applications.

 Role Evolution
- Increased Focus on Cloud Technologies: As cloud computing continues to grow, PHP developers may need to adapt their skills to include cloud-based application development and deployment.
- Emphasis on Security: With growing concerns around cybersecurity, developers will need to prioritize secure coding practices and understand security protocols.
- Integration of AI and Machine Learning: Future PHP developers may need to incorporate AI and machine learning capabilities into applications, requiring knowledge of these technologies.
- Agile Methodologies: As organizations increasingly adopt Agile methodologies, familiarity with Agile practices and tools will become essential for effective project management and collaboration.

This comprehensive overview serves as a guideline for the recruitment process, ensuring the identification of the most qualified candidates for the PHP Developer position at Cogent Communications.
2024-11-30 14:58:14.891 | DEBUG    | ai_hawk.job_manager:write_to_file:391 - Writing job application result to file: success
2024-11-30 14:58:14.892 | DEBUG    | ai_hawk.job_manager:write_to_file:422 - Job data appended to existing file: success
2024-11-30 14:58:14.893 | DEBUG    | ai_hawk.job_manager:apply_jobs:384 - Applied to job: PHP Developer -Washington DC
PHP Developer -Washington DC with verification at Cogent Communications
2024-11-30 14:58:14.893 | DEBUG    | ai_hawk.job_manager:apply_jobs:313 - Starting applicant for job: Python Developer - Trading firm
Python Developer - Trading firm at Radley James

@BeniaminC
Copy link
Author

That looks fine. Some pages don't have recruiters.

@Yorisoft
Copy link

Yorisoft commented Nov 30, 2024

I just didnt see any logs where it filled out the form and also didnt observe it do so on the browser.

2024-11-30 15:50:54.159 | DEBUG    | ai_hawk.job_manager:apply_jobs:384 - Applied to job: Software Engineer, Data Enablement Platform
Software Engineer, Data Enablement Platform with verification at Brex
2024-11-30 15:50:54.160 | DEBUG    | ai_hawk.job_manager:apply_jobs:313 - Starting applicant for job: QA Engineer (31961)
QA Engineer (31961) with verification at Myticas Consulting
2024-11-30 15:50:54.160 | DEBUG    | ai_hawk.job_manager:is_blacklisted:524 - Checking if job is blacklisted: QA Engineer (31961)
QA Engineer (31961) with verification at Myticas Consulting in QA Engineer (31961)
2024-11-30 15:50:54.161 | DEBUG    | ai_hawk.job_manager:is_blacklisted:530 - Job blacklisted status: False
2024-11-30 15:50:54.170 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:117 - Starting job application for job: Job(id='4069158087', title='QA Engineer (31961)\nQA Engineer (31961) with verification', company='Myticas Consulting', location='QA Engineer (31961)', link='https://www.linkedin.com/jobs/view/4069158087/', apply_method='Viewed', description='', summarize_job_description='', recruiter_link='', resume_path='', cover_letter_path='')
2024-11-30 15:50:56.105 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:123 - Navigated to job link: https://www.linkedin.com/jobs/view/4069158087/
2024-11-30 15:51:00.496 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:134 - Focus removed from the active element
2024-11-30 15:51:00.502 | DEBUG    | ai_hawk.linkedIn_easy_applier:_find_easy_apply_button:181 - Searching for 'Easy Apply' button
2024-11-30 15:51:00.506 | DEBUG    | ai_hawk.linkedIn_easy_applier:_scroll_page:301 - Scrolling the page
2024-11-30 15:51:00.512 | DEBUG    | utils.browser_utils:scroll_slow:17 - Starting slow scroll: start=0, end=3600, step=300, reverse=False
2024-11-30 15:51:00.527 | DEBUG    | utils.browser_utils:scroll_slow:29 - Max scroll height of the element: 3106
2024-11-30 15:51:00.528 | DEBUG    | utils.browser_utils:scroll_slow:30 - Current scroll position: 0
2024-11-30 15:51:00.528 | WARNING  | utils.browser_utils:scroll_slow:38 - End value exceeds the scroll height. Adjusting end to 3106
2024-11-30 15:51:00.551 | DEBUG    | utils.browser_utils:is_scrollable:12 - Element scrollable check: scrollHeight=3106, clientHeight=986, scrollable=True
2024-11-30 15:51:00.557 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 0
2024-11-30 15:51:02.055 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 300
2024-11-30 15:51:03.295 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 590
2024-11-30 15:51:04.480 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 870
2024-11-30 15:51:05.955 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1140
2024-11-30 15:51:06.837 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1400
2024-11-30 15:51:07.990 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1650
2024-11-30 15:51:09.128 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1890
2024-11-30 15:51:10.125 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2120
2024-11-30 15:51:11.500 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2340
2024-11-30 15:51:12.149 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2550
2024-11-30 15:51:12.763 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2750
2024-11-30 15:51:14.222 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2940
2024-11-30 15:51:15.206 | DEBUG    | utils.browser_utils:scroll_slow:77 - Scrolled to final position: 3106
2024-11-30 15:51:15.708 | DEBUG    | utils.browser_utils:scroll_slow:17 - Starting slow scroll: start=0, end=3600, step=300, reverse=True
2024-11-30 15:51:15.727 | DEBUG    | utils.browser_utils:scroll_slow:29 - Max scroll height of the element: 3106
2024-11-30 15:51:15.727 | DEBUG    | utils.browser_utils:scroll_slow:30 - Current scroll position: 2119
2024-11-30 15:51:15.728 | DEBUG    | utils.browser_utils:scroll_slow:35 - Adjusted start position for upward scroll: 2119
2024-11-30 15:51:15.754 | DEBUG    | utils.browser_utils:is_scrollable:12 - Element scrollable check: scrollHeight=3106, clientHeight=986, scrollable=True
2024-11-30 15:51:15.760 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 2119
2024-11-30 15:51:16.985 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1819
2024-11-30 15:51:18.471 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1529
2024-11-30 15:51:19.223 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 1249
2024-11-30 15:51:20.533 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 979
2024-11-30 15:51:21.637 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 719
2024-11-30 15:51:22.755 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 469
2024-11-30 15:51:24.188 | DEBUG    | utils.browser_utils:scroll_slow:63 - Scrolled to position: 229
2024-11-30 15:51:24.929 | DEBUG    | utils.browser_utils:scroll_slow:77 - Scrolled to final position: 0
2024-11-30 15:51:25.430 | DEBUG    | ai_hawk.linkedIn_easy_applier:_find_easy_apply_button:206 - Attempting search using find all 'Easy Apply' buttons using find_elements
2024-11-30 15:51:35.656 | WARNING  | ai_hawk.linkedIn_easy_applier:_find_easy_apply_button:218 - Button 1 found but not clickable: Message:

2024-11-30 15:51:35.682 | DEBUG    | ai_hawk.linkedIn_easy_applier:_find_easy_apply_button:215 - Found 'Easy Apply' button 2, attempting to click
2024-11-30 15:51:35.688 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:142 - Retrieving job description
2024-11-30 15:51:35.688 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_description:249 - Getting job description
2024-11-30 15:51:38.009 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_description:266 - Job description retrieved successfully
2024-11-30 15:51:38.009 | DEBUG    | src.job:set_job_description:24 - Setting job description: About the job
Position Overview:
The Myticas team is looking for a skilled QA Engineer with a strong focus on automation to join a dynamic development team. In this role, you’ll design, implement, and maintain automated and manual test suites, ensuring software’s quality and reliability. The ideal candidate is a quick learner, excels at critical thinking, and can work on multiple projects with ease.

Key Responsibilities:
Collaborate with Business Analysts to understand product requirements and specifications.
Design and develop detailed test plans, cases, and scripts to validate system requirements.
Execute and maintain automated tests, identifying defects and areas for improvement.
Conduct manual testing when necessary to support automated testing efforts.
Work closely with BA, Development, and QA teams to gain a full understanding of current system functionality.
Monitor quality metrics, report on test results, and proactively suggest improvements.
Continuously enhance the automation framework and tools, ensuring efficiency and reliability.

Minimum Qualifications:
Experience: 3+ years of automation testing experience for web, API, mobile, and desktop applications, using Java, Selenium WebDriver, Postman, and RestAssured.
Strong teamwork skills, with a willingness to mentor and support colleagues.
Flexibility to assist with manual testing as needed.
Experience with backend testing using SQL (preferably MySQL).
Prior experience with ERP software is a strong plus.
Exceptional analytical and debugging skills, with a proactive approach to solving issues.
2024-11-30 15:51:38.010 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:145 - Job description set: About the job
Position Overview:
The Myticas team is looking for a skilled QA Engineer with a strong
2024-11-30 15:51:38.010 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:147 - Retrieving recruiter link
2024-11-30 15:51:38.011 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_recruiter:278 - Getting job recruiter information
2024-11-30 15:51:38.019 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_recruiter:283 - Hiring team section found
2024-11-30 15:51:38.042 | DEBUG    | ai_hawk.linkedIn_easy_applier:_get_job_recruiter:291 - Job recruiter link retrieved successfully: https://www.linkedin.com/in/michellecorino
2024-11-30 15:51:38.042 | DEBUG    | src.job:set_recruiter_link:28 - Setting recruiter link: https://www.linkedin.com/in/michellecorino
2024-11-30 15:51:38.042 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:150 - Recruiter link set: https://www.linkedin.com/in/michellecorino
2024-11-30 15:51:38.043 | DEBUG    | ai_hawk.linkedIn_easy_applier:job_apply:154 - Passing job information to GPT Answerer
2024-11-30 15:51:42.533 | DEBUG    | src.job:set_summarize_job_description:20 - Setting summarized job description: Job Description Summary

 Technical Skills:
- Automation Testing: Proficiency in automation testing for web, API, mobile, and desktop applications.
- Programming Languages: Experience with Java for test script development.
- Testing Tools: Familiarity with Selenium WebDriver, Postman, and RestAssured for automated testing.
- Database Testing: Knowledge of backend testing using SQL, preferably MySQL.
- Test Plan Development: Ability to design and develop detailed test plans, cases, and scripts.
- Quality Metrics Monitoring: Skills in monitoring quality metrics and reporting test results.
- Automation Framework Enhancement: Experience in enhancing automation frameworks and tools.

 Soft Skills:
- Critical Thinking: Strong analytical skills to identify defects and areas for improvement.
- Team Collaboration: Ability to work closely with Business Analysts, Development, and QA teams.
- Mentorship: Willingness to mentor and support colleagues.
- Adaptability: Flexibility to assist with manual testing as needed.
- Proactive Problem Solving: A proactive approach to solving issues and suggesting improvements.

 Educational Qualifications and Certifications:
- Degree: Bachelor’s degree in Computer Science, Information Technology, or a related field (preferred).
- Certifications: Relevant QA or automation testing certifications (e.g., ISTQB, Certified Agile Tester) are a plus.

 Professional Experience:
- Experience Requirement: Minimum of 3 years of experience in automation testing.
- ERP Software Experience: Prior experience with ERP software is considered a strong plus.
- Diverse Testing Experience: Experience in testing various application types (web, API, mobile, desktop).

 Role Evolution:
- Increased Automation: As the industry trends towards more automation, the role will require deeper knowledge of advanced automation tools and frameworks.
- Integration with DevOps: The role may evolve to include more integration with DevOps practices, requiring familiarity with CI/CD pipelines and tools.
- Focus on Performance Testing: There may be a growing emphasis on performance testing, necessitating skills in performance testing tools and methodologies.
- AI and Machine Learning: Future trends may introduce the need for understanding AI and machine learning in testing processes, requiring QA Engineers to adapt to new technologies and methodologies.

This comprehensive overview serves as a guideline for the recruitment process, ensuring the identification of the most qualified candidates for the QA Engineer position.
2024-11-30 15:51:43.539 | DEBUG    | ai_hawk.job_manager:write_to_file:391 - Writing job application result to file: success
2024-11-30 15:51:43.541 | DEBUG    | ai_hawk.job_manager:write_to_file:422 - Job data appended to existing file: success
2024-11-30 15:51:43.541 | DEBUG    | ai_hawk.job_manager:apply_jobs:384 - Applied to job: QA Engineer (31961)
QA Engineer (31961) with verification at Myticas Consulting

@feder-cr
Copy link
Collaborator

@BeniaminC If the page has no recruiters, you should not stop the whole thing

@BeniaminC
Copy link
Author

BeniaminC commented Nov 30, 2024

The bug is not the execution itself. The logger was not properly logging the output. It should be fixed now. The GPT Parser was using it's own logger. The latest commit fixed this. This means that the code was executing correctly as before, you just didn't see it. It was irrelevant whether there was a recruiter or not.

TL;DR: someone copied and pasted code into a file but forgot to remove the imports.

@Yorisoft
Copy link

I think its the is_job_suitable() function. I dont see the code for it so im not sure what its doing. But I dont see the logs statements print out to terminal after this section. Its working after commenting out. Seems it deemed most of the job postings are not suitable. Perhaps I setup something incorrectly.

# Todo: add this job to skip list with it's reason
            if not self.gpt_answerer.is_job_suitable():
                return

@BeniaminC BeniaminC closed this by deleting the head repository Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants