Update (11-Aug-23): I made some minor changes in the bot's code to fix a minor issue affecting some people and improve its speed. Please get the new code from my Github repo (in case you downloaded the bot a while back). Thanks.
Thank you so much for all your efforts. People who maintain and update code can be unsung heroes, but today I want to recognize and acknowledge all the help you are giving to the internet community. Thank you!
it all works until the page asks for additional questions like "How many years of experience do you have with SQL?" even though i put SQL in the Experience section, when it gets to this point it deletes all the zeros or previous ages of experience
@@taimurSM yes there are many, some have 0 as number of years of experience some 1. And the default is on 0. And one last thing i don't really know what's the speed supposed to be but it's quite slow, until it gets to the section of selecting the years of experiences it takes a couple of minutes.
@@pietroilRUSSo Set default to whatever years' of experience in xyz skill you want. Bot will use it as a default value for all the skills not mentioned in config.yaml. You may delete the skills not relevant to you and add the ones which are. Just maintain the formatting (i.e. spaces, etc.). It should be good to go. Good luck.
@@taimurSM thank you, I did what you suggest but it keeps happening sometimes, I put the default value on 1 and took the default settings of the experience and put it back on, it is happening when application is in a language which is different from English or Italian (right now it's stuck on a German one)
Hey there! I've to say that this is INCREDIBLE, it helps a lot and increases my interest to learn Python so much in a curious and magical way. I have a technical question: Every time the bot is submitting the application, even if I check the country code and it's correct according to the LinkedIn parameters, it always changes to Zimbabwe. Any clues? An informative question: Where do you start to learn all this stuff in Python? Do you have any baby steps training where you can recommend me as a financial person also. Once again, thanks!
Thanks for your appreciation. On technical Q: I think try completing one Easy Apply application manually, observing (or taking screenshots) of each step, and then compare with the same actions performed by the bot. This might give you hints as to what's going wrong. I am unable to reproduce this issue, so we have two possibilities. 1) Manually completing one application should help (assuming you've got config.yaml right), or 2) comparing screenshots might highlight the problem. On info Q: Everyone is different; for me, I have been into PCs since XT80 days; hence, I find it difficult to take Zero to Hero kind of courses as extremely boring while they teach you mainly the syntax, hello world, 2+2=4, 2>1=True stuff, etc. So depending on your current skill level, I would suggest getting acquainted with basic syntax and setting up the environment, then getting a brief idea about purpose-specific Python libraries, and then picking up a project of your interest and starting to work. That would be the best pathway, IMHO (e.g., when I adopted the abandoned bot, I never thought to come this far).
The bot is working just fine! Beyond amazing to be honest! Its just one thing, i need it to run about 5 or 10 percent faster, Its slow enough to say that it works as if im applying to the jobs my self! If you dont mind guiding me on how to make it faster! If not im again very thankful for maintaining this bot and optimizing it!
Thanks for your appreciation. I would suggest staying long-term and letting the bot run while you use your PC for other primary tasks. It can easily fill up hundreds of applications at current speeds (my average is about 120 per day while I only run it while gaming, maybe 2 or so hours per day). However, I have attempted twice to increase the speed of the bot but ended up with "Easy Apply" disabled for some time. The latest attempt was last week, so I would strongly advise against speeding it up. In case you are feeling adventurous, you can still find relevant code commented out (so it doesn't get executed)-that blob of code is marked as "# bot going too fast..." in [linkedineasyapply.py]. Just comment (i.e., add a hash tag sign) lines 194, 195, and 196, then uncomment lines 198 to 203, and have the joy of your life (don't blame me if you get a temp or perma ban, and don't ask me for support as well; I am already having the unnecessary flak of 'things not working').
Kewl. Few things to note. You can incorporate GPT to align the resume to the job description before submitting. I will share my code soon as it is polished. BTW, how did you integrate the PowerBI dashboard with your job searches? Or is that just a dummy mockup.
It will be good to see your code in action. I don't see any use of adding text generators (GPTs) to this use case. You search jobs by keywords and apply. PowerBI is a full working and interactive dashboard available from my Github. I have done a video explaining how easily it is to deploy my template > ruclips.net/video/4LH8WTrMCxw/видео.htmlsi=p3euh30TAspVzH8-
I'm curious on this as well as it would most likely improve job application. It would be nice to dynamically change resume based on job description + response from the LLM. I was trying something similar but kept getting error so I stopped. Please share if you have it complete. My initial gameplan data pipeline was: HTML parsed from LinkedIn Job description + My basic resume -> Google Palm API -> refined Resume in markdown format ->convert to pdf resume using Pandoc -> update config.yaml in easy apply bot with new file location of the pdf. But then some errors kept persisting. Let me know if you are doing something similar and would be nice to see your code.
@@taipizzalord4463 Glad to know. In sleep condition, it does not work and that's why we have a toggle/switch to prevent PC from sleeping. In a Windows locked state, I think it should work (in theory) as long as the PC doesn't go to sleep (for example, prolonged locked + idle state). However, I never tried frankly. See if you can test and share the outcome. Thanks.
If people think it does not work even after this detailed and live demo then please don't use the bot. I won't be responding to "not woking" rant anymore.
I'm working on my Mac, and within the interpreter, it's indicating Python 3.9 when using PyCharm. I'll keep you posted after I've executed your provided instructions. Appreciate the recent video and the diligent effort you've invested on our behalf. 😇
Indeed is an aggregator or job search engine, takes users to other websites for the application process where each website has its own mechanism. This makes it nearly impossible to have an end to end bot like LinkedIn Easy Apply.
can you help me for this Traceback (most recent call last): File "C:\Users\DELL\Desktop\demoo\EasyApplyBot\main.py", line 1, in import yaml ModuleNotFoundError: No module named 'yaml'
Hi I met the same issue. I resolved this by creating a virtual environment and install all dependencies from scratch and this worked. checking out "Fix Python ImportError or ModuleNotFoundError: No module named ‘yaml’" artical on codeman may be helpful. Hope this works for you
This bot is awesome and has shot out a lot of job applications for me but I've noticed it answering no to some pretty important questions despite me having them checked as true on the .yaml file. Such as - are you authorized to work in the U.S., are you 18 years of age or older - for the years of experience you have a default input, is there a way to edit the code to make the default input for any question that doesn't have an answer selected as yes?
You can always customize the code depending on your experience in programming. How many jobs are you facing with 18+ question? In general, you can look around in linkedinapply.py and try to add more questions.
@@taimurSM It wasn't a super consistent issue, I just noticed that sometimes the bot was answering questions as false when true would have definitely been the preference. My knowledge of coding is very limited but this project has inspired me greatly to expand upon that knowledge and learn more, not to mention gaining these skills will be incredibly beneficial to searching for a new job in itself.
@@beerburritos Bot looks for keywords in question to find relevant answers. It would either fail on all or none if logic was flawed. I think the issue is more about keywords. Programming isn't difficult (I am a finance/accounting guy), just have a curious mind aiming to solve some issue. Once I have time, I will do a short video on how users can add more Qs in the bot script.
Hi, the executable won't run on anything other than Windows. However, you can download the source code and run it on Mac after configuring the Python environment. My August update video demos step by step how to set up the Python environment and get going. Good luck.
Hi taimur thank you for this video and update to the code. It works well for me for the most part (bot still messes up some commands). I want to find a way to make this run faster, is there any way to do that?
I'm glad to be of help. I would suggest deploying PowerBI from my Github to monitor the performance, and from there you should be able to tweak keywords for a better outcome. Probably have a look at my Sep-23 video here: ruclips.net/video/4LH8WTrMCxw/видео.htmlsi=ncLJD9HbHNihRH3r
Hello, really good video, cos im not really related to python, I have a question, I have configured everything as you said, and Im checking the bot as well with the screen, but it is not applying almost to anything, only to one job, I have configured the positions as this: positions: - Web developer - React - Javascript - Frontend - FullStack - Full Stack - Desarrollador - Programador - Desarrollador/a - Full stack developer but it is not working properly, any help pls
Thanks. I am not sure what the issue could be. If you're using the latest code from my Github and configured config.yaml correctly without syntax errors, I don't see a reason to fail. I have about 27,000 jobs tested or applied to by this bot (in fact, it's running right now). In case you are facing any specific errors, I can try to help; otherwise, it's quite difficult to advise.
@@taimurSM Hello again, ive tried to install all with the python that you have in the video instead the one updated, but it is not workking.When i launch it, i complete the capptcha and then press enter, after that the bot open the windows menu, and closes it because it clicks in the screen, after that it starts to search for jobs but it doesnt appply to any of them. Is it supposed to apply to all the jobs?only the jobs that suit the exact words? Thanks for your answer :)
@@samuelborque1676 It should apply on the jobs that are the result of search terms except those companies, job posters or job titles which have been expressively blacklisted.
Amazing project. I ran into an issu tho: AttributeError: 'ChromeDriverManager' object has no attribute 'install'. It works fine on my Mac but idk why I have this issue on my Windows. Do you know how to fix it?
Is the same working on Mac? If so, I think you must have made a few Mac specific changes to handle webdriver then it won't work for Windows because it handles webdriver in a different way. If my understanding is correct, just get the LinkedIn ... py from my GitHub and use it for Windows instead. Keep your current one for Mac only.
@@taimurSM I actually figured it out. Because for some reason my PyCharm does not automatically install the packages so I had to do it manually and it was the webdriver_manager. It appeares as webdriver-manager (no underscore) in my PyCharm package.
Hey @taimurSM thanks for this video! I am not an experienced coder but upon running this I got the following error 'ValueError: Timeout value connect was , but it must be an int, float, or None' Can you help please?
Hi, you're welcome and for perspective I am a CPA, not a programmer. However, the error suggests a value was expected and it timed out. Can you provide more details? What exactly are you doing? Using the latest code in the Python environment or recently launched the Windows executable version?
Hi Taimur, Thanks for the detailed video of the bot. I am able to apply for few companies yesterday. I need your help in tuning the bot. some companies ask if candidates can work on-site/in-person. i see that bot generally fills it with NO. Another question that i see is " Are you authorised to work in USA" and sometimes the bot fills NO. how can i change it to YES ?
If you go through config.yaml, you will see that there are options to configure, 1) authorized to work, 2) require visa/sponsorship, and 3) start urgently. You may use CTRL+F to find
Nope, there is no way on an as-is basis. That "no" is basically a default option where the bot answers "no" (like a child) when it faces a strange or unknown question. Anyhow, I will have to implement or program this in future updates. Feel free to share such job links as a sample on my Github page (but in the Discussion/Ideas section, not in Issues, as it's not an issue but a feature request). I'll keep it in mind for future updates. Thanks.
Hi@@taimurSM, I have added some suggestions in the discussions. Please let us know when updated. Also please let me know if any input is required. Happy to help you.
@@sricharan2136Thanks. Just responded. Some of those already exist. Did you go through config.yaml entirely? I have one good update in the pipeline, then some of yours will follow. I will either post in the community tab of my channel or do a video if time permits.
Phenomenal video and guide, everything went smoothly for me when copying exactly what you did. By chance, is there any way to streamline the position searching? Like If I input "accountant" on the list, it would automatically apply for any position that mentions the word "accountant" anywhere in the title. What if the title is "Staff accountant - 2nd shift" or any other combinations of those words? It becomes tedious having to come up with job posting titles to list off in the config 😅
Thanks for your appreciation. The issue of "fine-tuning" (aka training) is always present in all automations, including RPA, ML, AI, etc. The only way is to use the titleBlackList section of config.yaml to prevent bot from applying to unwanted jobs. For example, I used the PowerBI dashboard (as shown in the video) to identify patterns of unwanted jobs and populate my `titleBlackList` to prevent bot from making those mistakes again. After about a dozen entries in titleBlackList, bot is 99% applying for the jobs I want. FYI, I will be publishing my PowerBI dashboard in the next update so others may also have visibility on the bot's performance.
@@taimurSM Very interesting! And how do you tackle the issue of dealing with the bot continuously applying for the same listing during the scripts execution?
Those jobs appear as a matter of search results where LinkedIn offers no option to hide "applied jobs". However, bot simply ignores them with a message "Already applied to the job!". I don't see it being an issue in anyway.
HI , I am getting a error in Line 74 validate_yaml assert len(parameters['positions']) >= 0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() I tired adjust the positions in config field and my syntax is correct for that with 1 space at the start and - afterwards. Please assist with solving this.
hello, sorry to bother you but for alot of the jobs I am applying for I get a YES/NO question asking if I'm based in the UK, is there a way to add to the checkbox parameters to answer this question as yes?
Hi, no worries. It's planned for the next update. I am working on it. Expect this improvement alongside others in the upcoming update hopefully mid-Oct. Thanks.
@@taimurSM Thanks for the heads up, I've gone ahead and just added my own custom data and elif statements to the dropdown and radio code, it seems to be an iterative process when it comes to making up queries to tackle unanswered questions 🤣
@@jimjimdanglebun685 yes it iterates and tries to match best answer and this is so because the appearance of questions is often random. what questions you added? I will include those in my next update so all could benefit. feel free to post the code on my github on discussion thread. github.com/voidbydefault/EasyApplyBot/discussions/
@@taimurSM Just some UK centered questions, some US jargon conversion and some code for day rates when it comes to contracting. I've found alot of the applications have sections about 'why do you want to work here' and whatnot, but they aren't required questions so the application ends up submitting and looking poor (an option may be to save an application for later if a field is left blank). One change I may ask for is the ability to upload pictures, in the UK alot of companies are very adamant about putting a face to the application (in my opinion it's just another way to bias the selection process) I'll try and clean it all up before I post it, but I'm sure I'll be adding more changes as time goes on. I hope you're having a good day and I'll be happy to help expand this bot and it's functions as it is literally saving me my entire days worth of time.
@@jimjimdanglebun685 Can't speak of recruitment practices in the UK, generally spreaking, adding pictures to resumes is discouraged (judgmental bias) unless one is applying for modelling, acting jobs, etc. I pushed changes to the bot last night, have a look at my video posted yestrerday if you consider necessary. Have a good one.
It uses keywords to terminate stuck application and move on to the next one. In case it doesn't manually close the application. Bot will move on. If possible share a screenshot on my GitHub for analysis (hide personal info).
Currently you can only set sponsorship required as Yes or No. I didn't encounter questions asking "type of visa" so don't think adding it would serve the mass public. In your individualistic case, you can modify the code to include it (some Python experience would be required)
Do you know why the program says "Sleeping for 615 seconds" after each page that it runs? Do you know how to resolve this so it doesn't pause between pages? Thanks!
That's planned delay to slowdown bot and avoid trigginer LinkedIn filters. I tinkered with this and other delays, but my account got restricted (luckly wasn't banned). In case, you don't like the delay, safest option is to stop the script and rerun so bot starts from zero.
thanks! also, do you know how to change the default experience to a float? Some applications only allow floats for years of experience and it triggers an infinite loop in the application. I tried setting default to 1.5, but the validate_yaml sends an assertion error @@taimurSM
Hello, never tried Termux however... In theory if a device can run Python with required libraries and Chrome then it should run the bot as well. I will be posting an updated code in a few days. Stay tuned.
Hi, how do i add setting if it asks for onsite and i need to say yes? also, sometimes there is some input in float, but in yaml it is int and script gets stuck there, can there be a functionality, if cannot apply for a job for more than 5 mins, timeout and move to next job?
Hi Prakash, nice suggestions. I am aware of that int-to-float issue and have already attempted a quick fix to force those inputs to always be float during execution, but bot still gets stuck in a few instances. Your idea of "terminate if stuck and progress to the next job" is good; it will be considered in the next update. Thanks. Edit: In my use instance, int-to-float issue is less frequent, but whenever I note it, I simply close application manually by clicking on [x] button in stuck application and bot moves on to next application.
@@PrakashKumar-er5jo I can't have a quick fix. For now, just ensure you are running bot for English speaking countries only (because bot gets stuck in non-English job applications) and then use keywords in blacklist to filter out non-English titles as I have figured out a few in my case "Directeur finance" (French for Director Finance).
My problem, bot is working I am not related to python. Can you explain how can i fix it File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in parameters = validate_yaml() File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml assert languages[language].lower() in language_types AssertionError
@@taimurSM I didnt say bot problem. This is my problem. But i am not related to python or IT. File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in parameters = validate_yaml() File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml assert languages[language].lower() in language_types AssertionError
@@taimurSM line 132, in parameters = validate_yaml() if __name__ == "__main__": parameters = validate_yaml() browser = init_browser() line 111, in validate_yaml assert languages[language].lower() in language_types AssertionError languages = parameters.get('languages', []) language_types = {'none', 'conversational', 'professional', 'native or bilingual'} for language in languages: assert languages[language].lower() in language_types
Complete config.yaml properly, read instructions line by line and provide mandatory information. I am an accountant, programming experience isn't necessary.
hi, can you help me for this issue Traceback (most recent call last): File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in parameters = validate_yaml() File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml assert languages[language].lower() in language_types AssertionError Process finished with exit code 1
Hello mr. Taimur, thank you so much creating such a fantastic weapon for job searcher. In India there is additional questions like annual CTC expected CTC some specific requirement by companies, bot got stuck on that. Please help to get out of it.
Thanks for appreciating. CTC is an easy fix, I am going to test and then update the code in Github expect it in a 2 or 3 days max :). For now, you can simply click on [x] to close stuck application so bot may move on to second job in queue. Furthermore, please do watch my Sep-23 update. In that video, I am demonstrating how to download monitoring dashboard made in PowerBI to monitor and fine-tune bot's performance. I will keep you posted on CTC.
@@prabhashsingh1477 I have updated bot and hope it will help in responding questions on CTC (cost-to-company) and on-site. Please replace your local linkedineasyapply.py with the new one from my Github. Keep me posted.
In addition to CTC, I have also added a new filter in config.yaml to allow applying a filter of "jobs with less than 10 applicants". To have a look at new config.yaml (I only added 3 lines), copy paste those in your current config.yaml. And then, download linkedineasyapply.py and main.py and replace on your PC.
I am thinking about making it an installable package so anyone can use it. But for now, you can visit my Github page once in a while (or keep an eye on my RUclips) and manually perform script updates. It isn't too difficult.
That's usually because bots fail to find where MacOS saves temporary working files, for example, chromedriver. Lookup exact error on MacOS user forums and it will work.
@@taimurSM in this case i have some kind of a different of error I suppose: yaml.parser.ParserError: while parsing a block mapping in "config.yaml", line 2, column 1 expected , but found '' in "config.yaml", line 136, column 2 But it make sense since I was having an error with chromedriver with another bot.
Ok, I've solved it. I removed all spaces before "years of experience" parameters and now I have a new error :) Traceback (most recent call last): File "/Users/EasyApplyBot/main.py", line 131, in parameters = validate_yaml() ^^^^^^^^^^^^^^^ File "/Users/EasyApplyBot/main.py", line 114, in validate_yaml for tech in experience: TypeError: 'int' object is not iterable
@@kikuru309 Only change structure of config.yaml if you know precisely what you're doing. I would suggest re-downloading config.yaml from GitHub and only change values you need to configure your profile.
@@dudjcjtue9w91 Don't use it. It will corrupt your disk and create bad sectors on the drive. Delete all files, corrupt ram and overheat the processor. Stay away, the bot hates noobs.
@@taimurSM lol, im trying to install it on vs code and downloading each requiremtn with npm but its not working!!!!!!!!!!!!!!! can you drop your insta please . i need some assistance please...
Hello, I couldnt dowload the requriments. I mean I didnt see the download section. C:\Users\enes\Downloads\demo\EasyApplyBot\venv\Scripts\python.exe C:\Users\enes\Downloads\demo\EasyApplyBot\source\app\main.py Traceback (most recent call last): File "C:\Users\enes\Downloads\demo\EasyApplyBot\source\app\main.py", line 1, in import yaml ModuleNotFoundError: No module named 'yaml'
Hello when I try to run the bot it says line 60, in validate.yaml assert validate_email(parameters[’email’]) can u help me please I thought by deleting hashtags and unessary words in line 59 would help but now it says line 59, invalidate-yaml assert validate_email(parameters[’email’]) Line 59 is where u originally put how to input location data but i deleted it thinking it would help Line 60 is distance: 100
@@taimurSMmy email address also has what u originally put next to it email in that space your name/domain, but when I delete it, the bot only runs to line 20/21 and the error changes to chrome driver
@@user-ik3qf3qk9x I would suggest re-downloading the config.yaml only, replace in your not folder and only change options you need to change. Don't delete anything, don't add anything.
Update (11-Aug-23):
I made some minor changes in the bot's code to fix a minor issue affecting some people and improve its speed. Please get the new code from my Github repo (in case you downloaded the bot a while back). Thanks.
Thank you so much for all your efforts. People who maintain and update code can be unsung heroes, but today I want to recognize and acknowledge all the help you are giving to the internet community. Thank you!
it all works until the page asks for additional questions like "How many years of experience do you have with SQL?" even though i put SQL in the Experience section, when it gets to this point it deletes all the zeros or previous ages of experience
There is "Experiences" section listing various skills in config.yaml. Is it added there?
@@taimurSM yes there are many, some have 0 as number of years of experience some 1. And the default is on 0.
And one last thing i don't really know what's the speed supposed to be but it's quite slow, until it gets to the section of selecting the years of experiences it takes a couple of minutes.
@@pietroilRUSSo Set default to whatever years' of experience in xyz skill you want. Bot will use it as a default value for all the skills not mentioned in config.yaml. You may delete the skills not relevant to you and add the ones which are. Just maintain the formatting (i.e. spaces, etc.). It should be good to go. Good luck.
@@taimurSM thank you, I did what you suggest but it keeps happening sometimes, I put the default value on 1 and took the default settings of the experience and put it back on, it is happening when application is in a language which is different from English or Italian (right now it's stuck on a German one)
And sometimes I puts the right phone number but other times it is left blank and the phone region code is put to Zimbabwe
Hey there! I've to say that this is INCREDIBLE, it helps a lot and increases my interest to learn Python so much in a curious and magical way.
I have a technical question:
Every time the bot is submitting the application, even if I check the country code and it's correct according to the LinkedIn parameters, it always changes to Zimbabwe. Any clues?
An informative question:
Where do you start to learn all this stuff in Python? Do you have any baby steps training where you can recommend me as a financial person also.
Once again, thanks!
Thanks for your appreciation.
On technical Q: I think try completing one Easy Apply application manually, observing (or taking screenshots) of each step, and then compare with the same actions performed by the bot. This might give you hints as to what's going wrong. I am unable to reproduce this issue, so we have two possibilities. 1) Manually completing one application should help (assuming you've got config.yaml right), or 2) comparing screenshots might highlight the problem.
On info Q: Everyone is different; for me, I have been into PCs since XT80 days; hence, I find it difficult to take Zero to Hero kind of courses as extremely boring while they teach you mainly the syntax, hello world, 2+2=4, 2>1=True stuff, etc. So depending on your current skill level, I would suggest getting acquainted with basic syntax and setting up the environment, then getting a brief idea about purpose-specific Python libraries, and then picking up a project of your interest and starting to work. That would be the best pathway, IMHO (e.g., when I adopted the abandoned bot, I never thought to come this far).
The bot is working just fine!
Beyond amazing to be honest!
Its just one thing, i need it to run about 5 or 10 percent faster,
Its slow enough to say that it works as if im applying to the jobs my self! If you dont mind guiding me on how to make it faster! If not im again very thankful for maintaining this bot and optimizing it!
Thanks for your appreciation. I would suggest staying long-term and letting the bot run while you use your PC for other primary tasks. It can easily fill up hundreds of applications at current speeds (my average is about 120 per day while I only run it while gaming, maybe 2 or so hours per day). However, I have attempted twice to increase the speed of the bot but ended up with "Easy Apply" disabled for some time. The latest attempt was last week, so I would strongly advise against speeding it up. In case you are feeling adventurous, you can still find relevant code commented out (so it doesn't get executed)-that blob of code is marked as "# bot going too fast..." in [linkedineasyapply.py]. Just comment (i.e., add a hash tag sign) lines 194, 195, and 196, then uncomment lines 198 to 203, and have the joy of your life (don't blame me if you get a temp or perma ban, and don't ask me for support as well; I am already having the unnecessary flak of 'things not working').
@@taimurSM thanks man!
And no ,no blames here im fully aware of the action im about to take and i hold the responsibility for it,thanks again!
Kewl. Few things to note. You can incorporate GPT to align the resume to the job description before submitting. I will share my code soon as it is polished. BTW, how did you integrate the PowerBI dashboard with your job searches? Or is that just a dummy mockup.
It will be good to see your code in action. I don't see any use of adding text generators (GPTs) to this use case. You search jobs by keywords and apply. PowerBI is a full working and interactive dashboard available from my Github. I have done a video explaining how easily it is to deploy my template > ruclips.net/video/4LH8WTrMCxw/видео.htmlsi=p3euh30TAspVzH8-
I'm curious on this as well as it would most likely improve job application. It would be nice to dynamically change resume based on job description + response from the LLM. I was trying something similar but kept getting error so I stopped. Please share if you have it complete.
My initial gameplan data pipeline was:
HTML parsed from LinkedIn Job description + My basic resume -> Google Palm API -> refined Resume in markdown format ->convert to pdf resume using Pandoc -> update config.yaml in easy apply bot with new file location of the pdf.
But then some errors kept persisting. Let me know if you are doing something similar and would be nice to see your code.
Thank you so much!! This bot is amazing! I really appreciate the work that you've done!! Many thanks
Most welcome. Hope this helps!
@@taimurSM Thanks i also got it working. But does it still work when the computer is asleep and locked (windows 10)
@@taipizzalord4463 Glad to know. In sleep condition, it does not work and that's why we have a toggle/switch to prevent PC from sleeping.
In a Windows locked state, I think it should work (in theory) as long as the PC doesn't go to sleep (for example, prolonged locked + idle state). However, I never tried frankly. See if you can test and share the outcome. Thanks.
If people think it does not work even after this detailed and live demo then please don't use the bot. I won't be responding to "not woking" rant anymore.
I'm working on my Mac, and within the interpreter, it's indicating Python 3.9 when using PyCharm. I'll keep you posted after I've executed your provided instructions. Appreciate the recent video and the diligent effort you've invested on our behalf. 😇
@@anujgupta6876 I have tested the bot script on versions ranging from 3.9 to 3.12 (3.9 and 3.10 to the most part). Good luck.
good stuff do you have an indeed bot some jobs are exclusive there sometimes...
Indeed is an aggregator or job search engine, takes users to other websites for the application process where each website has its own mechanism. This makes it nearly impossible to have an end to end bot like LinkedIn Easy Apply.
can you help me for this
Traceback (most recent call last):
File "C:\Users\DELL\Desktop\demoo\EasyApplyBot\main.py", line 1, in
import yaml
ModuleNotFoundError: No module named 'yaml'
It seems you haven't installed all requirements. Watch and follow video step by step, it should work if you're on Windows.
Hi I met the same issue. I resolved this by creating a virtual environment and install all dependencies from scratch and this worked. checking out "Fix Python ImportError or ModuleNotFoundError: No module named ‘yaml’" artical on codeman may be helpful. Hope this works for you
This bot is awesome and has shot out a lot of job applications for me but I've noticed it answering no to some pretty important questions despite me having them checked as true on the .yaml file. Such as - are you authorized to work in the U.S., are you 18 years of age or older - for the years of experience you have a default input, is there a way to edit the code to make the default input for any question that doesn't have an answer selected as yes?
You can always customize the code depending on your experience in programming. How many jobs are you facing with 18+ question? In general, you can look around in linkedinapply.py and try to add more questions.
@@taimurSM It wasn't a super consistent issue, I just noticed that sometimes the bot was answering questions as false when true would have definitely been the preference. My knowledge of coding is very limited but this project has inspired me greatly to expand upon that knowledge and learn more, not to mention gaining these skills will be incredibly beneficial to searching for a new job in itself.
@@beerburritos Bot looks for keywords in question to find relevant answers. It would either fail on all or none if logic was flawed. I think the issue is more about keywords. Programming isn't difficult (I am a finance/accounting guy), just have a curious mind aiming to solve some issue. Once I have time, I will do a short video on how users can add more Qs in the bot script.
Hi Taimur, can I download the zip file and run it on Mac and use config.yml file without the need to use python?
Hi, the executable won't run on anything other than Windows. However, you can download the source code and run it on Mac after configuring the Python environment. My August update video demos step by step how to set up the Python environment and get going. Good luck.
Hi taimur thank you for this video and update to the code. It works well for me for the most part (bot still messes up some commands). I want to find a way to make this run faster, is there any way to do that?
I'm glad to be of help. I would suggest deploying PowerBI from my Github to monitor the performance, and from there you should be able to tweak keywords for a better outcome. Probably have a look at my Sep-23 video here: ruclips.net/video/4LH8WTrMCxw/видео.htmlsi=ncLJD9HbHNihRH3r
Hello, really good video, cos im not really related to python, I have a question, I have configured everything as you said, and Im checking the bot as well with the screen, but it is not applying almost to anything, only to one job, I have configured the positions as this:
positions:
- Web developer
- React
- Javascript
- Frontend
- FullStack
- Full Stack
- Desarrollador
- Programador
- Desarrollador/a
- Full stack developer
but it is not working properly, any help pls
Thanks. I am not sure what the issue could be. If you're using the latest code from my Github and configured config.yaml correctly without syntax errors, I don't see a reason to fail. I have about 27,000 jobs tested or applied to by this bot (in fact, it's running right now). In case you are facing any specific errors, I can try to help; otherwise, it's quite difficult to advise.
@@taimurSM Hello again, ive tried to install all with the python that you have in the video instead the one updated, but it is not workking.When i launch it, i complete the capptcha and then press enter, after that the bot open the windows menu, and closes it because it clicks in the screen, after that it starts to search for jobs but it doesnt appply to any of them.
Is it supposed to apply to all the jobs?only the jobs that suit the exact words?
Thanks for your answer :)
@@samuelborque1676 It should apply on the jobs that are the result of search terms except those companies, job posters or job titles which have been expressively blacklisted.
So i have no clue why it is not working because i dont have any blacklisted@@taimurSM
Ive tried everything again but it stills open the windows menu, after the login randomly, even that im not touching anything
Amazing project. I ran into an issu tho:
AttributeError: 'ChromeDriverManager' object has no attribute 'install'.
It works fine on my Mac but idk why I have this issue on my Windows. Do you know how to fix it?
Is the same working on Mac? If so, I think you must have made a few Mac specific changes to handle webdriver then it won't work for Windows because it handles webdriver in a different way.
If my understanding is correct, just get the LinkedIn ... py from my GitHub and use it for Windows instead. Keep your current one for Mac only.
@@taimurSM I actually figured it out. Because for some reason my PyCharm does not automatically install the packages so I had to do it manually and it was the webdriver_manager. It appeares as webdriver-manager (no underscore) in my PyCharm package.
Brother one question, do you know how I can confirm if the bot is using the correct resume?
You can submit one application manually. The bot will then use the last submitted CV/resume
Hey @taimurSM thanks for this video! I am not an experienced coder but upon running this I got the following error 'ValueError: Timeout value connect was , but it must be an int, float, or None' Can you help please?
Hi, you're welcome and for perspective I am a CPA, not a programmer. However, the error suggests a value was expected and it timed out. Can you provide more details? What exactly are you doing? Using the latest code in the Python environment or recently launched the Windows executable version?
Hi Taimur, Thanks for the detailed video of the bot. I am able to apply for few companies yesterday. I need your help in tuning the bot. some companies ask if candidates can work on-site/in-person. i see that bot generally fills it with NO.
Another question that i see is " Are you authorised to work in USA" and sometimes the bot fills NO. how can i change it to YES ?
If you go through config.yaml, you will see that there are options to configure, 1) authorized to work, 2) require visa/sponsorship, and 3) start urgently.
You may use CTRL+F to find
@@taimurSM hi . Is there an option to select “yes” when asked if candidates can work onsite ?
Nope, there is no way on an as-is basis. That "no" is basically a default option where the bot answers "no" (like a child) when it faces a strange or unknown question. Anyhow, I will have to implement or program this in future updates. Feel free to share such job links as a sample on my Github page (but in the Discussion/Ideas section, not in Issues, as it's not an issue but a feature request). I'll keep it in mind for future updates. Thanks.
Hi@@taimurSM, I have added some suggestions in the discussions. Please let us know when updated. Also please let me know if any input is required. Happy to help you.
@@sricharan2136Thanks. Just responded. Some of those already exist. Did you go through config.yaml entirely? I have one good update in the pipeline, then some of yours will follow. I will either post in the community tab of my channel or do a video if time permits.
Phenomenal video and guide, everything went smoothly for me when copying exactly what you did.
By chance, is there any way to streamline the position searching? Like If I input "accountant" on the list, it would automatically apply for any position that mentions the word "accountant" anywhere in the title. What if the title is "Staff accountant - 2nd shift" or any other combinations of those words? It becomes tedious having to come up with job posting titles to list off in the config 😅
Thanks for your appreciation. The issue of "fine-tuning" (aka training) is always present in all automations, including RPA, ML, AI, etc.
The only way is to use the titleBlackList section of config.yaml to prevent bot from applying to unwanted jobs. For example, I used the PowerBI dashboard (as shown in the video) to identify patterns of unwanted jobs and populate my `titleBlackList` to prevent bot from making those mistakes again. After about a dozen entries in titleBlackList, bot is 99% applying for the jobs I want.
FYI, I will be publishing my PowerBI dashboard in the next update so others may also have visibility on the bot's performance.
@@taimurSM Very interesting! And how do you tackle the issue of dealing with the bot continuously applying for the same listing during the scripts execution?
Those jobs appear as a matter of search results where LinkedIn offers no option to hide "applied jobs". However, bot simply ignores them with a message "Already applied to the job!". I don't see it being an issue in anyway.
@@taimurSMyou’re a hero, thanks for helping those in a horrible job market
@@LykcosThanks. I hope my work helps people land jobs.
HI ,
I am getting a error in Line 74
validate_yaml
assert len(parameters['positions']) >= 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: object of type 'NoneType' has no len()
I tired adjust the positions in config field and my syntax is correct for that with 1 space at the start and - afterwards.
Please assist with solving this.
Did you remove the hash sign? Try to observe my config.yaml around 31:27
Hi,
Please dis-regard the above issue.
I solved it. Just had to re-save the config file.
The changes I made to the config file were being reconsigned. I had the save the file after making any changes to config file. @@taimurSM
hello, sorry to bother you but for alot of the jobs I am applying for I get a YES/NO question asking if I'm based in the UK, is there a way to add to the checkbox parameters to answer this question as yes?
Hi, no worries. It's planned for the next update. I am working on it. Expect this improvement alongside others in the upcoming update hopefully mid-Oct. Thanks.
@@taimurSM Thanks for the heads up, I've gone ahead and just added my own custom data and elif statements to the dropdown and radio code, it seems to be an iterative process when it comes to making up queries to tackle unanswered questions 🤣
@@jimjimdanglebun685 yes it iterates and tries to match best answer and this is so because the appearance of questions is often random. what questions you added? I will include those in my next update so all could benefit. feel free to post the code on my github on discussion thread. github.com/voidbydefault/EasyApplyBot/discussions/
@@taimurSM Just some UK centered questions, some US jargon conversion and some code for day rates when it comes to contracting. I've found alot of the applications have sections about 'why do you want to work here' and whatnot, but they aren't required questions so the application ends up submitting and looking poor (an option may be to save an application for later if a field is left blank).
One change I may ask for is the ability to upload pictures, in the UK alot of companies are very adamant about putting a face to the application (in my opinion it's just another way to bias the selection process)
I'll try and clean it all up before I post it, but I'm sure I'll be adding more changes as time goes on.
I hope you're having a good day and I'll be happy to help expand this bot and it's functions as it is literally saving me my entire days worth of time.
@@jimjimdanglebun685 Can't speak of recruitment practices in the UK, generally spreaking, adding pictures to resumes is discouraged (judgmental bias) unless one is applying for modelling, acting jobs, etc. I pushed changes to the bot last night, have a look at my video posted yestrerday if you consider necessary. Have a good one.
If PyCharm gets stuck in the middle of the application can anything be done to avoid this?
It uses keywords to terminate stuck application and move on to the next one. In case it doesn't manually close the application. Bot will move on. If possible share a screenshot on my GitHub for analysis (hide personal info).
How do you set: H1B yes and need sponsorship? I can't figure it out. Thank you
Currently you can only set sponsorship required as Yes or No. I didn't encounter questions asking "type of visa" so don't think adding it would serve the mass public. In your individualistic case, you can modify the code to include it (some Python experience would be required)
@@taimurSM I do have some python skills, can you be more specific which file should I look into to make the change ? Thank you
@@DZ-eu7ln LinkedIn apply.py -- exact name not in mind at this time
Do you know why the program says "Sleeping for 615 seconds" after each page that it runs? Do you know how to resolve this so it doesn't pause between pages? Thanks!
That's planned delay to slowdown bot and avoid trigginer LinkedIn filters. I tinkered with this and other delays, but my account got restricted (luckly wasn't banned). In case, you don't like the delay, safest option is to stop the script and rerun so bot starts from zero.
thanks! also, do you know how to change the default experience to a float? Some applications only allow floats for years of experience and it triggers an infinite loop in the application. I tried setting default to 1.5, but the validate_yaml sends an assertion error
@@taimurSM
Hi, can this be also done on android using termux?
Hello, never tried Termux however... In theory if a device can run Python with required libraries and Chrome then it should run the bot as well. I will be posting an updated code in a few days. Stay tuned.
Hi,
how do i add setting if it asks for onsite and i need to say yes?
also, sometimes there is some input in float, but in yaml it is int and script gets stuck there, can there be a functionality, if cannot apply for a job for more than 5 mins, timeout and move to next job?
Hi Prakash, nice suggestions. I am aware of that int-to-float issue and have already attempted a quick fix to force those inputs to always be float during execution, but bot still gets stuck in a few instances. Your idea of "terminate if stuck and progress to the next job" is good; it will be considered in the next update. Thanks.
Edit: In my use instance, int-to-float issue is less frequent, but whenever I note it, I simply close application manually by clicking on [x] button in stuck application and bot moves on to next application.
@@taimurSM can you let me know quick workaround for skipping job after 5 mins automatically?
@@PrakashKumar-er5jo close it manually, click on [x] > discard > and bot will proceed to next job. That's the quickest workaround.
@@taimurSM yes, but i plan to run entire night, so once i looked and it was stuck for 3hrs.
@@PrakashKumar-er5jo I can't have a quick fix. For now, just ensure you are running bot for English speaking countries only (because bot gets stuck in non-English job applications) and then use keywords in blacklist to filter out non-English titles as I have figured out a few in my case "Directeur finance" (French for Director Finance).
My problem, bot is working I am not related to python. Can you explain how can i fix it
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in
parameters = validate_yaml()
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml
assert languages[language].lower() in language_types
AssertionError
It's clear about the problem. You haven't defined experience. Not a bot issue, configure your profile in config.yaml properly.
@@taimurSM I didnt say bot problem. This is my problem. But i am not related to python or IT.
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in
parameters = validate_yaml()
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml
assert languages[language].lower() in language_types
AssertionError
@@taimurSM
line 132, in
parameters = validate_yaml()
if __name__ == "__main__":
parameters = validate_yaml()
browser = init_browser()
line 111, in validate_yaml
assert languages[language].lower() in language_types
AssertionError
languages = parameters.get('languages', [])
language_types = {'none', 'conversational', 'professional', 'native or bilingual'}
for language in languages:
assert languages[language].lower() in language_types
Complete config.yaml properly, read instructions line by line and provide mandatory information. I am an accountant, programming experience isn't necessary.
@@taimurSM I tried and made line by line but still same problem
hi, can you help me for this issue
Traceback (most recent call last):
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 131, in
parameters = validate_yaml()
File "C:\Users\DELL\Desktop\Linkedin\Demo\EasyApplyBot\main.py", line 111, in validate_yaml
assert languages[language].lower() in language_types
AssertionError
Process finished with exit code 1
@@robertj.4156 I solved. I did everything from beginning. It doesn't came again same problem
Revisit your setup of config.yaml. Read the error, it is point to a misconfig or a missing config in Languages section of config.yaml.
how do i add specific questions to the question parameter?
In linkedinapply.py and if it's completely new, you will have to update confiq.yaml as well.
Hello mr. Taimur, thank you so much creating such a fantastic weapon for job searcher. In India there is additional questions like annual CTC expected CTC some specific requirement by companies, bot got stuck on that. Please help to get out of it.
Thanks for appreciating. CTC is an easy fix, I am going to test and then update the code in Github expect it in a 2 or 3 days max :). For now, you can simply click on [x] to close stuck application so bot may move on to second job in queue. Furthermore, please do watch my Sep-23 update. In that video, I am demonstrating how to download monitoring dashboard made in PowerBI to monitor and fine-tune bot's performance. I will keep you posted on CTC.
@@taimurSM sure I'll do the same.
@@prabhashsingh1477 I have updated bot and hope it will help in responding questions on CTC (cost-to-company) and on-site. Please replace your local linkedineasyapply.py with the new one from my Github. Keep me posted.
In addition to CTC, I have also added a new filter in config.yaml to allow applying a filter of "jobs with less than 10 applicants". To have a look at new config.yaml (I only added 3 lines), copy paste those in your current config.yaml.
And then, download linkedineasyapply.py and main.py and replace on your PC.
@@taimurSM thanks for update but it is not working. CTC and expected CTC is mandatory question so bot bot stuck on that.
I am not hearing any audio on this video
Check your volume probably because no one else complained. BTW, I did an updated version of the setup, please see that. Sorry for late response.
you are perfect man but this need a package that need to be updated in the installation
I am thinking about making it an installable package so anyone can use it. But for now, you can visit my Github page once in a while (or keep an eye on my RUclips) and manually perform script updates. It isn't too difficult.
I don't know why but none of this kind of bots working on macos :(
That's usually because bots fail to find where MacOS saves temporary working files, for example, chromedriver. Lookup exact error on MacOS user forums and it will work.
@@taimurSM in this case i have some kind of a different of error I suppose:
yaml.parser.ParserError: while parsing a block mapping
in "config.yaml", line 2, column 1
expected , but found ''
in "config.yaml", line 136, column 2
But it make sense since I was having an error with chromedriver with another bot.
Ok, I've solved it. I removed all spaces before "years of experience" parameters and now I have a new error :)
Traceback (most recent call last):
File "/Users/EasyApplyBot/main.py", line 131, in
parameters = validate_yaml()
^^^^^^^^^^^^^^^
File "/Users/EasyApplyBot/main.py", line 114, in validate_yaml
for tech in experience:
TypeError: 'int' object is not iterable
@@kikuru309 Only change structure of config.yaml if you know precisely what you're doing. I would suggest re-downloading config.yaml from GitHub and only change values you need to configure your profile.
@@taimurSM without removing it doesn't work at all. I've tried to run it without editing at all. Same error as in the first message
I need linkdin checker bot
No no it doesnt work
You can delete it and apply manually.
@@taimurSM is it working?
@@dudjcjtue9w91 Don't use it. It will corrupt your disk and create bad sectors on the drive. Delete all files, corrupt ram and overheat the processor. Stay away, the bot hates noobs.
@@taimurSM lol, im trying to install it on vs code
and downloading each requiremtn with npm
but its not working!!!!!!!!!!!!!!!
can you drop your insta please . i need some assistance please...
@@taimurSM help!!!!!!!!!!!!!!!
I hate this bot
Hello,
I couldnt dowload the requriments. I mean I didnt see the download section.
C:\Users\enes\Downloads\demo\EasyApplyBot\venv\Scripts\python.exe C:\Users\enes\Downloads\demo\EasyApplyBot\source\app\main.py
Traceback (most recent call last):
File "C:\Users\enes\Downloads\demo\EasyApplyBot\source\app\main.py", line 1, in
import yaml
ModuleNotFoundError: No module named 'yaml'
Install dependencies. I have demonstrated in detail in the video.
@@taimurSM What do you mean exactly
@@seetesat just watch video properly without skipping. Note the part where I talk about setting the Python environment.
@@seetesat alternatively, you can download Windows executable version from my GitHub. It won't require setting up Python.
@@taimurSM I watched 10 times, but it was working when i do first time. After I try now it is not working
Hello when I try to run the bot it says line 60, in validate.yaml assert validate_email(parameters[’email’]) can u help me please
I thought by deleting hashtags and unessary words in line 59 would help but now it says line 59, invalidate-yaml assert validate_email(parameters[’email’])
Line 59 is where u originally put how to input location data but i deleted it thinking it would help
Line 60 is distance: 100
Validation is talking about your email address, not sure why you would change location?
@@taimurSMmy email address also has what u originally put next to it email in that space your name/domain, but when I delete it, the bot only runs to line 20/21 and the error changes to chrome driver
@@taimurSMi tweeted u my code so u can check it out
@@user-ik3qf3qk9x I would suggest re-downloading the config.yaml only, replace in your not folder and only change options you need to change. Don't delete anything, don't add anything.
@@taimurSMa fixed the problem but I'm on a Chromebook running Linux and for some reason chromedriver cannot find chrome. Do u have any advice?