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
15.89k stars 2.37k forks source link

Job title search successful, but It doesn't complete and gets stuck on the application for the jobs #261

Closed Bleebitz closed 1 month ago

Bleebitz commented 1 month ago

It seems to be getting stuck when it is trying to submit the Dynamic resume, then it looks to be timing out then proceeds to find another job and does the same thing. Please help...Thanks

Screenshot 2024-09-03 at 7 57 12 AM

### MacOS Terminal

[?] Which style would you like to adopt?: Modern (style author -> https://github.com/blaketylerfullerton) <------ I have also tried this one Default (style author -> https://github.com/krishnavalliappan) <------- I choose this one last time I tried. Create your resume style in CSS

Starting Chrome browser to log in to LinkedIn. Navigating to the LinkedIn login page... Login form not found. Aborting login. Login button not found. Please verify the page structure. Security check not completed. Please try again later.

Starting the search for Software Sales in USA. Going to job page 0 Starting the application process for this page...

work_experience generated an exception: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-cZTjKd7UdtjX8x96LQOUvh0C on requests per min (RPM): Limit 3, Used 3, Requested 1. Please try again in 20s. Visit https://platform.openai.com/account/rate-limits to learn more. You can increase your rate limit by adding a payment method to your account at https://platform.openai.com/account/billing.', 'type': 'requests', 'param': None, 'code': 'rate_limit_exceeded'}} achievements generated an exception: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-cZTjKd7UdtjX8x96LQOUvh0C on requests per min (RPM): Limit 3, Used 3, Requested 1. Please try again in 20s. Visit https://platform.openai.com/account/rate-limits to learn more. You can increase your rate limit by adding a payment method to your account at https://platform.openai.com/account/billing.', 'type': 'requests', 'param': None, 'code': 'rate_limit_exceeded'}} education generated an exception: Error code: 429 - {'error': {'message': 'Rate limit reached for gpt-4o-mini in organization org-cZTjKd7UdtjX8x96LQOUvh0C on requests per min (RPM): Limit 3, Used 3, Requested 1. Please try again in 20s. Visit https://platform.openai.com/account/rate-limits to learn more. You can increase your rate limit by adding a payment method to your account at https://platform.openai.com/account/billing.', 'type': 'requests', 'param': None, 'code': 'rate_limit_exceeded'}} Traceback (most recent call last): File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 204, in _create_and_upload_resume f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description))) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 78, in pdf_base64 self.resume_generator.create_resume_job_description_text(style_path, job_description_text, temp_html_path) File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 38, in create_resume_job_description_text self._create_resume(gpt_answerer, style_path, temp_html_path) File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 19, in _create_resume message = template.substitute(markdown=gpt_answerer.generate_html_resume(), style_path=style_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/gpt_resume_job_description.py", line 323, in generate_html_resume f" {results['education']}\n"


KeyError: 'education'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 63, in job_apply
    self._fill_application_form(job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 129, in _fill_application_form
    self.fill_up(job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 173, in fill_up
    self._process_form_element(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 177, in _process_form_element
    self._handle_upload_fields(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 194, in _handle_upload_fields
    self._create_and_upload_resume(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 210, 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/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 204, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 78, in pdf_base64
    self.resume_generator.create_resume_job_description_text(style_path, job_description_text, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 38, in create_resume_job_description_text
    self._create_resume(gpt_answerer, style_path, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 19, in _create_resume
    message = template.substitute(markdown=gpt_answerer.generate_html_resume(), style_path=style_path)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/gpt_resume_job_description.py", line 323, in generate_html_resume
    f"    {results['education']}\n"
           ~~~~~~~^^^^^^^^^^^^^
KeyError: 'education'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_job_manager.py", line 138, in apply_jobs
    self.easy_applier_component.job_apply(job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 67, 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/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 204, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 78, in pdf_base64
    self.resume_generator.create_resume_job_description_text(style_path, job_description_text, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 38, in create_resume_job_description_text
    self._create_resume(gpt_answerer, style_path, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 19, in _create_resume
    message = template.substitute(markdown=gpt_answerer.generate_html_resume(), style_path=style_path)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/gpt_resume_job_description.py", line 323, in generate_html_resume
    f"    {results['education']}\n"
           ~~~~~~~^^^^^^^^^^^^^
KeyError: 'education'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 63, in job_apply
    self._fill_application_form(job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 129, in _fill_application_form
    self.fill_up(job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 173, in fill_up
    self._process_form_element(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 177, in _process_form_element
    self._handle_upload_fields(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 194, in _handle_upload_fields
    self._create_and_upload_resume(element, job)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 210, 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/levistoddard/LinkedIn_AIHawk_automatic_job_application/src/linkedIn_easy_applier.py", line 204, in _create_and_upload_resume
    f.write(base64.b64decode(self.resume_generator_manager.pdf_base64(job_description_text=job.description)))
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/manager_facade.py", line 78, in pdf_base64
    self.resume_generator.create_resume_job_description_text(style_path, job_description_text, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 38, in create_resume_job_description_text
    self._create_resume(gpt_answerer, style_path, temp_html_path)
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/resume_generator.py", line 19, in _create_resume
    message = template.substitute(markdown=gpt_answerer.generate_html_resume(), style_path=style_path)
                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/levistoddard/LinkedIn_AIHawk_automatic_job_application/virtual/lib/python3.12/site-packages/lib_resume_builder_AIHawk/gpt_resume_job_description.py", line 323, in generate_html_resume
    f"    {results['education']}\n"
           ~~~~~~~^^^^^^^^^^^^^
KeyError: 'education'
zirghamilyas commented 1 month ago

Facing the exact issue.

thornewynde commented 1 month ago

Facing the same issue. Running this in Linux, in India.

queukat commented 1 month ago

increase your tier in openai or you can try my solution on https://github.com/queukat/linkedIn_auto_jobs_applier_with_AI/tree/v3

Bleebitz commented 1 month ago

@queukat 3, 2, 1... and blast off! Thanks working like a champ!!! I really appreciate your help. Cups of coffee to @queukat, @azjz92 and @feder-cr Let me know how this green horn data muncher can send the appreciation forward to you all! ✌🏼 P.S.

average time to fill the tasks and complete...ummm say 1-2 minutes max per each job

queukat commented 1 month ago

@Bleebitz Thanks, I'm not sure about the cup of coffee, but you can give a star to some of my projects if you find it interesting.

also, regarding the time for one vacancy, I have made several "improvements", but it is also impossible to do it very quickly, because linkedin resists automatic response. however, I think it can be done for a minute, but right now I'm fixing bugs on filling out vacansy forms, because in different countries they are different on the same account

Bleebitz commented 1 month ago

@queukat I appreciate all your effort and I will also look into the rest of your projects. One pull to ask of. I noticed that there is a generic input of 2 years for experience, when it is filling out random linkedin's job role experience. I watched it generate on every job app. It is possible to tie it closer to what the user inputs in the "plain_text_resume.yaml" or if it correlates closer to what the user inputs in total years of work/job role experience. It could also be randomizing based on the different variables it finds from job to job. hope that makes sense. I am looking forward to contributing. I am still learning and gaining. Thanks again!

Bleebitz commented 1 month ago

Also I was impressed of how fast it was working and completing the tasks. 1-2 minutes was well above what I was expecting😎

Bleebitz commented 1 month ago

Solid!