feder-cr / Auto_Jobs_Applier_AIHawk

Auto_Jobs_Applier_AIHawk is a tool that automates the jobs application process. Utilizing artificial intelligence, it enables users to apply for multiple job offers in an automated and personalized way.
MIT License
12.61k stars 2.04k forks source link

Unable to apply after clicking Easy Apply #313

Open rahul-lohra opened 3 weeks ago

rahul-lohra commented 3 weeks ago

Please check the video https://mixdrop.is/f/034x8ml3uk0oqo

image image

OrestisIon commented 2 weeks ago

I have the same issue

Moh4mad97 commented 2 weeks ago

Same here

thomHayner commented 2 weeks ago

Same issue.

For me this bug gets to the "upload resume" step and that is when it quits...I have now tried it with three different resume styles, all fail.

Logs indicate that it is an upload issue with the resume format, might just be a ChromeDriver issue although it was working for me over the weekend and this issue started after I synced my fork, other likely possibility is that it's related to PR #349 @spectreDeveloper ...complete logs of the error I receive are attached below:

Starting Chrome browser to log in to LinkedIn.
Navigating to the LinkedIn login page...
User is already logged in.
Starting the search for clearance jobs in United States.
Going to job page 0
Starting the application process for this page...
Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 200, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 81, in pdf_base64
    pdf_base64 = HTML_to_PDF(temp_html_path)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 25, in HTML_to_PDF
    driver = create_driver_selenium()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 18, in create_driver_selenium
    return webdriver.Chrome(service=service, options=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 82, in __init__
    service.path = DriverFinder.get_path(service, options)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 43, in get_path
    raise err
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
    path = shutil.which(service.path) or SeleniumManager().driver_location(options)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 91, in driver_location
    result = self.run(args)
             ^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 112, in run
    raise SeleniumManagerException(f"Selenium Manager failed for: {command}.\n{result}{stderr}")
selenium.common.exceptions.SeleniumManagerException: Message: Selenium Manager failed for: /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/macos/selenium-manager --browser chrome --output json --debug.
The chromedriver version cannot be discovered

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 61, in job_apply
    self._fill_application_form(job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 125, in _fill_application_form
    self.fill_up(job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 169, in fill_up
    self._process_form_element(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 173, in _process_form_element
    self._handle_upload_fields(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 190, in _handle_upload_fields
    self._create_and_upload_resume(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 206, in _create_and_upload_resume
    raise Exception(f"Upload failed: \nTraceback:\n{tb_str}")
Exception: Upload failed: 
Traceback:
Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 200, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 81, in pdf_base64
    pdf_base64 = HTML_to_PDF(temp_html_path)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 25, in HTML_to_PDF
    driver = create_driver_selenium()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 18, in create_driver_selenium
    return webdriver.Chrome(service=service, options=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 82, in __init__
    service.path = DriverFinder.get_path(service, options)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 43, in get_path
    raise err
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
    path = shutil.which(service.path) or SeleniumManager().driver_location(options)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 91, in driver_location
    result = self.run(args)
             ^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 112, in run
    raise SeleniumManagerException(f"Selenium Manager failed for: {command}.\n{result}{stderr}")
selenium.common.exceptions.SeleniumManagerException: Message: Selenium Manager failed for: /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/macos/selenium-manager --browser chrome --output json --debug.
The chromedriver version cannot be discovered

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_job_manager.py", line 126, in apply_jobs
    self.easy_applier_component.job_apply(job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 65, in job_apply
    raise Exception(f"Failed to apply to job! Original exception: \nTraceback:\n{tb_str}")
Exception: Failed to apply to job! Original exception: 
Traceback:
Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 200, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 81, in pdf_base64
    pdf_base64 = HTML_to_PDF(temp_html_path)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 25, in HTML_to_PDF
    driver = create_driver_selenium()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 18, in create_driver_selenium
    return webdriver.Chrome(service=service, options=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 82, in __init__
    service.path = DriverFinder.get_path(service, options)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 43, in get_path
    raise err
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
    path = shutil.which(service.path) or SeleniumManager().driver_location(options)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 91, in driver_location
    result = self.run(args)
             ^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 112, in run
    raise SeleniumManagerException(f"Selenium Manager failed for: {command}.\n{result}{stderr}")
selenium.common.exceptions.SeleniumManagerException: Message: Selenium Manager failed for: /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/macos/selenium-manager --browser chrome --output json --debug.
The chromedriver version cannot be discovered

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 61, in job_apply
    self._fill_application_form(job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 125, in _fill_application_form
    self.fill_up(job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 169, in fill_up
    self._process_form_element(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 173, in _process_form_element
    self._handle_upload_fields(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 190, in _handle_upload_fields
    self._create_and_upload_resume(element, job)
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 206, in _create_and_upload_resume
    raise Exception(f"Upload failed: \nTraceback:\n{tb_str}")
Exception: Upload failed: 
Traceback:
Traceback (most recent call last):
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/src/linkedIn_easy_applier.py", line 200, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 81, in pdf_base64
    pdf_base64 = HTML_to_PDF(temp_html_path)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 25, in HTML_to_PDF
    driver = create_driver_selenium()
             ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py", line 18, in create_driver_selenium
    return webdriver.Chrome(service=service, options=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 82, in __init__
    service.path = DriverFinder.get_path(service, options)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 43, in get_path
    raise err
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/driver_finder.py", line 40, in get_path
    path = shutil.which(service.path) or SeleniumManager().driver_location(options)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 91, in driver_location
    result = self.run(args)
             ^^^^^^^^^^^^^^
  File "/Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/selenium_manager.py", line 112, in run
    raise SeleniumManagerException(f"Selenium Manager failed for: {command}.\n{result}{stderr}")
selenium.common.exceptions.SeleniumManagerException: Message: Selenium Manager failed for: /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/macos/selenium-manager --browser chrome --output json --debug.
The chromedriver version cannot be discovered

^C%                                                                                                                                                                                                                                                                 
(virtual) elliothayner@Elliots-MacBook-Air linkedIn_AI_hawk % 
spectreDeveloper commented 2 weeks ago

Hi, Is not possible is related to my code, because is not implemented actually

cguisado commented 1 week ago

Any updates here? I'm having the same issue

RohanBera commented 1 week ago

Regarding the resume upload issue, i believe this is happening cuz the library "lib_resume_builder_AIHawk" library is trying to auto-install the appropriate chromedriver (I am assuming your chrome version is 128.x.x.x), but is unable to do so.

(you can see it in action if you run /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/selenium/webdriver/common/macos/selenium-manager --browser chrome --output json --debug in your terminal.)

here is a hacky solution I used:

go to /Users/elliothayner/GitHub/linkedIn_AI_hawk/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/utils.py

and replace

    chrome_install = ChromeDriverManager().install()
    folder = os.path.dirname(chrome_install)
    chromedriver_path = os.path.join(folder, "chromedriver.exe")
    service = ChromeService(executable_path=chromedriver_path)

with

    service = ChromeService(executable_path="/path/to/chromedriver")
    return webdriver.Chrome(service=service, options=options)

to find the path to your chromedriver, run which chromedriver. if chromedriver isn't installed, install it using brew install --cask chromedriver

max870701 commented 1 week ago

Solution

  1. Find the file /virtual/lib/python3.11/site-packages/lib_resume_builder_AIHawk/utils.py in your virtual environment. directory.

  2. Modify the create_driver_selenium function as below.

    def create_driver_selenium():
        options = get_chrome_browser_options()
        service = ChromeService(executable_path=ChromeDriverManager().install())
        return webdriver.Chrome(service=service, options=options)