Coder Social home page Coder Social logo

linkedin-easy-apply-bot's People

Contributors

nathanduma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

linkedin-easy-apply-bot's Issues

Applies to one job then crashes

I seem to be running into a similar issue as before. The script applies to one job and can't locate the next job. I am using Selenium v4.1.0 and Chrome v96.0.

image

Problem with search

Great tool!Many thanks to you for making it better!
I'm running win 10 and after the login procedure, it goes to search it access the windows search bar and then puts 1 letter in job title and 1 in location. I'm going to test it on Linux mint to see if there's a difference.

Wed.Jan.26.2022.5_09_39.PM.mp4

.

Bot answering "No" to "Working in a remote setting?"

Bot is answering "No" to an Additional Questions prompt asking if "Are you comfortable working in a remote setting?"

Don't mind the picture - I tried to correct it to yes, in panic, before taking a snapshot to see if I could add to the linkedineasyapply.py - but was unable to add the additional question prompt and get it working. Seems to be a new prompt that employers are adding for remote jobs.

2022-05-30 16_01_31-JobBot - JobBot-VM - Remote Desktop Connection - Copy

Running with same settings on different account = error

Hey, so the bot successfully applies and works with my current settings. However, when I change the username and password parameters to another account, I face the "no more jobs" error. I do see jobs on the web browser, and when using my main account it would apply to those same jobs and not throw an error.

image

Stuck between INFO and DEBUG

Not sure if it's an intended behavior but my console is repeating between DEBUG and INFO, with a "sleeping" message. Is this typical or should I keep trying to fix?

Can't find a job to apply to

The script can't seem to find the first job after searching for a keyword. It get stuck and goes to sleep for over 800 seconds. Is anyone else having this issue?

Errors thrown on calling script

ubuntu_uSfJauqxdu

I am getting these errors when running the script in the latest version of Ubuntu. I do not know if this is an error due to it expecting a windows directory in config.yaml. Do you have any idea on how to fix this? Thanks.

TypeError: object of type 'NoneType' has no len()

Getting the following error when running python main.py

Traceback (most recent call last):
  File "main.py", line 122, in <module>
    parameters = validate_yaml()
  File "main.py", line 73, in validate_yaml
    assert len(parameters['positions']) > 0
TypeError: object of type 'NoneType' has no len()

Using python 3.7.7

After one apply, the bot cant continue

Hey!
First let me thank you for this, its crazy.

so, the bot is going for one apply successfully, after that he loops thro all the over jobs and returns this message for each job post:
Could not apply to the job!
Traceback (most recent call last):
File "C:\Users\Desktop\LinkedIn-Easy-Apply-Bot\linkedineasyapply.py", line 167, in apply_jobs
job_el = job_tile.find_element_by_class_name('job-card-list__title')
File "C:\Users\shaha\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 447, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Users\shaha\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 735, in find_element
return self._execute(Command.FIND_CHILD_ELEMENT,
File "C:\Users\shaha\Anaconda3\lib\site-packages\selenium\webdriver\remote\webelement.py", line 710, in _execute
return self._parent.execute(command, params)
File "C:\Users\shaha\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 425, in execute
self.error_handler.check_response(response)
File "C:\Users\shaha\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=99.0.4844.74)
Stacktrace:
Backtrace:
Ordinal0 [0x00659943+2595139]
Ordinal0 [0x005EC9F1+2148849]
Ordinal0 [0x004E4528+1066280]
Ordinal0 [0x004E6E04+1076740]
Ordinal0 [0x004E6CBE+1076414]
Ordinal0 [0x004E6F50+1077072]
Ordinal0 [0x00510D1E+1248542]
Ordinal0 [0x005111CB+1249739]
Ordinal0 [0x005074F1+1209585]
Ordinal0 [0x0052BA34+1358388]
Ordinal0 [0x00507474+1209460]
Ordinal0 [0x0052BC04+1358852]
Ordinal0 [0x0053BAF2+1424114]
Ordinal0 [0x0052B806+1357830]
Ordinal0 [0x00506086+1204358]
Ordinal0 [0x00506F96+1208214]
GetHandleVerifier [0x007FB232+1658114]
GetHandleVerifier [0x008B312C+2411516]
GetHandleVerifier [0x006EF261+560433]
GetHandleVerifier [0x006EE366+556598]
Ordinal0 [0x005F286B+2173035]
Ordinal0 [0x005F75F8+2192888]
Ordinal0 [0x005F76E5+2193125]
Ordinal0 [0x006011FC+2232828]
BaseThreadInitThunk [0x7646FA29+25]
RtlGetAppContainerNamedObjectPath [0x77457A7E+286]
RtlGetAppContainerNamedObjectPath [0x77457A4E+238]

and after all of that:
"Could not apply to the job!
Applying to jobs on this page has been completed!
Sleeping for 683.3301115036011 seconds."

any ideas why this happens??

javascript error: arguments[0].scrollTo is not a function

Going to job page 0
Starting the application process for this page...
Traceback (most recent call last):
File "C:\Users\bob\Documents\python_workspace\LinkedIn-Easy-Apply-Bot\linkedineasyapply.py", line 125, in apply_jobs
self.scroll_slow(job_results)
File "C:\Users\bob\Documents\python_workspace\LinkedIn-Easy-Apply-Bot\linkedineasyapply.py", line 677, in scroll_slow
self.browser.execute_script("arguments[0].scrollTo(0, {})".format(i), scrollable_element)
File "C:\Users\bob\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 493, in execute_script
return self.execute(command, {
File "C:\Users\bob\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 435, in execute
self.error_handler.check_response(response)
File "C:\Users\bob\AppData\Roaming\Python\Python310\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.JavascriptException: Message: javascript error: arguments[0].scrollTo is not a function

Receiving this error after it gets to the job listing page. Jobs show up on the page, but the applying phase never starts.
To get to this point I had to apply the fixes for find_elements. My code now looks like this:

try:
job_results = self.browser.find_elements(By.CLASS_NAME, "jobs-search-results")
self.scroll_slow(job_results)
self.scroll_slow(job_results, step=300, reverse=True)

NOT AN ISSUE BUT A THANK YOU MESSAGE

Hey Man,
Just to let you know I just landed on a job , thanks to your bot ( and a few follow ups), I scaled it up using AWS, got really interesting results after few trial and error. I really want to donate you some money because of the work that you have put in , let me know your paypal or something man wanna buy you a coffee for sure. : you can connect on my ig: @amishjhamusic or let me know i can drop my email id too. You saved my life man, i was getting depressed sitting at home, consider this as your best achievement you literally made a difference in someone's life. God bless you man, you are really god sent :D

sleep duration is too long

Sleeping for 881.592579126358 seconds.
could we minimize this sleeping time , i believe this is 14 min!!
could this be between 5 to 7 min as maximum .

one more thing i get this error after this sleeping time
[9640:4564:0718/145744.396:ERROR:gpu_init.cc(440)] Passthrough is not supported, GL is disabled

OS : Windows 10
python version : 3.9.6
running the script from Powershell

Uploading photo error, uploads CV instead. Freezes the application completely! Roadblock!

image

Either:
A. Include file path for pic

OR

B. Do not insert cv.pdf into photo coz it is not mandatory. (in fact if you do not insert anything in the photo it will continue as normal)

This completely freezes the bot. The action pauses however when I remove the wrongly uploaded file by clicking cross icon and clicking next. it resumes. So i guess only for this photo upload section you can add an exception.?

Selenium NoSuchElementException: Message: no such element

Hi, I am stuck on this issue:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".jobs-search-results"}

I thought the page is loading too fast hence adding a delay may help so I added 'driver.implicitly_wait(10)' in:

def init_browser():
    browser_options = Options()
    options = ['--disable-blink-features', '--no-sandbox', '--start-maximized', '--disable-extensions',
               '--ignore-certificate-errors', '--disable-blink-features=AutomationControlled']

    for option in options:
        browser_options.add_argument(option)

    #driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=browser_options)
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=browser_options)

    driver.set_window_position(0, 0)
    driver.maximize_window()
    #added delay to avoid 'method' not found error
    driver.implicitly_wait(10)
    
    return driver

Unfortunately, it didn't help. Any ideas? Thanks.

Error assert len(parameters['uploads']) >= 1 and 'resume' in parameters['uploads']

I have the following error and I don't know how to solve it, any idea, thank you very much for this great script.

I have configured the config.yaml in this way and the file is found.

uploads:
resume: C:\LinkedInBot\cv.pdf
 # Cover letter is optional
 #coverLetter: C:\Users\myDirectory\CoverLettter.pdf

and gives the following error

Traceback (most recent call last):
  File "C:\LinkedInBot\main.py", line 122, in <module>
    parameters = validate_yaml()
  File "C:\LinkedInBot\main.py", line 76, in validate_yaml
    assert len(parameters['uploads']) >= 1 and 'resume' in parameters['uploads']
TypeError: object of type 'NoneType' has no len()

Cant find 'job-card-list__title' although it exists

Hey, I've tried using your app, however get following issue:

Traceback (most recent call last):
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\linkedineasyapply.py", line 167, in apply_jobs
job_el = job_tile.find_element_by_class_name('job-card-list__title')
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 398, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 659, in find_element
{"using": by, "value": value})['value']
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\venv\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Komputer\PycharmProjects\CVAutomation_1\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
(Session info: chrome=91.0.4472.77)

I'm not sure why it pops up :-/ It seems to be looking for class name 'job-card-list__title', but then returns error that cant find element. I checked that the element with such class name does exist.

Any thoughts?

StaleElementReferenceException

Hi,

After applying to one job I got this error.

selenium.common.exceptions.StaleElementReferenceException: Message: The element reference of <li id="ember302" class="ember-view jobs-search-results__job-card-search--generic-occludable-area  jobs-search-results__list-item occludable-update p0 relative
                  "> is stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed

bot keeps applying for jobs in far off lands....

edit: Ignore me, i've never used a .yaml file before and didn't realize I needed dashes. I'll leave this up in case anyone else has the same formatting issues. The solution is, when filling out .yaml, you must format like this:

positions:

  • Adobe Premiere
  • Avid Media Composer
  • animatic

Hey, first off, you're a total ledge for writing this. Once i got it all set up I ran it and noticed it had little random slow scrolls and wait times... nice.

However, i do have an issue! It does seem to be getting my "job title" and "location" correct, see attached screencap below. Job 
title is always a single letter "i" "m" "v" or something, and location is always a different country. Am I doing something wrong? Is that just how the bot... looks? The jobs are at least sort of in my space (video/media) but that could be just because of my linkedin profile and resume.

When i filled out the config.yaml I just write directly under "positions", just plain text no formatting... does it need to be in quotes? Wondering if this is a string issue and somehow it's just pulling random letters from the positions area?? The location is also "E, Savannakhet, Laos" so maybe it's grabbing a random "i" and "e" and just searching it?

my config.yaml looks like this:

positions:
 Adobe Premiere
 Avid Media Composer
 animatic

locations:
 United States

Any thoughts would be appreciated. thanks!

<img width="500" alt="Screen Shot 2022-08-06 at 9 37 09 PM" src="https://user-images.githubusercontent.com/85971387/183275567-d2a7d0fe-7020-44f2-bc7b-8fff4b64022c.png">

Legend

Thank you for this, it's so cool! Have been running it for an hour and already got an interview offer.

My only issues are that since easy apply forms aren't homogenous there are many fields that the bot doesn't cover. For instance I was just watching it list my ethnic background as Bangladeshi. I am new to coding, but could you possibly tell me how I would add further parameters to the bot/config file please?

Once again, thank you so much you're awesome!

Auto-Selects that I am not 18

I started using this super cool program you made and one thing I noticed is that it auto-selects me as not being 18 years old on or before the start of the job. Just a small issue but it could potentially make me not qualified for any jobs it applies for. I could also be filling out the yaml file wrong but I am not sure. Let me know if this is a bug or a user error on my part!
Screen Shot 2021-12-29 at 12 07 05 AM

Default Years of Experience Issue

So, I'm someone with 20 years of experience and a super optimized resume. I usually get a response from 4/5 jobs I apply to. I figured if I scaled it up with this, I could land something epic. However, after applying to 200+ jobs, my response rate fell to 40/200 and I was baffled.

Finally yesterday, I was watching the bot and I noticed for one of the "How many years of experience?" kind of questions that it went to, it entered "0." Immediately I was like "holy shit, that's why my resume isn't even getting looked at! It's putting "0" for a ton of them as they invariably ask these kinds of extra questions and I'm getting filtered out by ATS." Of course I'm super pissed at myself for not QA'ing the process better but I assumed if I have 15 as the default, it would either put 15 or NULL thus preventing the jobs from even successfully submitting, so how in the hell is it doing this? I went through the config and there's literally no "0" even in my entire TXT file. Can you please help me look into this? My car is about to get repossessed and I was trying to speed up my job search, but it actually slowed it down.

Won't apply for jobs? Improper class id or..?

File "C:\Users\Desktop\Easyapplyu\LinkedIn-Easy-Apply-Bot\linkedineasyapply.py", line 124, in apply_jobs
job_results = self.browser.find_element_by_class_name("jobs-search-results")
File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 766, in find_element_by_class_name
return self.find_element(by=By.CLASS_NAME, value=name)
File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 1251, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\selenium\webdriver\remote\webdriver.py", line 430, in execute
self.error_handler.check_response(response)
File "C:\Users\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".jobs-search-results"}
(Session info: chrome=
Stacktrace:
Backtrace:
Ordinal0 [0x007578B3+2193587]
Ordinal0 [0x006F0681+1771137]
Ordinal0 [0x006041A8+803240]
Ordinal0 [0x006324A0+992416]
Ordinal0 [0x0063273B+993083]
Ordinal0 [0x0065F7C2+1177538]
Ordinal0 [0x0064D7F4+1103860]
Ordinal0 [0x0065DAE2+1170146]
Ordinal0 [0x0064D5C6+1103302]
Ordinal0 [0x006277E0+948192]
Ordinal0 [0x006286E6+952038]
GetHandleVerifier [0x00A00CB2+2738370]
GetHandleVerifier [0x009F21B8+2678216]
GetHandleVerifier [0x007E17AA+512954]
GetHandleVerifier [0x007E0856+509030]
Ordinal0 [0x006F743B+1799227]
Ordinal0 [0x006FBB68+1817448]
Ordinal0 [0x006FBC55+1817685]
Ordinal0 [0x00705230+1856048]
BaseThreadInitThunk [0x7762FA29+25]
RtlGetAppContainerNamedObjectPath [0x77DA7A9E+286]
RtlGetAppContainerNamedObjectPath [0x77DA7A6E+238]

Not an Issue

Hey!
Apparently Im not that smart. I am struggling to get this to function.
Do you by chance have some contact info so that I can email you the error code?

error

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".jobs-search-results"}

Procedure on Linux

Hi, thanks for providing this. Have you tested it on Linux? I'm trying to run it on Lubuntu 20.04 but the bot is entering "d" in the search field and the location it selects appears to be random. I stop it before it gets too far, because it's trying to apply me to irrelevant jobs.

Here's some of the output if it helps.

`python3 main.py
/usr/lib/python3/dist-packages/requests/init.py:89: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!
warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "

====== WebDriver manager ======
Current google-chrome version is 98.0.4758
Get LATEST chromedriver version for 98.0.4758 google-chrome
Driver [/home/myname/.wdm/drivers/chromedriver/linux64/98.0.4758.80/chromedriver] found in cache
main.py:16: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=browser_options)
main.py:16: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=browser_options)
Starting the search for D in J.
Going to job page 0
Starting the application process for this page...
^CTraceback (most recent call last):
File "/home/myname/LinkedIn-Easy-Apply-Bot/linkedineasyapply.py", line 125, in apply_jobs
self.scroll_slow(job_results)
File "/home/myname/LinkedIn-Easy-Apply-Bot/linkedineasyapply.py", line 678, in scroll_slow
time.sleep(random.uniform(1.0, 2.6))
KeyboardInterrupt

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/myname/LinkedIn-Easy-Apply-Bot/linkedineasyapply.py", line 81, in start_applying
self.apply_jobs(location)
File "/home/myname/LinkedIn-Easy-Apply-Bot/linkedineasyapply.py", line 130, in apply_jobs
raise Exception("No more jobs on this page")
Exception: No more jobs on this page
Sleeping for 879.7411160469055 seconds.
^CTraceback (most recent call last):
File "main.py", line 128, in
bot.start_applying()
File "/home/myname/LinkedIn-Easy-Apply-Bot/linkedineasyapply.py", line 101, in start_applying
time.sleep(time_left)
KeyboardInterrupt
`

Keeps reverting country to Canada

Hey, first of, amazing app. Its working fine for now. However, there is an issue for me, it keeps reverting to Canada even when I have mentioned WorldWide in location. I am not sure why that is.

Note: I previously added Canada but then removed it to worldwide. its not working. Even though it worked for some time, then it reverted back to countries. Do I have to mention all the countries by name??

Update: I fixed the issue. So, apparently LinkedIn is now accepting a new parameter called geoId in the URL and its specific to every location apparently and thats why, even when you mention in URL that I am looking Worldwide, or whatever country you choose, it will still give you wrong location. I simply edited the final search url and edited the geoId. So, "&keywords=" became "&geoId=92000000&keywords=". 92000000 is the geoId for WorldWide.

You can find final URL at next_job_page in linkedineasyapply.py. Line 727. or just go at the end of the document.

Remote job

Can you add a parameter checkbox for are you willing for the remote job because it is selecting no by default?

A THANKS

first of all thanks for this amazing bot
my Q do u have any future plans for making bot about getting new connection to new people form different country based on defined filters, if so would be amazing really

Multiple Positions & Locations

First off, love this bot! My issue seems to be with having multiple locations and positions inside the config. The bot works fine, but only picks one location and one position to search for: then sleeps, and repeats the same search with the same parameters. Restarting the bot will allow it to start another search with a random location and position.

Is there any way to get this to crawl through the positions and/or locations? My primary focus is on getting multiple positions to work.

Throws error after applying to one job

Applies to one job then after it's finished it throws back

Could not apply to the job!
Traceback (most recent call last):
  File "C:\Users\ex\Documents\resumes\LinkedIn-Easy-Apply-Bot-master\linkedineasyapply.py", line 167, in apply_jobs
    job_el = job_tile.find_element_by_class_name('job-card-list__title')
  File "C:\Users\ex\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", line 398, in find_element_by_class_name
    return self.find_element(by=By.CLASS_NAME, value=name)
  File "C:\Users\ex\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", line 659, in find_element
    {"using": by, "value": value})['value']
  File "C:\Users\ex\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\ex\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\ex\AppData\Local\Programs\Python\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

unable to run

hi,

I am receiving the error below - sorry no coding experience of any sort. Could you help?

PS C:\Users\XXX\Documents\LinkedIn-Easy-Apply-Bot-master> python3 main.py
Traceback (most recent call last):
File "C:\Users\XXX\Documents\LinkedIn-Easy-Apply-Bot-master\main.py", line 122, in
parameters = validate_yaml()
File "C:\Users\XXX\Documents\LinkedIn-Easy-Apply-Bot-master\main.py", line 40, in validate_yaml
assert len(parameters['password']) > 0
TypeError: object of type 'int' has no len()

Thank you!

Anytime I try to start the bot I get this error.

bmilam@Snow:/mnt/c/Users/betak/downloads/LinkedIn-Easy-Apply-Bot-master$ python3 linkedineasyapply.py Traceback (most recent call last): File "linkedineasyapply.py", line 1, in <module> import time, random, csv, pyautogui, pdb, traceback, sys File "/home/bmilam/.local/lib/python3.8/site-packages/pyautogui/__init__.py", line 249, in <module> import mouseinfo File "/home/bmilam/.local/lib/python3.8/site-packages/mouseinfo/__init__.py", line 223, in <module> _display = Display(os.environ['DISPLAY']) File "/usr/lib/python3.8/os.py", line 675, in __getitem__ raise KeyError(key) from None KeyError: 'DISPLAY'

It was me. Though, Errno2 re: config.yaml is thrown

Hey there @NathanDuma, thanks in advance for expanding upon this and go Team Canada.

As hinted in the title, I have a feeling this is somehow my own error, but when attempting to run the script in cmd, as soon as I press enter, I'm returned with another C:\ and nothing happens. Forgive me, I really don't have much experience with command line stuff.

I found your fork after attempting to launch the original, yet was getting an error wherein the script would initialize, chrome would open but then the config.yaml file wasn't being found by linkedineasyapply.py. So, scrapped that, set up the config for yours (which looks great btw) and so far, dude.

Thanks in advance!

only single target (not tuple) can be annotated

Hello guys, how to fix this? just copy paste the source locally, installed and run.

python3 easyapplybot.py
File "/home/user/Desktop/LinkedIn-Easy-Apply-Bot/easyapplybot.py", line 206
self.browser, jobs_per_page: int = self.next_jobs_page(position,location,jobs_per_page)
^
SyntaxError: only single target (not tuple) can be annotated

Default to 0 even if i both of them to 5

Hello,
I setted the default value to 5, but to some questions ie Social Media Marketing it sets automatically to 0. Do u have any idea what I can do to set the default on all values?

Failure to apply to jobs, seeminly caused by inability to find the correct elements

Line 123 in linkedineasyapply.py
try:
job_results = self.browser.find_element_by_class_name("jobs-search-results")
self.scroll_slow(job_results)
self.scroll_slow(job_results, step=300, reverse=True)

This bit was what made it scroll through the jobs list up and down. the find_element_by_class_name appears to be the problem as that element is now called "jobs-search-results-list". If I change the line to read

        job_results = self.browser.find_element_by_class_name("jobs-search-results-list")

Then it will successfully scroll through the list up and down.

After that however I'm stuck and can't fix it. At line 128

        job_list = self.browser.find_elements_by_class_name('jobs-search-results__list')[0].find_elements_by_class_name('jobs-search-results__list-item')

This bit was what made it actually find the jobs themselves. Again the elements seem to be misnamed now, possibly due to a LinkedIn update, but I can't seem to make it find the jobs. It instead goes straight to raising the exception "No more jobs on this page".

I'm just not that good at inspecting elements so I don't know how to fix it. There is a div class "job-search-results-list" within which is a ul class "scaffold-layout__list-container" within which are the "li id" items for each job, with the following

class="ember-view jobs-search-results__list-item occludable-update p0 relative scaffold-layout__list-item

        "

So I'm not sure how to update that line to make it find each of these proper elements. But I know exactly where it is failing.

Not Getting Hired

No one will hire me. I've sent out thousands of applications. Please help.

(Not an issue): Reducing default waiting time for next page

Hi Nathan,

First, great job. I am using on Linux with my test LI account and not banned.

Two questions:

  1. How to reduce default waiting/sleep times? For example:

Sleeping for 892.995133638382 seconds.
Sleeping for 12.566666666666666 minutes.

Any tips? Plus any caveats/risks?

  1. Any instances of accounts being banned in your knowledge? Based on my testing so far, the way script works using Chrome, seems pretty much harmless so I don't see a reason of account being banned.

Apologies to open this discussion as an issue because I couldn't find any other way to speak to you.

Thanks.

Edit: 3/15/22

For # 1, found:

random.randint(500, 900)

In linkedineasyapply.py

Is there a reason for this interval? That is, is it more safer versus (250, 450)? Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.