nicolomantini / linkedin-easy-apply-bot Goto Github PK
View Code? Open in Web Editor NEWAutomate the application process on LinkedIn
License: Apache License 2.0
Automate the application process on LinkedIn
License: Apache License 2.0
Usually when I apply for a job on LinkedIn I receive an email that confirms my application,but I didn't receive any email .So I went to linkedIn to reapply for the same job that the bot should 've applied to ,normally I can't apply to it anymore since the bot has already did but in fact I had to apply for it manually so the bot is not working correctly.
Hi @nicolomantini,
We have integrated your code as an API of https://github.com/socialbotspy/LinkedinPy . Incase you are interested in being a contributor of it such that your code get better maintained at one place by a bigger community, let us know we can add you to the organisation.
Cheers,
Ishan
PS: Apologies for reaching out to you via issues as I couldn't find any other means.
GUI switch is at line 315 in easyapplybot.py if you could put that in the readme that would be cool.
line 117 and 118 were causing errors, without knowing what they are for i ended up just commenting them out and everything still worked. if you could add comment for their function that would make it easier to fix.
Thanks
name: feature request
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
Describe the feature
As nobody wants to get banned on their original 500+ connection accounts, I assume everyone here is going to create a new account that will duplicate your main and use bot with that.
Now,
The bot works perfectly for basic easy apply but when there are other questions like experience in X, Y on a new account, it skips the posting completely. I suggest we add a simple counting mechanism to the bot for like the first 20 successful applications until which it will pause until info is entered instead of skipping. More like a learning curve for the account.
OR
add a pause function to the bot so that we enter the additional details and then resume.
Screenshots
N/A
Logs
https://pastebin.com/CxY75Hq0
Error Statement
N/A
Desktop (please complete the following information):
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The bot should allow some way to provide additional question answers.
Additional context
N/A
Hi,
Thank you so much for this tool. However, when i try to run it, it does not apply to any jobs. this is the screenshot of the error https://imgur.com/DiUv0aS
May I know how can I fix this? This is a really useful tool
Thank you
The program throws an error in normalizeXYArgs in init file on pyautogui. Th error is
File "C:\Users\user\AppData\Local\Programs\Python\Python38\lib\site-packages\pyautogui__init_.py", line 691, in _normalizeXYArgs
return Point(int(firstArg), int(secondArg)) # firstArg and secondArg are just x and y number values
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
====== WebDriver manager ======
Current google-chrome version is 89.0.4389
Get LATEST driver version for 89.0.4389
There is no [linux64] chromedriver for browser 89.0.4389 in cache
Get LATEST driver version for 89.0.4389
Trying to download new driver from https://chromedriver.storage.googleapis.com/89.0.4389.23/chromedriver_linux64.zip
Driver has been saved in cache [/root/.wdm/drivers/chromedriver/linux64/89.0.4389.23]
Traceback (most recent call last):
File "easyapplybot.py", line 22, in
driver = webdriver.Chrome(ChromeDriverManager().install())
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in init
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in init
self.start_session(capabilities, browser_profile)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Any idea how to troubleshoot? (Sent from Chrome on Ubuntu 18 with XCFE)
This bot only really works for applications which you don't have to populate things in certain fields. Some companies ask for how many years experience with X or to answer some questions the recruiter put there. Can we have the option to populate these with a blank character? Also sometimes there are dropdowns for visa status and it would be nice to add support to answer these questions.
Sometimes if recruiters have recruiter accounts they can input custom questions (for those you can just populate them with a single character). Here are questions that will get you through the majority of the easy apply posts:
Email address*
Phone country code*
Mobile phone number*
Please include a resume
Do you have a valid driver's license? (yes/no checkbox)
What is your university grade point average (4.0 GPA Scale)? (1.0-4.0)
How many years of TECHNOLOGY experience do you currently have? (whole numbers only)
What is your level of proficiency in LANGUAGE? (dropdown: None, Conversational, Professional, Native or bilingual)
Do you have the following license or certification: CERTNAME? yes/no checkbox)
Have you completed the following level of education: DEGREE TYPE? (yes/no checkbox)
Are you comfortable commuting to this job's location? (yes/no checkbox)
How many years of work experience do you have using TECHNOLOGY? (whole numbers only)
We must fill this position urgently. Can you start immediately? (yes/no checkbox)
Are you legally authorized to work in COUNTRY? (yes/no checkbox)
Will you now, or in the future, require sponsorship for employment visa status (e.g. H-1B visa status)? (yes/no checkbox)
The bot won't fill in Experience text fields and commute option field, Please modify it to fill in experience(in year) and willing to commute as true/false
I have pulled your repository and only changed the config.yaml file. After few minutes(around an hour), my account signed out. Is it only related with me?
Job search for Embedded Software Engineer, but it only searched for 'E'
def start_apply(self): #self.wait_for_login() self.fill_data() #for position in self.positions: # for location in self.locations: print(f"Applying to {position}: {location}") #location = "&location=" + location self.applications_loop(position, location) self.finish_apply()
For a temp fix, I commented out the commented out lines above.
ModuleNotFoundError: No module named 'login_v06'
As the title says. When writing to the CSV file it fails, please implement a skip or try to convert characters to ascii.
Traceback (most recent call last): File "easyapplybot.py", line 450, in <module> bot.start_apply(positions, locations) File "easyapplybot.py", line 133, in start_apply self.applications_loop(position, location) File "easyapplybot.py", line 236, in applications_loop self.write_to_file(button, jobID, self.browser.title, result) File "easyapplybot.py", line 275, in write_to_file writer.writerow(toWrite) File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.496.0_x64__qbz5n2kfra8p0\lib\encodings\cp1252.py", line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 'charmap' codec can't encode character '\u0113' in position 49: character maps to <undefined>
Was working perfectly for the first 5 hours then it started failing the security check. Is there anything I can do to ensure that it doesn't fail?
Your code works very well throughout. Thank you for that. I am just facing one issue i.e when the bot opens the easy apply job application ,it skips to submit.Can you please help me fixing this issue? I am using python3.7 version and I have changed these lines of code:
pyautogui.moveTo(x+200, 0, duration=1.0)
pyautogui.moveTo(x, 0, duration=0.5)
instead of None I have replaced it with None.Everything else is just the same.Please help.
Thanks!
Some job applications have "additional questions" at the end of the application that are required before submitting the application. These questions are seemingly standardized and should be able to be answered generically.
Examples of questions:
Please assign this issue to me, as I am already working on this. (if you wouldnt mind :) )@nicolomantini
Any idea?
It's the ":" right after "position" and there's a space following it before line break
Describe the bug
Bot crashes for Companies with accented characters in their names (apparently)
Screenshots
https://www.linkedin.com/jobs/view/2555256306/
Error Statement
Traceback (most recent call last):
File "C:\Users\(username)\IdeaProjects\LinkedIn-Easy-Apply-Bot\easyapplybot.py", line 450, in <module>
bot.start_apply(positions, locations)
File "C:\Users\(username)\IdeaProjects\LinkedIn-Easy-Apply-Bot\easyapplybot.py", line 133, in start_apply
self.applications_loop(position, location)
File "C:\Users\(username)\IdeaProjects\LinkedIn-Easy-Apply-Bot\easyapplybot.py", line 236, in applications_loop
self.write_to_file(button, jobID, self.browser.title, result)
File "C:\Users\(username)\IdeaProjects\LinkedIn-Easy-Apply-Bot\easyapplybot.py", line 275, in write_to_file
writer.writerow(toWrite)
File "C:\Users\(username)\.pyenv\pyenv-win\versions\3.9.5\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 58-59: character maps to <undefined>
Desktop (please complete the following information):
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The bot shouldn't crash and should keep applying.
First off, awesome idea fr! I really like the project.
Now, I'm curious, realistically, how probable is it that someone could get banned using this bot? I see there are a lot of sleep timers and all that, but I'm still curious
I have fixed those issues. If you want, I can make a pull request.
We need to add a state machine to the application window that the send_resume function handles.
This is an output of the pull request #30
@krapes Whenever I run the new updated version I get this error
Bot stopped working properly after a few days.
Now it just loops on "Lock Avoided / Sleeping X.X"
Any idea?
Add enhancement to workflow to allow for automatically creating issues from the TODOs inserted into the code.
TODOs can be reviewed during pull request.
This is what I use on my other repos
https://github.com/marketplace/actions/todo-to-issue
On the review page there is a checkbox to follow the company's page. Please have an option to not follow the companies by default.
This guy literally copied your work and claims it as it's own.
First of all thank you for this amazon bot :)
i just need to clarify some enhancement need to be implemented such as
Questions asked during submitting easy apply like
those questions is flexible and 50% of applications i saw those questions are included
so is there anyway to include theme in config.yaml
or even give the user the ability to include any questions by adding them to
config file and wildcard the rest of question as following .
Are you legally authorized to work in [*]?
Thank you
It doesn't find submit button.
Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[contains(text(), 'Submit application')]"}
File "easyapplybot.py", line 444, in
for key in uploads.keys():
AttributeError: 'NoneType' object has no attribute 'keys
error in windows
line 444
for key in uploads.keys():
assert uploads[key] != None
Describe the bug
In my config file, I have one of my locations set to 'Remote'. However when I run the script, the location changes to 'Remote, OR, US' in the LinkedIn search.
Expected behavior
Would expect the remote location to remain as remote. Instead, it is somehow set to remote, OR, US
Describe the bug
File "\LinkedIn-Easy-Apply-Bot2\easyapplybot.py", line 216, in applications_loop\LinkedIn-Easy-Apply-Bot2\easyapplybot.py", line 256, in write_to_file
self.write_to_file(button, jobID, self.browser.title, result)
File "
writer.writerow(toWrite)
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 65-71: character maps to
Screenshots
If applicable, add screenshots of the LinkedIn page you are attempting to apply to.
Logs
If applicable, attach your logs file found in ./logs/
Error Statement
If applicable and not stated above, provide the error statement you are receiving.
Desktop (please complete the following information):
To Reproduce
Steps to reproduce the behavior:
Expected behavior
A clear and concise description of what you expected to happen.
Additional context
Add any other context about the problem here.
I have a few issues running the script.
Describe the bug
I just installed python to my mac, it has only the pip3 command when I hit pip3 install requiremnt.txt
I got a ton of errors
You could find the logs below
Screenshots
Logs
ERROR: Command errored out with exit status 1:
command: /Applications/Xcode.app/Contents/Developer/usr/bin/python3 /Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/site-packages/pip install --ignore-installed --no-user --prefix /private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-build-env-gys917s1/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel 'Cython>=0.29.13' 'numpy==1.13.3; python_version=='"'"'3.6'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.14.5; python_version>='"'"'3.7'"'"' and platform_system!='"'"'AIX'"'"'' 'numpy==1.16.0; python_version=='"'"'3.6'"'"' and platform_system=='"'"'AIX'"'"'' 'numpy==1.16.0; python_version>='"'"'3.7'"'"' and platform_system=='"'"'AIX'"'"''
cwd: None
Complete output (4388 lines):
Ignoring numpy: markers 'python_version == "3.6" and platform_system != "AIX"' don't match your environment
Ignoring numpy: markers 'python_version == "3.6" and platform_system == "AIX"' don't match your environment
Ignoring numpy: markers 'python_version >= "3.7" and platform_system == "AIX"' don't match your environment
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/ce/3c/096ac70aeb74485a2e7ab6f8146ea41cb4cecd955fdb2f30d51b51d7d146/setuptools-51.1.0-py3-none-any.whl
Collecting wheel
Using cached https://files.pythonhosted.org/packages/65/63/39d04c74222770ed1589c0eaba06c05891801219272420b40311cd60c880/wheel-0.36.2-py2.py3-none-any.whl
Collecting Cython>=0.29.13
Using cached https://files.pythonhosted.org/packages/ad/4b/9e53bcce3c959fd0db143626e573210bba07be810fe8d7296373948c4183/Cython-0.29.21-py2.py3-none-any.whl
Collecting numpy==1.14.5
Downloading https://files.pythonhosted.org/packages/d5/6e/f00492653d0fdf6497a181a1c1d46bbea5a2383e7faf4c8ca6d6f3d2581d/numpy-1.14.5.zip (4.9MB)
Building wheels for collected packages: numpy
Building wheel for numpy (setup.py): started
Building wheel for numpy (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /Applications/Xcode.app/Contents/Developer/usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-install-tn6vz1qr/numpy/setup.py'"'"'; file='"'"'/private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-install-tn6vz1qr/numpy/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-wheel-0zawlzmh --python-tag cp38
cwd: /private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-install-tn6vz1qr/numpy/
Complete output (4069 lines):
Running from numpy source directory.
/private/var/folders/7k/dhn34tsn6ws3fsts9dt78_mr0000gp/T/pip-install-tn6vz1qr/numpy/numpy/distutils/misc_util.py:464: SyntaxWarning: "is" with a literal. Did you mean "=="?
return is_string(s) and ('*' in s or '?' is s)
blas_opt_info:
blas_mkl_info:
customize UnixCCompiler
libraries mkl_rt not found in ['/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib', '/usr/local/lib', '/usr/lib']
NOT AVAILABLE
blis_info:
Hey Guys! I'm trying to move this python script to Heroku to automate the bot even further. I'm facing some issues with that.
If the team thinks its a good enhancement feature, I can share my script code and the issues I'm facing.
Thanks!
Hi,
First of all I would like to thank the inventors of this tool. It does an amazing job at applying to Easy Apply jobs on LinkedIn.
My first run went pretty well. However, in my second run I noticed the following:
In the third run, it took the job ids from "output.csv" and again closed out before moving to the next page for making further applications.
I had used one location and one position in my second and third run. Please let me know if the code is incorrect somewhere or I am not running the bot correctly.
P.S. It ran very well in its first run with 3 positions and 3 locations. I was able to apply to about 57 jobs.
Regards,
RushilYo
Tried like many times and couple of computers.
It either go to sleep and then exits OR applies to max of 1 page. Doesn't work basically.
Not sure if i am doing something wrong
Just a question: why all the sleeping? I can understand that it's to prevent LinkedIn from "catching" the bot, but it seems that the sleep times can be reduced a bit.
Have you determined the sleep times through research and/or testing or is it just an abundance of caution?
Do you think we could add support for indeed easy apply ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.