Skip to content

Commit f63da3e

Browse files
authored
Create main.py
1 parent 9275446 commit f63da3e

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

day49/main.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from selenium import webdriver
2+
from selenium.webdriver.chrome.service import Service
3+
from selenium.webdriver.common.by import By
4+
from selenium.common.exceptions import NoSuchElementException
5+
import os
6+
from dotenv import load_dotenv
7+
import time
8+
9+
load_dotenv(".env")
10+
MY_EMAIL = os.getenv("MY_EMAIL")
11+
MY_PASSWORD = os.getenv("MY_PASSWORD")
12+
MY_PHONE_NUMBER = os.getenv("MY_PHONE_NUMBER")
13+
14+
service = Service("C:\Development\chromedriver.exe")
15+
driver = webdriver.Chrome(service=service)
16+
driver.get("https://www.linkedin.com/jobs/search/?f_AL=true&geoId=101174742&keywords=Analytic%20Recruiting%20Inc&location=Canada")
17+
18+
# Sign-in
19+
driver.find_element(by=By.XPATH, value='/html/body/div[1]/header/nav/div/a[2]').click()
20+
time.sleep(2)
21+
email = driver.find_element(by=By.NAME, value="session_key")
22+
email.send_keys(MY_EMAIL)
23+
password = driver.find_element(by=By.NAME, value="session_password")
24+
password.send_keys(MY_PASSWORD)
25+
driver.find_element(by=By.XPATH, value='//*[@id="organic-div"]/form/div[3]/button').click()
26+
time.sleep(10)
27+
28+
# Scan available jobs
29+
jobs = driver.find_elements(by=By.CLASS_NAME, value='job-card-list__title')
30+
jobs_available = [job.text for job in jobs]
31+
print(jobs_available)
32+
33+
# Select job posting and click on apply
34+
while jobs_available:
35+
posting_num = 0
36+
try:
37+
driver.find_element(by=By.LINK_TEXT, value=f'{jobs_available[posting_num]}').click()
38+
time.sleep(2)
39+
driver.find_element(by=By.CLASS_NAME, value="jobs-s-apply").click()
40+
except NoSuchElementException:
41+
posting_num += 1
42+
driver.find_element(by=By.LINK_TEXT, value=f'{jobs_available[posting_num]}').click()
43+
time.sleep(2)
44+
driver.find_element(by=By.CLASS_NAME, value="jobs-s-apply").click()
45+
finally:
46+
# Complete application
47+
jobs_available.remove(jobs_available[posting_num])
48+
try:
49+
time.sleep(2)
50+
phone_num = driver.find_element(by=By.CLASS_NAME, value='fb-single-line-text__input')
51+
phone_num.clear()
52+
time.sleep(2)
53+
phone_num.send_keys(MY_PHONE_NUMBER)
54+
time.sleep(2)
55+
driver.find_element(by=By.CSS_SELECTOR, value='footer button').click()
56+
time.sleep(2)
57+
driver.find_element(by=By.CSS_SELECTOR, value='[aria-label="Review your application"]').click()
58+
time.sleep(2)
59+
driver.find_element(by=By.CSS_SELECTOR, value='[aria-label="Submit application"]').click()
60+
except NoSuchElementException:
61+
print('Cannot apply, skipped')
62+
print("Work complete")

0 commit comments

Comments
 (0)