├── captchaAudio └── .gitignore ├── constants ├── urls.py ├── fileNames.py ├── classNames.py ├── __pycache__ │ ├── urls.cpython-310.pyc │ ├── common.cpython-310.pyc │ ├── email.cpython-310.pyc │ ├── functs.cpython-310.pyc │ ├── parser.cpython-310.pyc │ ├── xPaths.cpython-310.pyc │ ├── areaCodes.cpython-310.pyc │ ├── fileNames.cpython-310.pyc │ ├── location.cpython-310.pyc │ ├── classNames.cpython-310.pyc │ └── elementIds.cpython-310.pyc ├── common.py ├── parser.py ├── elementIds.py ├── location.py ├── state_abbrev.py ├── email.py ├── functs.py ├── xPaths.py └── areaCodes.py ├── .gitignore ├── requirements.txt ├── main.bat ├── README.md ├── apps ├── shiftsuper.py ├── remoteapp.py ├── baristaapp.py └── partnerapp.py ├── main.py ├── oof.html ├── LICENSE └── resume_faker.py /captchaAudio/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | */ 3 | !.gitignore -------------------------------------------------------------------------------- /constants/urls.py: -------------------------------------------------------------------------------- 1 | RESUME_PATH = '/src/resume.png' 2 | -------------------------------------------------------------------------------- /constants/fileNames.py: -------------------------------------------------------------------------------- 1 | CAPTCHA_MP3_FILENAME = 'captchaAudio/1.mp3' 2 | CAPTCHA_WAV_FILENAME = 'captchaAudio/2.wav' 3 | -------------------------------------------------------------------------------- /constants/classNames.py: -------------------------------------------------------------------------------- 1 | CAPTCHA_BOX = 'recapBorderAccessible' 2 | AUDIO_ERROR_MESSAGE = 'rc-audiochallenge-error-message' 3 | -------------------------------------------------------------------------------- /constants/__pycache__/urls.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/urls.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/common.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/common.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/email.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/email.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/functs.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/functs.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/parser.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/parser.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/xPaths.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/xPaths.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/areaCodes.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/areaCodes.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/fileNames.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/fileNames.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/location.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/location.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/classNames.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/classNames.cpython-310.pyc -------------------------------------------------------------------------------- /constants/__pycache__/elementIds.cpython-310.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SeanDaBlack/ChangeisBrewing/HEAD/constants/__pycache__/elementIds.cpython-310.pyc -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.pyo 3 | .DS_Store 4 | .Rhistory 5 | chromedriver 6 | chromedriver/ 7 | .DS_Store 8 | chromedriver 9 | chromedriver.* 10 | __pycache__/ 11 | captcha_audio.* 12 | *-Resume.* 13 | .vscode/ 14 | *.pdf 15 | *.png 16 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2021.5.30 2 | charset-normalizer==2.0.4 3 | idna==3.2 4 | selenium==3.141.0 5 | Faker==9.9.1 6 | webdriver-manager==3.5.2 7 | fpdf==1.7.2 8 | SpeechRecognition==3.8.1 9 | pydub==0.25.1 10 | random-password-generator==2.2.0 11 | # folium==0.2.1 12 | barnum==0.5.1 13 | uszipcode==1.0.1 -------------------------------------------------------------------------------- /constants/common.py: -------------------------------------------------------------------------------- 1 | YES = 'Yes' 2 | NO = 'No' 3 | 4 | COUNTRY = 'United States' 5 | STATE = 'Tennessee' 6 | CITY = 'Memphis' 7 | 8 | GENDERS_LIST = ['Male', 'Female', 'Other'] 9 | 10 | USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36" 11 | -------------------------------------------------------------------------------- /constants/parser.py: -------------------------------------------------------------------------------- 1 | CLOUD_DESCRIPTION='Puts script in a \'cloud\' mode where the Chrome GUI is invisible' 2 | CLOUD_DISABLED = False 3 | CLOUD_ENABLED = True 4 | EPILOG = 'Kellogg bad | Union good | Support strike funds ' 5 | SCRIPT_DESCRIPTION='A script to automate very legitimate applications to kellogg\'s production plants affected by union strikes' -------------------------------------------------------------------------------- /main.bat: -------------------------------------------------------------------------------- 1 | 2 | :: Check for Python Installation 3 | python --version 2>NUL 4 | if errorlevel 1 goto errorNoPython 5 | 6 | cmd /c "pip install -r requirements.txt" 7 | 8 | cmd /c "main.py" 9 | 10 | 11 | :errorNoPython 12 | echo. 13 | cmd /c "python-3.9.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0" 14 | 15 | cmd /c "pip install -r requirements.txt" 16 | 17 | cmd /c "main.py" -------------------------------------------------------------------------------- /constants/elementIds.py: -------------------------------------------------------------------------------- 1 | 2 | REGION_COUNTRY = 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-0' 3 | REGION_STATE = 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-1' 4 | REGION_CITY = 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-2' 5 | 6 | EMPLOY_HISTORY = 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_UDFCandidatePersonalInfo_Prev_Employ' 7 | 8 | WILLING_WORK_HOURS = 'et-ef-content-ftf-gp-j_id_id16pc9-page_1-careerSectionMultipleCustomForm-cfrm-cfrmsub-frm-dv_cs_workcondition_HoursPerWeekWilling' 9 | PREF_HOURS = 'et-ef-content-ftf-gp-j_id_id16pc9-page_1-careerSectionMultipleCustomForm-cfrm-cfrmsub-frm-dv_cs_workcondition_HoursPerWeekPreferred' 10 | 11 | 12 | COUNTRY_REGION_CODE_LABEL = 'fbclc_ituCode' 13 | 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # StarBusting Bot 2 | Credit to SeanDaBlack for the basis of the script. 3 | 4 | main.py is selenium python bot. 5 | 6 | # Setup 7 | 8 | On mac/pc: 9 | 10 | `pip install -r requirements.txt` 11 | 12 | This will install `webdriver-manager` to automatically download the correct chrome driver. If you are having issues opening having it open chrome, check https://github.com/SergeyPirogov/webdriver_manager. 13 | 14 | It needs to be found in your `PATH` variable. 15 | 16 | `export PATH=$PATH:$(pwd)` 17 | 18 | `python main.py` to run. It will loop until you kill the job. `ctrl + c` in your terminal to give the pro lifes a break (optional). 19 | 20 | mac: 21 | 22 | You might also get a trust issue with the downloaded driver being unverified. To fix that, run 23 | 24 | `xattr -d com.apple.quarantine chromedriver` 25 | 26 | this just tells the OS it's safe to use this driver, and Selenium will start working. See https://timonweb.com/misc/fixing-error-chromedriver-cannot-be-opened-because-the-developer-cannot-be-verified-unable-to-launch-the-chrome-browser-on-mac-os/ for more info. 27 | 28 | You will also need to install ffmpeg if it is not already installed: [Mac installation guide](https://superuser.com/a/624562) [Windows installation guide](https://www.wikihow.com/Install-FFmpeg-on-Windows) 29 | 30 | 31 | # StarBusting Bot 32 | -------------------------------------------------------------------------------- /constants/location.py: -------------------------------------------------------------------------------- 1 | import random 2 | import barnum 3 | from constants.state_abbrev import * 4 | from uszipcode import SearchEngine 5 | 6 | # city = random.choice(list(cap_to_state.keys())) 7 | # engine = SearchEngine() 8 | # zipcodes = engine.by_city(city=city) 9 | 10 | 11 | CITIES_TO_STATES = { 12 | 'Memphis': 'Tennessee', 13 | 'Elmira': 'New York', 14 | 'Seattle': 'Washington', 15 | 'Ithaca': 'New York', 16 | 'Anchorage': 'Alaska', 17 | 'Bakersfield': 'California', 18 | 'Raleigh': 'North Carolina', 19 | # city: cap_to_state[city], 20 | 21 | } 22 | 23 | CITIES_TO_ZIP_CODES = { 24 | 'Bakersfield': ['93308'], 25 | 'Raleigh': ['27601'], 26 | 'Elmira': ['14901', '14902', '14904', '14905'], 27 | 'Seattle': ['98101', '98102', '98103', '98114', '98117', '98122'], 28 | 'Ithaca': ['14850', '14851', '14852'], 29 | 'Philadelphia': ['19019', '19050', '19082', '19092', '19108', '19109'], 30 | 'Anchorage': ['99501', '19050', '19082', '19092', '19108', '19109'], 31 | #city : list(engine.by_city(city=city)) 32 | 33 | 34 | } 35 | 36 | CITIES_TO_URLS = { 37 | 'Bakersfield': ['https://starbucks.taleo.net/careersection/1000222retail/jobdetail.ftl?job=220049835&lang=en&src=JB-12106'], 38 | # 'Raleigh': ['https://starbucks.taleo.net/careersection/1000222retail/jobdetail.ftl?job=220049835&lang=en&src=JB-12106'], 39 | # 'Seattle' : ['https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220003195&lang=en#.YhUW6k9wwFc.link'], 40 | # 'Elmira' : ['https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220008435&lang=en', 41 | # 'https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220011416&lang=en', 42 | # 'https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220002690&lang=en'], 43 | 44 | # 'Ithaca' : ['https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220020074&lang=en', 45 | # 'https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220011417&lang=en#.Yljvvb2yhJY.link', 46 | # 'https://starbucks.taleo.net/careersection/jobdetail.ftl?job=220016345&lang=en#.YljvvdL4v7Q.link'], 47 | #city : ['https://starbucks.taleo.net/careersection/1000222/jobdetail.ftl?job=220018256&iniurl.src=CWS-11700&tz=GMT-04%3A00&tzname=America%2FNew_York'] 48 | 49 | 50 | } 51 | 52 | 53 | COUNTRY_CODE_US = 'US' 54 | FULL_NAME_US = 'United States' 55 | -------------------------------------------------------------------------------- /constants/state_abbrev.py: -------------------------------------------------------------------------------- 1 | us_state_to_abbrev = { 2 | "Alabama": "AL", 3 | "Alaska": "AK", 4 | "Arizona": "AZ", 5 | "Arkansas": "AR", 6 | "California": "CA", 7 | "Colorado": "CO", 8 | "Connecticut": "CT", 9 | "Delaware": "DE", 10 | "Florida": "FL", 11 | "Georgia": "GA", 12 | "Hawaii": "HI", 13 | "Idaho": "ID", 14 | "Illinois": "IL", 15 | "Indiana": "IN", 16 | "Iowa": "IA", 17 | "Kansas": "KS", 18 | "Kentucky": "KY", 19 | "Louisiana": "LA", 20 | "Maine": "ME", 21 | "Maryland": "MD", 22 | "Massachusetts": "MA", 23 | "Michigan": "MI", 24 | "Minnesota": "MN", 25 | "Mississippi": "MS", 26 | "Missouri": "MO", 27 | "Montana": "MT", 28 | "Nebraska": "NE", 29 | "Nevada": "NV", 30 | "New Hampshire": "NH", 31 | "New Jersey": "NJ", 32 | "New Mexico": "NM", 33 | "New York": "NY", 34 | "North Carolina": "NC", 35 | "North Dakota": "ND", 36 | "Ohio": "OH", 37 | "Oklahoma": "OK", 38 | "Oregon": "OR", 39 | "Pennsylvania": "PA", 40 | "Rhode Island": "RI", 41 | "South Carolina": "SC", 42 | "South Dakota": "SD", 43 | "Tennessee": "TN", 44 | "Texas": "TX", 45 | "Utah": "UT", 46 | "Vermont": "VT", 47 | "Virginia": "VA", 48 | "Washington": "WA", 49 | "West Virginia": "WV", 50 | "Wisconsin": "WI", 51 | "Wyoming": "WY", 52 | "District of Columbia": "DC", 53 | "American Samoa": "AS", 54 | "Guam": "GU", 55 | "Northern Mariana Islands": "MP", 56 | "Puerto Rico": "PR", 57 | "United States Minor Outlying Islands": "UM", 58 | "U.S. Virgin Islands": "VI", 59 | } 60 | 61 | capital_dic={ 62 | 'Alabama': 'Montgomery', 63 | 'Alaska': 'Juneau', 64 | 'Arizona':'Phoenix', 65 | 'Arkansas':'Little Rock', 66 | 'California': 'Sacramento', 67 | 'Colorado':'Denver', 68 | 'Connecticut':'Hartford', 69 | 'Delaware':'Dover', 70 | 'Florida': 'Tallahassee', 71 | 'Georgia': 'Atlanta', 72 | 'Hawaii': 'Honolulu', 73 | 'Idaho': 'Boise', 74 | 'Illinios': 'Springfield', 75 | 'Indiana': 'Indianapolis', 76 | 'Iowa': 'Des Monies', 77 | 'Kansas': 'Topeka', 78 | 'Kentucky': 'Frankfort', 79 | 'Louisiana': 'Baton Rouge', 80 | 'Maine': 'Augusta', 81 | 'Maryland': 'Annapolis', 82 | 'Massachusetts': 'Boston', 83 | 'Michigan': 'Lansing', 84 | 'Minnesota': 'St. Paul', 85 | 'Mississippi': 'Jackson', 86 | 'Missouri': 'Jefferson City', 87 | 'Montana': 'Helena', 88 | 'Nebraska': 'Lincoln', 89 | 'Neveda': 'Carson City', 90 | 'New Hampshire': 'Concord', 91 | 'New Jersey': 'Trenton', 92 | 'New Mexico': 'Santa Fe', 93 | 'New York': 'Albany', 94 | 'North Carolina': 'Raleigh', 95 | 'North Dakota': 'Bismarck', 96 | 'Ohio': 'Columbus', 97 | 'Oklahoma': 'Oklahoma City', 98 | 'Oregon': 'Salem', 99 | 'Pennsylvania': 'Harrisburg', 100 | 'Rhoda Island': 'Providence', 101 | 'South Carolina': 'Columbia', 102 | 'South Dakota': 'Pierre', 103 | 'Tennessee': 'Nashville', 104 | 'Texas': 'Austin', 105 | 'Utah': 'Salt Lake City', 106 | 'Vermont': 'Montpelier', 107 | 'Virginia': 'Richmond', 108 | 'Washington': 'Olympia', 109 | 'West Virginia': 'Charleston', 110 | 'Wisconsin': 'Madison', 111 | 'Wyoming': 'Cheyenne' 112 | } 113 | 114 | 115 | 116 | # invert the dictionary 117 | abbrev_to_us_state = dict(map(reversed, us_state_to_abbrev.items())) 118 | 119 | cap_to_state = dict(map(reversed, capital_dic.items())) -------------------------------------------------------------------------------- /apps/shiftsuper.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from constants.xPaths import * 3 | from constants.urls import * 4 | from constants.parser import * 5 | from constants.location import * 6 | from constants.email import * 7 | from constants.elementIds import * 8 | from constants.classNames import * 9 | from constants.fileNames import * 10 | from constants.common import * 11 | from constants.functs import * 12 | from apps.baristaapp import * 13 | from apps.partnerapp import * 14 | import requests 15 | import functools 16 | import os 17 | import subprocess 18 | import random 19 | import sys 20 | import time 21 | import string 22 | from selenium.webdriver.chrome import options 23 | 24 | import speech_recognition as sr 25 | from faker import Faker 26 | from selenium import webdriver 27 | from selenium.webdriver.chrome.options import Options 28 | from selenium.webdriver.support import expected_conditions 29 | from selenium.webdriver.support.ui import Select, WebDriverWait 30 | from selenium.webdriver.common.by import By 31 | from selenium.webdriver.common.keys import Keys 32 | from selenium.common.exceptions import TimeoutException 33 | from constants.areaCodes import AREA_CODES 34 | 35 | from resume_faker import make_resume 36 | from password_generator import PasswordGenerator 37 | 38 | 39 | from webdriver_manager.chrome import ChromeDriverManager 40 | 41 | 42 | fake = Faker() 43 | 44 | 45 | def shift_super_app(driver, random_city, fake_identity): 46 | 47 | print('Filling Applicaion for ' + random_city) 48 | application_part_1(driver, random_city, fake_identity) 49 | driver.find_element_by_xpath(CONTINUE).click() 50 | #time.sleep(1) 51 | application_part_2(driver, random_city, fake_identity, 52 | UPLOAD_A_RESUME_BUTTON, ATTACH_RESUME) 53 | driver.find_element_by_xpath(CONTINUE2).click() 54 | #time.sleep(1) 55 | application_part_3(driver, random_city, fake_identity) 56 | driver.find_element_by_xpath(SUPER_QUAL).click() 57 | #time.sleep(1) 58 | driver.find_element_by_xpath(CONTINUE).click() 59 | application_part_4(driver, random_city, fake_identity) 60 | #time.sleep(1) 61 | driver.find_element_by_xpath(CONTINUE).click() 62 | application_part_5(driver, random_city, fake_identity) 63 | #time.sleep(1) 64 | driver.find_element_by_xpath(CONTINUE).click() 65 | #time.sleep(1) 66 | driver.find_element_by_xpath(QUEST).click() 67 | #time.sleep(2) 68 | 69 | 70 | try: 71 | element_present = expected_conditions.presence_of_element_located( 72 | (By.ID, 'SurveyControl_SurveySubmit')) 73 | WebDriverWait(driver, 10).until(element_present) 74 | except TimeoutException: 75 | print("Timed out waiting for page to load") 76 | 77 | application_part_6(driver, random_city, fake_identity) 78 | driver.find_element_by_xpath(QUEST_SUBMIT).click() 79 | 80 | partner_application_part_6(driver, random_city, fake_identity) 81 | driver.find_element_by_xpath( 82 | '//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]').click() 83 | 84 | try: 85 | element_present = expected_conditions.presence_of_element_located( 86 | (By.ID, 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-eSignatureBlock-cfrmsub-frm-dv_cs_esignature_FullName')) 87 | WebDriverWait(driver, 10).until(element_present) 88 | except TimeoutException: 89 | print("Timed out waiting for page to load") 90 | 91 | driver.find_element_by_xpath(FULL_NAME).send_keys( 92 | fake_identity['first_name'] + " " + fake_identity['last_name']) 93 | 94 | driver.find_element_by_xpath(CONTINUE).click() 95 | #time.sleep(1) 96 | driver.find_element_by_xpath(SUBMIT_APP).click() 97 | #time.sleep(2) -------------------------------------------------------------------------------- /apps/remoteapp.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from constants.xPaths import * 3 | from constants.urls import * 4 | from constants.parser import * 5 | from constants.location import * 6 | from constants.email import * 7 | from constants.elementIds import * 8 | from constants.classNames import * 9 | from constants.fileNames import * 10 | from constants.common import * 11 | from constants.functs import * 12 | from apps.baristaapp import * 13 | from apps.partnerapp import * 14 | import requests 15 | import functools 16 | import os 17 | import subprocess 18 | import random 19 | import sys 20 | import time 21 | import string 22 | from selenium.webdriver.chrome import options 23 | 24 | import speech_recognition as sr 25 | from faker import Faker 26 | from selenium import webdriver 27 | from selenium.webdriver.chrome.options import Options 28 | from selenium.webdriver.support import expected_conditions 29 | from selenium.webdriver.support.ui import Select, WebDriverWait 30 | from selenium.webdriver.common.by import By 31 | from selenium.webdriver.common.keys import Keys 32 | from selenium.common.exceptions import TimeoutException 33 | from constants.areaCodes import AREA_CODES 34 | 35 | from resume_faker import make_resume 36 | from password_generator import PasswordGenerator 37 | from uszipcode import SearchEngine 38 | 39 | from webdriver_manager.chrome import ChromeDriverManager 40 | 41 | engine = SearchEngine() 42 | fake = Faker() 43 | 44 | 45 | def remote_app(driver, random_city, fake_identity): 46 | 47 | print('Filling Applicaion for ' + random_city) 48 | #time.sleep(10000) 49 | # application_part_1(driver, random_city, fake_identity) 50 | driver.find_element_by_xpath(RESUME_UPLOAD_PARTNER).click() 51 | # #time.sleep(1) 52 | remote_application_part_2(driver, random_city, fake_identity, 53 | ATTACH_RESUME_PARTNER, RESUME_UPLOAD_PARTNER) 54 | 55 | time.sleep(1) 56 | 57 | 58 | 59 | 60 | remote_application_part_1(driver, random_city, fake_identity) 61 | driver.find_element_by_xpath(CONTINUE).click() 62 | 63 | 64 | 65 | def remote_application_part_1(driver, random_city, fake_identity): 66 | info = '' 67 | for key in XPATHS_2.keys(): 68 | 69 | if (key is'first_name'): 70 | #info = fake_identity['first_name'] 71 | pass 72 | elif (key is'perfered_first_name'): 73 | info = fake_identity['first_name'] 74 | elif (key is'last_name'): 75 | info = '' 76 | #info = fake_identity['last_name'] 77 | pass 78 | elif( key is'zip'): 79 | info = random.choice(list(engine.by_city(city=random_city))).zipcode 80 | elif (key is'pn'): 81 | info = random_phone(format=3) 82 | 83 | 84 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 85 | 86 | 87 | driver.find_element_by_xpath(CONTINUE).click() 88 | 89 | driver.find_element_by_xpath('et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_OtherInstitutionCity').send_keys(random_city) 90 | 91 | select = Select(driver.find_element_by_id(XPATHS_3.get('sb_experience'))) 92 | select.select_by_visible_text(NO) 93 | 94 | select = Select(driver.find_element_by_id('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_UDFEducation_Education_32_Status"]')) 95 | select.select_by_value('com.taleo.functionalcomponent.talent.entity.common.selection.UDSElement__11080__3') 96 | 97 | time.sleep(2) 98 | driver.find_element_by_xpath(CONTINUE).click() 99 | def remote_application_part_2(driver, random_city, fake_identity, xp1, xp2): 100 | 101 | # make resume 102 | info = '' 103 | resume_filename = fake_identity['last_name']+'-Resume' 104 | make_resume(fake_identity['first_name']+' '+fake_identity['last_name'], 105 | fake_identity['email'], resume_filename+'.pdf') 106 | 107 | # Send Resume 108 | info = os.getcwd() + '/'+resume_filename+'.pdf' 109 | driver.find_element_by_xpath(xp1).send_keys(info) 110 | 111 | #driver.find_element_by_xpath(xp2).click() 112 | 113 | printf(f"Successfully filled out app forms for {random_city}") 114 | try: 115 | driver.find_element_by_xpath(CONTINUE2).click() 116 | except: 117 | pass 118 | # take out the trash 119 | os.remove(resume_filename+'.pdf') -------------------------------------------------------------------------------- /constants/email.py: -------------------------------------------------------------------------------- 1 | EMAIL_DATA = [['0', 'gmail.com', '17.74'], 2 | ['2', 'yahoo.com', '17.34'], 3 | ['3', 'hotmail.com', '15.53'], 4 | ['4', 'aol.com', '3.2'], 5 | ['5', 'hotmail.co.uk', '1.27'], 6 | ['6', 'hotmail.fr', '1.24'], 7 | ['7', 'msn.com', '1.09'], 8 | ['8', 'yahoo.fr', '0.98'], 9 | ['9', 'wanadoo.fr', '0.9'], 10 | ['10', 'orange.fr', '0.83'], 11 | ['11', 'comcast.net', '0.76'], 12 | ['12', 'yahoo.co.uk', '0.73'], 13 | ['13', 'yahoo.com.br', '0.69'], 14 | ['14', 'yahoo.co.in', '0.6'], 15 | ['15', 'live.com', '0.56'], 16 | ['16', 'rediffmail.com', '0.51'], 17 | ['17', 'free.fr', '0.51'], 18 | ['18', 'gmx.de', '0.44'], 19 | ['19', 'web.de', '0.43'], 20 | ['20', 'yandex.ru', '0.42'], 21 | ['21', 'ymail.com', '0.41'], 22 | ['22', 'libero.it', '0.38'], 23 | ['23', 'outlook.com', '0.38'], 24 | ['24', 'uol.com.br', '0.34'], 25 | ['25', 'bol.com.br', '0.33'], 26 | ['26', 'mail.ru', '0.32'], 27 | ['27', 'cox.net', '0.25'], 28 | ['28', 'hotmail.it', '0.25'], 29 | ['29', 'sbcglobal.net', '0.24'], 30 | ['30', 'sfr.fr', '0.23'], 31 | ['31', 'live.fr', '0.23'], 32 | ['32', 'verizon.net', '0.22'], 33 | ['33', 'live.co.uk', '0.21'], 34 | ['34', 'googlemail.com', '0.2'], 35 | ['35', 'yahoo.es', '0.2'], 36 | ['36', 'ig.com.br', '0.19'], 37 | ['37', 'live.nl', '0.19'], 38 | ['38', 'bigpond.com', '0.18'], 39 | ['39', 'terra.com.br', '0.17'], 40 | ['40', 'yahoo.it', '0.17'], 41 | ['41', 'neuf.fr', '0.17'], 42 | ['42', 'yahoo.de', '0.16'], 43 | ['43', 'alice.it', '0.16'], 44 | ['44', 'rocketmail.com', '0.15'], 45 | ['45', 'att.net', '0.15'], 46 | ['46', 'laposte.net', '0.15'], 47 | ['47', 'facebook.com', '0.15'], 48 | ['48', 'bellsouth.net', '0.15'], 49 | ['49', 'yahoo.in', '0.14'], 50 | ['50', 'hotmail.es', '0.13'], 51 | ['51', 'charter.net', '0.12'], 52 | ['52', 'yahoo.ca', '0.12'], 53 | ['53', 'yahoo.com.au', '0.12'], 54 | ['54', 'rambler.ru', '0.12'], 55 | ['55', 'hotmail.de', '0.11'], 56 | ['56', 'tiscali.it', '0.1'], 57 | ['57', 'shaw.ca', '0.1'], 58 | ['58', 'yahoo.co.jp', '0.1'], 59 | ['59', 'sky.com', '0.1'], 60 | ['60', 'earthlink.net', '0.09'], 61 | ['61', 'optonline.net', '0.09'], 62 | ['62', 'freenet.de', '0.09'], 63 | ['63', 't-online.de', '0.09'], 64 | ['64', 'aliceadsl.fr', '0.08'], 65 | ['65', 'virgilio.it', '0.08'], 66 | ['66', 'home.nl', '0.07'], 67 | ['67', 'qq.com', '0.07'], 68 | ['68', 'telenet.be', '0.07'], 69 | ['69', 'me.com', '0.07'], 70 | ['70', 'yahoo.com.ar', '0.07'], 71 | ['71', 'tiscali.co.uk', '0.07'], 72 | ['72', 'yahoo.com.mx', '0.07'], 73 | ['73', 'voila.fr', '0.06'], 74 | ['74', 'gmx.net', '0.06'], 75 | ['75', 'mail.com', '0.06'], 76 | ['76', 'planet.nl', '0.06'], 77 | ['77', 'tin.it', '0.06'], 78 | ['78', 'live.it', '0.06'], 79 | ['79', 'ntlworld.com', '0.06'], 80 | ['80', 'arcor.de', '0.06'], 81 | ['81', 'yahoo.co.id', '0.06'], 82 | ['82', 'frontiernet.net', '0.06'], 83 | ['83', 'hetnet.nl', '0.05'], 84 | ['84', 'live.com.au', '0.05'], 85 | ['85', 'yahoo.com.sg', '0.05'], 86 | ['86', 'zonnet.nl', '0.05'], 87 | ['87', 'club-internet.fr', '0.05'], 88 | ['88', 'juno.com', '0.05'], 89 | ['89', 'optusnet.com.au', '0.05'], 90 | ['90', 'blueyonder.co.uk', '0.05'], 91 | ['91', 'bluewin.ch', '0.05'], 92 | ['92', 'skynet.be', '0.05'], 93 | ['93', 'sympatico.ca', '0.05'], 94 | ['94', 'windstream.net', '0.05'], 95 | ['95', 'mac.com', '0.05'], 96 | ['96', 'centurytel.net', '0.05'], 97 | ['97', 'chello.nl', '0.04'], 98 | ['98', 'live.ca', '0.04'], 99 | ['99', 'aim.com', '0.04'], 100 | ['100', 'bigpond.net.au', '0.04']] 101 | 102 | MAIL_GENERATION_WEIGHTS = [1, 0.9, 0.95, 0.8, 0.7, 0.75, 0.7, 0.7, 0.6, 0.5] 103 | -------------------------------------------------------------------------------- /apps/baristaapp.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from unittest.mock import mock_open 3 | from constants.xPaths import * 4 | from constants.urls import * 5 | from constants.parser import * 6 | from constants.location import * 7 | from constants.email import * 8 | from constants.elementIds import * 9 | from constants.classNames import * 10 | from constants.fileNames import * 11 | from constants.common import * 12 | from constants.functs import * 13 | import requests 14 | import functools 15 | import os 16 | import subprocess 17 | import random 18 | import sys 19 | import time 20 | import string 21 | from selenium.webdriver.chrome import options 22 | 23 | import speech_recognition as sr 24 | from faker import Faker 25 | from selenium import webdriver 26 | from selenium.webdriver.chrome.options import Options 27 | from selenium.webdriver.support import expected_conditions 28 | from selenium.webdriver.support.ui import Select, WebDriverWait 29 | from selenium.webdriver.common.by import By 30 | from selenium.webdriver.common.keys import Keys 31 | from selenium.common.exceptions import TimeoutException 32 | from constants.areaCodes import AREA_CODES 33 | 34 | from resume_faker import make_resume 35 | from password_generator import PasswordGenerator 36 | 37 | 38 | from webdriver_manager.chrome import ChromeDriverManager 39 | 40 | 41 | fake = Faker() 42 | 43 | 44 | def application_part_1(driver, random_city, fake_identity): 45 | for key in XPATHS_2.keys(): 46 | 47 | if (key is 'first_name'): 48 | info = fake_identity['first_name'] 49 | elif (key is 'perfered_first_name'): 50 | info = fake_identity['first_name'] 51 | elif (key is 'last_name'): 52 | info = fake_identity['last_name'] 53 | elif(key is 'zip'): 54 | info = random.choice(CITIES_TO_ZIP_CODES[random_city]) 55 | 56 | if (info == 99501): 57 | print("Anchorage / AlASKA") 58 | elif (info == 98101): 59 | print("Seattle ") 60 | elif (key is 'pn'): 61 | info = random_phone(format=3) 62 | elif (key is 'work_experience_employer'): 63 | info = fake.company() 64 | elif (key is 'work_experinece_title'): 65 | info = fake.job() 66 | 67 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 68 | 69 | # SELECT THE PLACE OF RESIDENCE 70 | select = Select(driver.find_element_by_id(REGION_COUNTRY)) 71 | select.select_by_visible_text(COUNTRY) 72 | select = Select(driver.find_element_by_id(REGION_STATE)) 73 | select.select_by_visible_text(CITIES_TO_STATES[random_city]) 74 | select = Select(driver.find_element_by_id(REGION_CITY)) 75 | select.select_by_visible_text(random_city) 76 | 77 | # SELECT EMPLOY HISTORY 78 | select = Select(driver.find_element_by_id(EMPLOY_HISTORY)) 79 | select.select_by_visible_text(NO) 80 | 81 | # SELECT AVALIABLILITY 82 | select = Select(driver.find_element_by_id(WILLING_WORK_HOURS)) 83 | select.select_by_value(str(random.randint(1, 5))) 84 | select = Select(driver.find_element_by_id(PREF_HOURS)) 85 | select.select_by_value(str(random.randint(1, 5))) 86 | 87 | driver.find_element_by_xpath(XPATH_AVAL['hours_holi']).click() 88 | driver.find_element_by_xpath(XPATH_AVAL['hours_times']).click() 89 | driver.find_element_by_xpath(XPATH_AVAL['current_job']).click() 90 | 91 | 92 | def application_part_2(driver, random_city, fake_identity, xp1, xp2): 93 | 94 | # make resume 95 | info = '' 96 | resume_filename = fake_identity['last_name']+'-Resume' 97 | make_resume(fake_identity['first_name']+' '+fake_identity['last_name'], 98 | fake_identity['email'], resume_filename+'.pdf') 99 | 100 | # Send Resume 101 | info = os.getcwd() + '/'+resume_filename+'.pdf' 102 | driver.find_element_by_xpath(xp1).send_keys(info) 103 | 104 | driver.find_element_by_xpath(xp2).click() 105 | 106 | printf(f"Successfully filled out app forms for {random_city}") 107 | 108 | # take out the trash 109 | os.remove(resume_filename+'.pdf') 110 | 111 | 112 | def application_part_3(driver, random_city, fake_identity): 113 | for key in XPATH_QUALS.keys(): 114 | 115 | driver.find_element_by_xpath(XPATH_QUALS.get(key)).click() 116 | 117 | 118 | def application_part_4(driver, random_city, fake_identity): 119 | for key in XPATH_EEO.keys(): 120 | driver.find_element_by_xpath(XPATH_EEO.get(key)).click() 121 | 122 | driver.find_element_by_xpath(random.choice(XPATH_RACES)).click() 123 | 124 | 125 | def application_part_5(driver, random_city, fake_identity): 126 | for key in XPATH_VOL.keys(): 127 | if key in ('VOL_NAME'): 128 | driver.find_element_by_xpath(XPATH_VOL.get(key)).send_keys( 129 | fake_identity['first_name'] + " " + fake_identity['last_name']) 130 | elif key in ('VOL_DATE'): 131 | driver.find_element_by_xpath(XPATH_VOL.get( 132 | key)).send_keys(today.strftime("%m/%d/%y")) 133 | elif key in ('VOL_no'): 134 | driver.find_element_by_xpath(XPATH_VOL.get(key)).click() 135 | 136 | 137 | def application_part_6(driver, random_city, fake_identity): 138 | for key in XPATH_QUEST.keys(): 139 | driver.find_element_by_xpath(XPATH_QUEST.get(key)).click() 140 | -------------------------------------------------------------------------------- /constants/functs.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from constants.xPaths import * 3 | from constants.urls import * 4 | from constants.parser import * 5 | from constants.location import * 6 | from constants.email import * 7 | from constants.elementIds import * 8 | from constants.classNames import * 9 | from constants.fileNames import * 10 | from constants.common import * 11 | from constants.functs import * 12 | import requests 13 | import functools 14 | import os 15 | import subprocess 16 | import random 17 | import sys 18 | import time 19 | import string 20 | from selenium.webdriver.chrome import options 21 | 22 | import speech_recognition as sr 23 | from faker import Faker 24 | from selenium import webdriver 25 | from selenium.webdriver.chrome.options import Options 26 | from selenium.webdriver.support import expected_conditions 27 | from selenium.webdriver.support.ui import Select, WebDriverWait 28 | from selenium.webdriver.common.by import By 29 | from selenium.webdriver.common.keys import Keys 30 | from selenium.common.exceptions import TimeoutException 31 | from constants.areaCodes import AREA_CODES 32 | 33 | from resume_faker import make_resume 34 | from password_generator import PasswordGenerator 35 | 36 | 37 | from webdriver_manager.chrome import ChromeDriverManager 38 | os.environ['WDM_LOG_LEVEL'] = '0' 39 | 40 | 41 | today = date.today() 42 | 43 | # Adds /usr/local/bin to my path which is where my ffmpeg is stored 44 | os.environ["PATH"] += ":/usr/local/bin" 45 | 46 | fake = Faker() 47 | 48 | # Add printf: print with flush by default. This is for python 2 support. 49 | # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function-unbuffer-python-output#:~:text=Changing%20the%20default%20in%20one%20module%20to%20flush%3DTrue 50 | printf = functools.partial(print, flush=True) 51 | 52 | r = sr.Recognizer() 53 | 54 | 55 | def audioToText(mp3Path): 56 | # deletes old file 57 | try: 58 | os.remove(CAPTCHA_WAV_FILENAME) 59 | except FileNotFoundError: 60 | pass 61 | # convert wav to mp3 62 | subprocess.run( 63 | f"ffmpeg -i {mp3Path} {CAPTCHA_WAV_FILENAME}", shell=True, timeout=5) 64 | 65 | with sr.AudioFile(CAPTCHA_WAV_FILENAME) as source: 66 | audio_text = r.listen(source) 67 | try: 68 | text = r.recognize_google(audio_text) 69 | printf('Converting audio transcripts into text ...') 70 | return(text) 71 | except Exception as e: 72 | printf(e) 73 | printf('Sorry.. run again...') 74 | 75 | 76 | def random_phone(format=None): 77 | area_code = str(random.choice(AREA_CODES)) 78 | middle_three = str(random.randint(0, 999)).rjust(3, '0') 79 | last_four = str(random.randint(0, 9999)).rjust(4, '0') 80 | 81 | if format is None: 82 | format = random.randint(0, 4) 83 | 84 | if format == 0: 85 | return area_code+middle_three+last_four 86 | elif format == 1: 87 | return area_code+' '+middle_three+' '+last_four 88 | elif format == 2: 89 | return area_code+'.'+middle_three+'.'+last_four 90 | elif format == 3: 91 | return area_code+'-'+middle_three+'-'+last_four 92 | elif format == 4: 93 | return '('+area_code+') '+middle_three+'-'+last_four 94 | 95 | 96 | def gen_password(): 97 | let = list(string.ascii_letters) 98 | num = list(string.digits) 99 | characters = list(string.ascii_letters + string.digits + "!@#$%&") 100 | 101 | length = random.randint(6, 30) 102 | 103 | password = [] 104 | for i in range(length): 105 | x = random.choice(characters) 106 | if x not in password: 107 | password.append(x) 108 | else: 109 | i = i-1 110 | 111 | x = random.choice(let) 112 | if not x in password: 113 | x.capitalize() 114 | password.append(x) 115 | 116 | x = random.choice(num) 117 | if x not in password: 118 | password.append(x) 119 | 120 | random.shuffle(password) 121 | return "".join(password) 122 | 123 | 124 | def saveFile(content, filename): 125 | with open(filename, "wb") as handle: 126 | for data in content.iter_content(): 127 | handle.write(data) 128 | # END TEST 129 | 130 | 131 | def solveCaptcha(driver): 132 | # Logic to click through the reCaptcha to the Audio Challenge, download the challenge mp3 file, run it through the audioToText function, and send answer 133 | googleClass = driver.find_elements_by_class_name(CAPTCHA_BOX)[0] 134 | time.sleep(2) 135 | outeriframe = googleClass.find_element_by_tag_name('iframe') 136 | time.sleep(1) 137 | outeriframe.click() 138 | time.sleep(2) 139 | allIframesLen = driver.find_elements_by_tag_name('iframe') 140 | time.sleep(1) 141 | audioBtnFound = False 142 | audioBtnIndex = -1 143 | for index in range(len(allIframesLen)): 144 | driver.switch_to.default_content() 145 | iframe = driver.find_elements_by_tag_name('iframe')[index] 146 | driver.switch_to.frame(iframe) 147 | driver.implicitly_wait(2) 148 | try: 149 | audioBtn = driver.find_element_by_id( 150 | RECAPTCHA_AUDIO_BUTTON) or driver.find_element_by_id(RECAPTCHA_ANCHOR) 151 | audioBtn.click() 152 | audioBtnFound = True 153 | audioBtnIndex = index 154 | break 155 | except Exception as e: 156 | pass 157 | if audioBtnFound: 158 | try: 159 | while True: 160 | """ 161 | try: 162 | time.sleep(3) 163 | WebDriverWait(driver, 20).until(expected_conditions.presence_of_element_located((By.ID, AUDIO_SOURCE))) 164 | except Exception as e: 165 | print(f"Waiting broke lmao {e}") 166 | """ 167 | driver.implicitly_wait(10) 168 | href = driver.find_element_by_id( 169 | AUDIO_SOURCE).get_attribute('src') 170 | response = requests.get(href, stream=True) 171 | saveFile(response, CAPTCHA_MP3_FILENAME) 172 | response = audioToText(CAPTCHA_MP3_FILENAME) 173 | printf(response) 174 | driver.switch_to.default_content() 175 | iframe = driver.find_elements_by_tag_name('iframe')[ 176 | audioBtnIndex] 177 | driver.switch_to.frame(iframe) 178 | inputbtn = driver.find_element_by_id(AUDIO_RESPONSE) 179 | inputbtn.send_keys(response) 180 | inputbtn.send_keys(Keys.ENTER) 181 | time.sleep(2) 182 | errorMsg = driver.find_elements_by_class_name( 183 | AUDIO_ERROR_MESSAGE)[0] 184 | if errorMsg.text == "" or errorMsg.value_of_css_property('display') == 'none': 185 | printf("reCaptcha defeated!") 186 | break 187 | except Exception as e: 188 | printf(e) 189 | printf('Oops, something happened. Check above this message for errors or check the chrome window to see if captcha locked you out...') 190 | else: 191 | printf('Button not found. This should not happen.') 192 | 193 | time.sleep(2) 194 | driver.switch_to.default_content() 195 | -------------------------------------------------------------------------------- /constants/xPaths.py: -------------------------------------------------------------------------------- 1 | XPATHS_1 = { 2 | 3 | 'username' : '//*[@id="dialogTemplate-dialogForm-userName"]', 4 | 'pass': '//*[@id="dialogTemplate-dialogForm-password"]', 5 | 'pass-retype': '//*[@id="dialogTemplate-dialogForm-passwordConfirm"]', 6 | 'email': '//*[@id="dialogTemplate-dialogForm-email"]', 7 | 'email-retype': '//*[@id="dialogTemplate-dialogForm-emailConfirm"]', 8 | 9 | } 10 | 11 | XPATHS_2 = { 12 | 13 | 'first_name': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_FirstName"]', 14 | 'perfered_first_name' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_UDFCandidatePersonalInfo_Preferred_32_Name"]', 15 | 'last_name': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_LastName"]', 16 | 'zip': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ZipCode"]', 17 | 'pn': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_HomePhone"]', 18 | 19 | 'work_experience_employer' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_3-we-wei-0-frm-dv_cs_experience_Employer"]', 20 | 'work_experinece_title' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_3-we-wei-0-frm-dv_cs_experience_JobFunction"]', 21 | 22 | 23 | } 24 | 25 | XPATHS_3 = { 26 | 27 | 28 | 'region' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-0"]', 29 | 'state' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-1"]', 30 | 'city' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_ResidenceLocation-2"]', 31 | 32 | 33 | 'sb_experience' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_UDFCandidatePersonalInfo_Prev_Employ"]', 34 | 35 | 36 | } 37 | XPATH_AVAL = { 38 | 39 | 'hours_week1': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-careerSectionMultipleCustomForm-cfrm-cfrmsub-frm-dv_cs_workcondition_HoursPerWeekWilling"]', 40 | 'hours_week2': '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-careerSectionMultipleCustomForm-cfrm-cfrmsub-frm-dv_cs_workcondition_HoursPerWeekPreferred"]', 41 | 'hours_holi' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-careerSectionMultipleCustomForm-cfrm-cfrmsub-frm:dv_cs_workcondition_IsAvailableHolidays"]', 42 | 'hours_times' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_2-shiftAvailabilityBlock-AllShift"]/span/span/span/span', 43 | 44 | 45 | 'current_job' : '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_3-we-wei-0-frm:dv_cs_experience_CurrentEmployer"]', 46 | 47 | 48 | } 49 | 50 | # PAGE 2 51 | UPLOAD_A_RESUME_BUTTON = '//*[@id="editTemplateMultipart-editForm-content-ftf-gp-j_id_id16pc8-page_0-AttachedFilesBlock-uploadedFile"]' 52 | ATTACH_RESUME = '//*[@id="editTemplateMultipart-editForm-content-ftf-gp-j_id_id16pc8-page_0-AttachedFilesBlock-attachFileCommand"]' 53 | 54 | # PAGE 3 55 | XPATH_QUALS = { 56 | 'Quals_1' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/span[3]/fieldset[1]/span[1]/label/input', 57 | 'Quals_2' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/span[3]/fieldset[2]/span[1]/label/input', 58 | 'Quals_3' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/span[3]/fieldset[3]/span[1]/label/input', 59 | 'Quals_4' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/span[3]/fieldset[4]/span[1]/label/input', 60 | 61 | } 62 | 63 | # PAGE 4 64 | XPATH_EEO = { 65 | 66 | 'EEO_1' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/fieldset[1]/span[2]/label/input', 67 | 'EEO_2' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/fieldset[2]/span[3]/label/input', 68 | 'EEO_3' : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/fieldset[3]/span[3]/label/input', 69 | 70 | } 71 | 72 | XPATH_RACES = [ 73 | 74 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26260130812"]', 75 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26360130812"]', 76 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26460130812"]', 77 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26560130812"]', 78 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26660130812"]', 79 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26760130812"]', 80 | '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-diversityBlock-j_id_id11pc10-0-j_id_id14pc10-3-questionRadio_com.taleo.systemcomponent.question.entity.RegulationPossibleAnswer__26860130812"]', 81 | ] 82 | 83 | 84 | 85 | 86 | XPATH_VOL = { 87 | "VOL_NAME" : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/div[2]/div/div[2]/div/div/input[1]', 88 | "VOL_DATE" : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/div[2]/div/div[2]/div/div/input[2]', 89 | "VOL_no" : '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[4]/div[2]/div/div[2]/div/div/input[4]' 90 | } 91 | 92 | XPATH_QUEST = { 93 | 94 | 'QUEST_2' : '//*[@id="SurveyControl_Question11396"]/div/label[2]', 95 | 'QUEST_3' : '//*[@id="SurveyControl_Question11397"]/div/label[2]', 96 | 'QUEST_4' : '//*[@id="SurveyControl_Question914"]/div/label[2]', 97 | 'QUEST_5' : '//*[@id="SurveyControl_Question11361"]/div/label[2]', 98 | 'QUEST_6' : '//*[@id="SurveyControl_Question1244"]/div/label[2]', 99 | 'QUEST_7' : '//*[@id="SurveyControl_Question11392"]/div/label[2]', 100 | 'QUEST_8' : '//*[@id="SurveyControl_Question942"]/div/label[2]', 101 | 'QUEST_RETURN' : '/html/body/form/div[4]/span/div[1]/div/div[8]/div/input', 102 | 103 | } 104 | 105 | RESUME_UPLOAD_PARTNER = '//*[@id="editTemplateMultipart-editForm-content-ftf-gp-j_id_id16pc8-page_0-ResumeParsingBlock-UploadResumeBlock-resumeUploadRadio_2"]' 106 | ATTACH_RESUME_PARTNER = '//*[@id="editTemplateMultipart-editForm-content-ftf-gp-j_id_id16pc8-page_0-ResumeParsingBlock-UploadResumeBlock-ResumeUploadInputFile"]' 107 | 108 | 109 | APPLY_NOW_BUTTON_1 = '//*[@id="requisitionDescriptionInterface.UP_APPLY_ON_REQ.row1"]' 110 | PRIVACY_ACCEPT = '//*[@id="dialogTemplate-dialogForm-StatementBeforeAuthentificationContent-ContinueButton"]' 111 | NEW_CANIDATE_BUTTON = '//*[@id="dialogTemplate-dialogForm-login-register"]' 112 | REGISTER_ACCOUNT = '//*[@id="dialogTemplate-dialogForm-defaultCmd"]' 113 | 114 | CONTINUE = '//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]' 115 | CONTINUE2 = '//*[@id="editTemplateMultipart-editForm-content-ftf-saveContinueCmdBottom"]' 116 | FULL_NAME = '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-eSignatureBlock-cfrmsub-frm-dv_cs_esignature_FullName"]' 117 | 118 | SUBMIT_APP = '//*[@id="et-ef-content-ftf-submitCmdBottom"]' 119 | 120 | QUEST = '/html/body/div[3]/form/span/span[2]/span[4]/table/tbody/tr/td/span[5]/span/span/a/span[1]' 121 | QUEST_SUBMIT = '/html/body/form/div[4]/span/div[1]/div/div[2]/div/input' 122 | 123 | SUPER_QUAL = '//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-4-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__146937"]' -------------------------------------------------------------------------------- /constants/areaCodes.py: -------------------------------------------------------------------------------- 1 | AREA_CODES = [ 2 | '201', 3 | '202', 4 | '203', 5 | '204', 6 | '205', 7 | '206', 8 | '207', 9 | '208', 10 | '209', 11 | '210', 12 | '212', 13 | '213', 14 | '214', 15 | '215', 16 | '216', 17 | '217', 18 | '218', 19 | '219', 20 | '220', 21 | '223', 22 | '224', 23 | '225', 24 | '226', 25 | '228', 26 | '229', 27 | '231', 28 | '234', 29 | '236', 30 | '239', 31 | '240', 32 | '242', 33 | '246', 34 | '248', 35 | '249', 36 | '250', 37 | '251', 38 | '252', 39 | '253', 40 | '254', 41 | '256', 42 | '260', 43 | '262', 44 | '264', 45 | '267', 46 | '268', 47 | '269', 48 | '270', 49 | '272', 50 | '276', 51 | '279', 52 | '281', 53 | '284', 54 | '289', 55 | '301', 56 | '302', 57 | '303', 58 | '304', 59 | '305', 60 | '306', 61 | '307', 62 | '308', 63 | '309', 64 | '310', 65 | '312', 66 | '313', 67 | '314', 68 | '315', 69 | '316', 70 | '317', 71 | '318', 72 | '319', 73 | '320', 74 | '321', 75 | '323', 76 | '325', 77 | '326', 78 | '330', 79 | '331', 80 | '332', 81 | '334', 82 | '336', 83 | '337', 84 | '339', 85 | '340', 86 | '341', 87 | '343', 88 | '345', 89 | '346', 90 | '347', 91 | '351', 92 | '352', 93 | '360', 94 | '361', 95 | '364', 96 | '365', 97 | '367', 98 | '368', 99 | '380', 100 | '385', 101 | '386', 102 | '401', 103 | '402', 104 | '403', 105 | '404', 106 | '405', 107 | '406', 108 | '407', 109 | '408', 110 | '409', 111 | '410', 112 | '412', 113 | '413', 114 | '414', 115 | '415', 116 | '416', 117 | '417', 118 | '418', 119 | '419', 120 | '423', 121 | '424', 122 | '425', 123 | '430', 124 | '431', 125 | '432', 126 | '434', 127 | '435', 128 | '437', 129 | '438', 130 | '440', 131 | '441', 132 | '442', 133 | '443', 134 | '445', 135 | '447', 136 | '448', 137 | '450', 138 | '456', 139 | '458', 140 | '463', 141 | '469', 142 | '470', 143 | '473', 144 | '474', 145 | '475', 146 | '478', 147 | '479', 148 | '480', 149 | '484', 150 | '500', 151 | '501', 152 | '502', 153 | '503', 154 | '504', 155 | '505', 156 | '506', 157 | '507', 158 | '508', 159 | '509', 160 | '510', 161 | '512', 162 | '513', 163 | '514', 164 | '515', 165 | '516', 166 | '517', 167 | '518', 168 | '519', 169 | '520', 170 | '530', 171 | '531', 172 | '533', 173 | '534', 174 | '539', 175 | '540', 176 | '541', 177 | '544', 178 | '548', 179 | '551', 180 | '559', 181 | '561', 182 | '562', 183 | '563', 184 | '564', 185 | '566', 186 | '567', 187 | '570', 188 | '571', 189 | '572', 190 | '573', 191 | '574', 192 | '575', 193 | '577', 194 | '579', 195 | '580', 196 | '581', 197 | '582', 198 | '585', 199 | '586', 200 | '587', 201 | '600', 202 | '601', 203 | '602', 204 | '603', 205 | '604', 206 | '605', 207 | '606', 208 | '607', 209 | '608', 210 | '609', 211 | '610', 212 | '612', 213 | '613', 214 | '614', 215 | '615', 216 | '616', 217 | '617', 218 | '618', 219 | '619', 220 | '620', 221 | '623', 222 | '626', 223 | '628', 224 | '629', 225 | '630', 226 | '631', 227 | '636', 228 | '639', 229 | '640', 230 | '641', 231 | '646', 232 | '647', 233 | '649', 234 | '650', 235 | '651', 236 | '657', 237 | '658', 238 | '659', 239 | '660', 240 | '661', 241 | '662', 242 | '664', 243 | '667', 244 | '669', 245 | '670', 246 | '671', 247 | '672', 248 | '678', 249 | '680', 250 | '681', 251 | '682', 252 | '684', 253 | '689', 254 | '700', 255 | '701', 256 | '702', 257 | '703', 258 | '704', 259 | '705', 260 | '706', 261 | '707', 262 | '708', 263 | '709', 264 | '710', 265 | '712', 266 | '713', 267 | '714', 268 | '715', 269 | '716', 270 | '717', 271 | '718', 272 | '719', 273 | '720', 274 | '721', 275 | '724', 276 | '725', 277 | '726', 278 | '727', 279 | '731', 280 | '732', 281 | '734', 282 | '737', 283 | '742', 284 | '740', 285 | '743', 286 | '747', 287 | '754', 288 | '757', 289 | '758', 290 | '760', 291 | '762', 292 | '763', 293 | '765', 294 | '767', 295 | '769', 296 | '770', 297 | '771', 298 | '772', 299 | '773', 300 | '774', 301 | '775', 302 | '778', 303 | '779', 304 | '780', 305 | '781', 306 | '782', 307 | '784', 308 | '785', 309 | '786', 310 | '787', 311 | '800', 312 | '801', 313 | '802', 314 | '803', 315 | '804', 316 | '805', 317 | '806', 318 | '807', 319 | '808', 320 | '809', 321 | '810', 322 | '812', 323 | '813', 324 | '814', 325 | '815', 326 | '816', 327 | '817', 328 | '818', 329 | '819', 330 | '820', 331 | '825', 332 | '828', 333 | '829', 334 | '830', 335 | '831', 336 | '832', 337 | '833', 338 | '838', 339 | '839', 340 | '840', 341 | '843', 342 | '844', 343 | '845', 344 | '847', 345 | '848', 346 | '849', 347 | '850', 348 | '854', 349 | '855', 350 | '856', 351 | '857', 352 | '858', 353 | '859', 354 | '860', 355 | '862', 356 | '863', 357 | '864', 358 | '865', 359 | '866', 360 | '867', 361 | '868', 362 | '869', 363 | '870', 364 | '872', 365 | '873', 366 | '876', 367 | '877', 368 | '878', 369 | '888', 370 | '900', 371 | '901', 372 | '902', 373 | '903', 374 | '904', 375 | '905', 376 | '906', 377 | '907', 378 | '908', 379 | '909', 380 | '910', 381 | '911', 382 | '912', 383 | '913', 384 | '914', 385 | '915', 386 | '916', 387 | '917', 388 | '918', 389 | '919', 390 | '920', 391 | '925', 392 | '928', 393 | '929', 394 | '930', 395 | '931', 396 | '934', 397 | '936', 398 | '937', 399 | '938', 400 | '939', 401 | '940', 402 | '941', 403 | '945', 404 | '947', 405 | '949', 406 | '951', 407 | '952', 408 | '954', 409 | '956', 410 | '959', 411 | '970', 412 | '971', 413 | '972', 414 | '973', 415 | '978', 416 | '979', 417 | '980', 418 | '984', 419 | '985', 420 | '986', 421 | '989', 422 | ] -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | from datetime import date 3 | from re import I 4 | from apps.partnerapp import partner_application_part_3 5 | from apps.shiftsuper import shift_super_app 6 | from constants.xPaths import * 7 | from constants.urls import * 8 | from constants.parser import * 9 | from constants.location import * 10 | from constants.email import * 11 | from constants.elementIds import * 12 | from constants.classNames import * 13 | from constants.fileNames import * 14 | from constants.common import * 15 | from constants.functs import * 16 | from apps.baristaapp import * 17 | from apps.partnerapp import * 18 | from apps.remoteapp import * 19 | import requests 20 | import functools 21 | import os 22 | import subprocess 23 | import random 24 | import sys 25 | import time 26 | from selenium.webdriver.chrome import options 27 | 28 | 29 | import speech_recognition as sr 30 | from faker import Faker 31 | from selenium import webdriver 32 | from selenium.webdriver.chrome.options import Options 33 | from selenium.webdriver.support import expected_conditions 34 | from selenium.webdriver.support.ui import Select, WebDriverWait 35 | from selenium.webdriver.common.by import By 36 | from selenium.webdriver.common.keys import Keys 37 | from selenium.common.exceptions import TimeoutException 38 | from constants.areaCodes import AREA_CODES 39 | 40 | from resume_faker import make_resume 41 | from password_generator import PasswordGenerator 42 | 43 | 44 | from webdriver_manager.chrome import ChromeDriverManager 45 | os.environ['WDM_LOG_LEVEL'] = '0' 46 | 47 | app_sent_url = 'https://change-is-brewing.herokuapp.com/applications' 48 | 49 | today = date.today() 50 | 51 | # Adds /usr/local/bin to my path which is where my ffmpeg is stored 52 | os.environ["PATH"] += ":/usr/local/bin" 53 | 54 | fake = Faker() 55 | 56 | # Add printf: print with flush by default. This is for python 2 support. 57 | # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function-unbuffer-python-output#:~:text=Changing%20the%20default%20in%20one%20module%20to%20flush%3DTrue 58 | printf = functools.partial(print, flush=True) 59 | 60 | r = sr.Recognizer() 61 | 62 | # Option parsing 63 | parser = argparse.ArgumentParser(SCRIPT_DESCRIPTION, epilog=EPILOG) 64 | parser.add_argument('--cloud', action='store_true', default=CLOUD_DISABLED, 65 | required=False, help=CLOUD_DESCRIPTION, dest='cloud') 66 | args = parser.parse_args() 67 | 68 | 69 | def start_driver(random_city): 70 | 71 | if (args.cloud == CLOUD_ENABLED): 72 | 73 | chrome_options = webdriver.ChromeOptions() 74 | chrome_options.add_argument('--headless') 75 | chrome_options.add_argument('--no-sandbox') 76 | chrome_options.add_argument('--disable-dev-shm-usage') 77 | chrome_options.add_argument("--window-size=1920,1080") 78 | chrome_options.add_argument('--ignore-certificate-errors') 79 | chrome_options.add_argument('--allow-running-insecure-content') 80 | user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36' 81 | chrome_options.add_argument(f'user-agent={user_agent}') 82 | 83 | driver = webdriver.Chrome('chromedriver', options=chrome_options) 84 | else: 85 | driver = webdriver.Chrome(ChromeDriverManager().install()) 86 | 87 | driver.get(CITIES_TO_URLS[random_city][random.randint( 88 | 0, (len(CITIES_TO_URLS[random_city])-1))]) 89 | driver.implicitly_wait(10) 90 | WebDriverWait(driver, 10).until( 91 | expected_conditions.presence_of_element_located((By.XPATH, APPLY_NOW_BUTTON_1))) 92 | 93 | driver.implicitly_wait(10) 94 | driver.find_element_by_xpath(APPLY_NOW_BUTTON_1).click() 95 | driver.find_element_by_xpath(PRIVACY_ACCEPT).click() 96 | driver.find_element_by_xpath(NEW_CANIDATE_BUTTON).click() 97 | return driver 98 | 99 | 100 | def generate_account(driver, fake_identity): 101 | # make fake account info and fill 102 | 103 | info = '' 104 | email = fake_identity['email'] 105 | # pwo = PasswordGenerator() 106 | password = gen_password() 107 | 108 | for key in XPATHS_1.keys(): 109 | if key in ('email', 'email-retype'): 110 | info = fake_identity['email'] 111 | elif key in ('pass', 'pass-retype'): 112 | info = password 113 | elif key == 'username': 114 | info = fake_identity['first_name'] + \ 115 | fake_identity['last_name'] + str(random.randint(0, 10000)) 116 | 117 | driver.find_element_by_xpath(XPATHS_1.get(key)).send_keys(info) 118 | 119 | driver.find_element_by_xpath(REGISTER_ACCOUNT).click() 120 | 121 | # try: 122 | # element_present = expected_conditions.presence_of_element_located( 123 | # (By.ID, 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-cpi-cfrmsub-frm-dv_cs_candidate_personal_info_FirstName')) 124 | # WebDriverWait(driver, 10).until(element_present) 125 | # except TimeoutException: 126 | # print("Timed out waiting for page to load") 127 | 128 | time.sleep(random.randint(0, 2)) 129 | 130 | printf(f"Successfully made account for fake email {email}") 131 | 132 | 133 | def fill_out_application_and_submit(driver, random_city, fake_identity, i): 134 | 135 | if ((random_city == 'Bakersfield') or (random_city == 'Raleigh')): 136 | print('Filling Applicaion for ' + random_city) 137 | application_part_1(driver, random_city, fake_identity) 138 | driver.find_element_by_xpath(CONTINUE).click() 139 | # time.sleep(1) 140 | application_part_2(driver, random_city, fake_identity, 141 | UPLOAD_A_RESUME_BUTTON, ATTACH_RESUME) 142 | driver.find_element_by_xpath(CONTINUE2).click() 143 | # time.sleep(1) 144 | application_part_3(driver, random_city, fake_identity) 145 | # time.sleep(1) 146 | driver.find_element_by_xpath(CONTINUE).click() 147 | application_part_4(driver, random_city, fake_identity) 148 | # time.sleep(1) 149 | driver.find_element_by_xpath(CONTINUE).click() 150 | application_part_5(driver, random_city, fake_identity) 151 | # time.sleep(1) 152 | driver.find_element_by_xpath(CONTINUE).click() 153 | # time.sleep(1) 154 | driver.find_element_by_xpath(QUEST).click() 155 | # time.sleep(2) 156 | 157 | try: 158 | element_present = expected_conditions.presence_of_element_located( 159 | (By.ID, 'SurveyControl_SurveySubmit')) 160 | WebDriverWait(driver, 10).until(element_present) 161 | except TimeoutException: 162 | print("Timed out waiting for page to load") 163 | 164 | application_part_6(driver, random_city, fake_identity) 165 | driver.find_element_by_xpath(QUEST_SUBMIT).click() 166 | try: 167 | partner_application_part_6(driver, random_city, fake_identity) 168 | #partner_application_part_6(driver, random_city, fake_identity) 169 | except: 170 | pass 171 | driver.find_element_by_xpath(CONTINUE).click() 172 | 173 | try: 174 | element_present = expected_conditions.presence_of_element_located( 175 | (By.ID, 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-eSignatureBlock-cfrmsub-frm-dv_cs_esignature_FullName')) 176 | WebDriverWait(driver, 10).until(element_present) 177 | except TimeoutException: 178 | print("Timed out waiting for page to load") 179 | 180 | driver.find_element_by_xpath(FULL_NAME).send_keys( 181 | fake_identity['first_name'] + " " + fake_identity['last_name']) 182 | 183 | driver.find_element_by_xpath(CONTINUE).click() 184 | 185 | driver.find_element_by_xpath(SUBMIT_APP).click() 186 | # time.sleep(2) 187 | elif random_city == 'Elmira': 188 | shift_super_app(driver, random_city, fake_identity) 189 | 190 | elif random_city == 'Buffalo': 191 | shift_super_app(driver, random_city, fake_identity) 192 | else: 193 | #run_partner_app(driver, city, fake_identity) 194 | #remote_app(driver, city, fake_identity) 195 | pass 196 | 197 | 198 | def random_email(name=None): 199 | if name is None: 200 | name = fake.name() 201 | 202 | mailGens = [lambda fn, ln, *names: fn + ln, 203 | lambda fn, ln, *names: fn + "." + ln, 204 | lambda fn, ln, *names: fn + "_" + ln, 205 | lambda fn, ln, *names: fn[0] + "." + ln, 206 | lambda fn, ln, *names: fn[0] + "_" + ln, 207 | lambda fn, ln, *names: fn + ln + 208 | str(int(1 / random.random() ** 3)), 209 | lambda fn, ln, *names: fn + "." + ln + 210 | str(int(1 / random.random() ** 3)), 211 | lambda fn, ln, *names: fn + "_" + ln + 212 | str(int(1 / random.random() ** 3)), 213 | lambda fn, ln, *names: fn[0] + "." + 214 | ln + str(int(1 / random.random() ** 3)), 215 | lambda fn, ln, *names: fn[0] + "_" + ln + str(int(1 / random.random() ** 3)), ] 216 | 217 | emailChoices = [float(line[2]) for line in EMAIL_DATA] 218 | 219 | return random.choices(mailGens, MAIL_GENERATION_WEIGHTS)[0](*name.split(" ")).lower() + "@" + \ 220 | random.choices(EMAIL_DATA, emailChoices)[0][1] 221 | 222 | 223 | def pickZipCodes(rand_city): 224 | 225 | rand_zip = random.choice(CITIES_TO_ZIP_CODES[rand_city]) 226 | 227 | return rand_zip 228 | 229 | 230 | def main(): 231 | i = 0 232 | 233 | while True: 234 | 235 | random_city = random.choice(list(CITIES_TO_URLS.keys())) 236 | try: 237 | driver = start_driver(random_city) 238 | except Exception as e: 239 | if not args.cloud: 240 | printf(f"FAILED TO START DRIVER: {e}") 241 | continue 242 | 243 | time.sleep(1) 244 | 245 | fake_first_name = fake.first_name() 246 | fake_last_name = fake.last_name() 247 | fake_email = random_email(fake_first_name+' '+fake_last_name) 248 | 249 | fake_identity = { 250 | 'first_name': fake_first_name, 251 | 'last_name': fake_last_name, 252 | 'email': fake_email 253 | } 254 | 255 | try: 256 | generate_account(driver, fake_identity) 257 | except Exception as e: 258 | printf(f"FAILED TO CREATE ACCOUNT: {e}") 259 | driver.close() 260 | continue 261 | 262 | try: 263 | fill_out_application_and_submit( 264 | driver, random_city, fake_identity, i) 265 | except Exception as e: 266 | 267 | printf(f"FAILED TO FILL OUT APPLICATION AND SUBMIT: {e}") 268 | 269 | driver.close() 270 | continue 271 | driver.close() 272 | 273 | i += 1 274 | 275 | requests.post(app_sent_url) 276 | 277 | print(str(i) + " APPLICATIONS SENT") 278 | 279 | 280 | if __name__ == '__main__': 281 | 282 | name = fake.name() 283 | 284 | main() 285 | sys.exit() 286 | -------------------------------------------------------------------------------- /apps/partnerapp.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from constants.xPaths import * 3 | from constants.urls import * 4 | from constants.parser import * 5 | from constants.location import * 6 | from constants.email import * 7 | from constants.elementIds import * 8 | from constants.classNames import * 9 | from constants.fileNames import * 10 | from constants.common import * 11 | from constants.functs import * 12 | from resume_faker import * 13 | from apps.baristaapp import * 14 | import requests 15 | import functools 16 | import os 17 | import subprocess 18 | import random 19 | import sys 20 | import time 21 | import string 22 | from selenium.webdriver.chrome import options 23 | 24 | import speech_recognition as sr 25 | from faker import Faker 26 | from selenium import webdriver 27 | from selenium.webdriver.chrome.options import Options 28 | from selenium.webdriver.support import expected_conditions 29 | from selenium.webdriver.support.ui import Select, WebDriverWait 30 | from selenium.webdriver.common.by import By 31 | from selenium.webdriver.common.keys import Keys 32 | from selenium.common.exceptions import TimeoutException 33 | from constants.areaCodes import AREA_CODES 34 | 35 | from resume_faker import make_resume 36 | from password_generator import PasswordGenerator 37 | 38 | 39 | from webdriver_manager.chrome import ChromeDriverManager 40 | 41 | engine = SearchEngine() 42 | fake = Faker() 43 | 44 | def run_partner_app(driver, random_city, fake_identity): 45 | print('Filling Applicaion for ' + random_city) 46 | try: 47 | driver.find_element_by_xpath( 48 | '//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]').click() 49 | except: 50 | driver.find_element_by_xpath( 51 | '//*[@id="editTemplateMultipart-editForm-content-ftf-saveContinueCmdBottom"]').click() 52 | #time.sleep(1) 53 | #print('Part 2') 54 | partner_application_part_2(driver, random_city, fake_identity) 55 | #time.sleep(1) 56 | #print('Part 3') 57 | partner_application_part_3(driver, random_city, fake_identity) 58 | 59 | #time.sleep(1) 60 | driver.find_element_by_xpath( 61 | '//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]').click() 62 | #time.sleep(1) 63 | 64 | #print('Part 4') 65 | partner_application_part_4(driver, random_city, fake_identity) 66 | #time.sleep(1) 67 | driver.find_element_by_xpath( 68 | '//*[@id="editTemplateMultipart-editForm-content-ftf-saveContinueCmdBottom"]').click() 69 | time.sleep(3) 70 | #print('Part 5') 71 | 72 | 73 | 74 | partner_application_part_5(driver, random_city, fake_identity) 75 | driver.find_element_by_xpath( 76 | '//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]').click() 77 | 78 | application_part_4(driver, random_city, fake_identity) 79 | driver.find_element_by_xpath(CONTINUE).click() 80 | application_part_5(driver, random_city, fake_identity) 81 | driver.find_element_by_xpath(CONTINUE).click() 82 | 83 | driver.find_element_by_xpath(QUEST).click() 84 | 85 | # application_part_6(driver, random_city, fake_identity) 86 | #time.sleep(1) 87 | try: 88 | element_present = expected_conditions.presence_of_element_located( 89 | (By.ID, 'SurveyControl_SurveySubmit')) 90 | WebDriverWait(driver, 10).until(element_present) 91 | except TimeoutException: 92 | print("Timed out waiting for page to load") 93 | 94 | application_part_6(driver, random_city, fake_identity) 95 | driver.find_element_by_xpath(QUEST_SUBMIT).click() 96 | 97 | try: 98 | element_present = expected_conditions.presence_of_element_located( 99 | (By.ID, 'et-ef-content-ftf-gp-j_id_id16pc9-page_0-eSignatureBlock-cfrmsub-frm-dv_cs_esignature_FullName')) 100 | WebDriverWait(driver, 10).until(element_present) 101 | except TimeoutException: 102 | print("Timed out waiting for page to load") 103 | 104 | driver.find_element_by_xpath(FULL_NAME).send_keys( 105 | fake_identity['first_name'] + " " + fake_identity['last_name']) 106 | 107 | driver.find_element_by_xpath(CONTINUE).click() 108 | #time.sleep(1) 109 | driver.find_element_by_xpath(SUBMIT_APP).click() 110 | 111 | 112 | 113 | def partner_application_part_4(driver, random_city, fake_identity): 114 | 115 | # make resume 116 | info = '' 117 | resume_filename = fake_identity['last_name']+'-Resume' 118 | make_resume(fake_identity['first_name']+' '+fake_identity['last_name'], 119 | fake_identity['email'], resume_filename+'.pdf') 120 | 121 | # Send Resume 122 | info = os.getcwd() + '/'+resume_filename+'.pdf' 123 | driver.find_element_by_xpath(UPLOAD_A_RESUME_BUTTON).send_keys(info) 124 | 125 | driver.find_element_by_xpath(ATTACH_RESUME).click() 126 | 127 | os.remove(resume_filename+'.pdf') 128 | 129 | 130 | 131 | 132 | 133 | def partner_application_part_2(driver, random_city, fake_identity): 134 | 135 | # SELECT EMPLOY HISTORY 136 | select = Select(driver.find_element_by_id(EMPLOY_HISTORY)) 137 | select.select_by_visible_text(NO) 138 | 139 | # SELECT THE PLACE OF RESIDENCE 140 | select = Select(driver.find_element_by_id(REGION_COUNTRY)) 141 | select.select_by_visible_text(COUNTRY) 142 | select = Select(driver.find_element_by_id(REGION_STATE)) 143 | select.select_by_visible_text(CITIES_TO_STATES[random_city]) 144 | select = Select(driver.find_element_by_id(REGION_CITY)) 145 | select.select_by_visible_text(random_city) 146 | info = '' 147 | 148 | for key in XPATHS_2.keys(): 149 | 150 | if (key is'first_name'): 151 | info = fake_identity['first_name'] 152 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 153 | elif (key is'perfered_first_name'): 154 | info = fake_identity['first_name'] 155 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 156 | elif (key is'last_name'): 157 | info = fake_identity['last_name'] 158 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 159 | elif (key is'zip'): 160 | info = random.choice(list(engine.by_city(city=random_city))).zipcode 161 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 162 | elif (key is'pn'): 163 | info = random_phone(format=3) 164 | driver.find_element_by_xpath(XPATHS_2.get(key)).send_keys(info) 165 | else: 166 | pass 167 | 168 | 169 | 170 | 171 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-saveContinueCmdBottom"]').click() 172 | 173 | 174 | def partner_application_part_3(driver, random_city, fake_identity): 175 | 176 | 177 | # WORK EXPERIENCE 178 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-we-wei-0-frm-dv_cs_experience_Employer"]').send_keys(fake.company()) 179 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-we-wei-0-frm-dv_cs_experience_JobFunction"]').send_keys(fake.job()) 180 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-we-wei-0-frm:dv_cs_experience_CurrentEmployer"]').click() 181 | 182 | 183 | 184 | #EDUCATION 185 | #driver.find_element_by_xpath('') 186 | # SELECT 187 | select = Select(driver.find_element_by_id('et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_StudyLevel')) 188 | select.select_by_value(str(random.randint(1, 9))) 189 | 190 | 191 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_Institution"]').send_keys(random.choice(unis)) 192 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_OtherInstitutionCity"]').send_keys(random_city) 193 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_Program"]').send_keys(random.choice(degrees)) 194 | 195 | 196 | select = Select(driver.find_element_by_id('et-ef-content-ftf-gp-j_id_id16pc9-page_1-csef-efi-0-frm-dv_cs_education_UDFEducation_Education_32_Status')) 197 | select.select_by_visible_text('Graduated - Degree Completed') 198 | 199 | 200 | def partner_application_part_5(driver, random_city, fake_identity): 201 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-0-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__15816"]').click() 202 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-1-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__5166"]').click() 203 | 204 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-2-qc_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__6045"]').click() 205 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-2-qc_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__6049"]').click() 206 | 207 | 208 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-3-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__7223"]').click() 209 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-4-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__7995"]').click() 210 | if(random.randint(0,100) > 50): 211 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-5-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__205254"]').click() 212 | 213 | else: 214 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-5-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__205255"]').click() 215 | 216 | if(random.randint(0,100) > 50): 217 | try: 218 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-5-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__205256"]').click() 219 | except: 220 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-6-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__205257"]').click() 221 | else: 222 | driver.find_element_by_xpath('//*[@id="et-ef-content-ftf-gp-j_id_id16pc9-page_0-preq-j_id_id7pc10-page__1-q-j_id_id2pc11-6-qr_com.taleo.functionalcomponent.prescreening.entity.question.PossibleAnswer__205257"]').click() 223 | 224 | 225 | def partner_application_part_6(driver, random_city, fake_identity): 226 | 227 | l = ['3', '6', '7', '9', '12', '16'] 228 | 229 | select = Select(driver.find_element_by_id("et-ef-content-ftf-gp-j_id_id16pc9-page_0-sourceTrackingBlock-recruitmentSourceType")) 230 | select.select_by_value(random.choice(l)) 231 | driver.find_element_by_id("et-ef-content-ftf-gp-j_id_id16pc9-page_0-sourceTrackingBlock-recruitmentSourceType").click() 232 | 233 | -------------------------------------------------------------------------------- /oof.html: -------------------------------------------------------------------------------- 1 | ' 2 | 3 | 4 | \n 5 | \n\nreCAPTCHA\n\n 260 | \n\n 269 | \n 270 | 271 | \n 273 | 280 |
281 |
282 |
283 |
284 |
Try again later
285 |
286 |
287 |
Your computer or network 288 | may be sending automated queries. To protect our users, we can\'t process your request right 289 | now. For more details visit our help page.
292 |
293 |
294 | 327 |
328 |
329 | 330 | 331 | ' -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /resume_faker.py: -------------------------------------------------------------------------------- 1 | from fpdf import FPDF 2 | import random 3 | from faker import Faker 4 | from datetime import date 5 | 6 | faker = Faker() 7 | 8 | degrees = [ 9 | 'Bachelor of Science in Genetic Engineering and Biotechnology', 10 | 'Bachelor of Applied Economics', 11 | 'Bachelor of Architecture', 12 | 'Bachelor of Biochemistry', 13 | 'Bachelor of Biomedical Science', 14 | 'Bachelor of Business Administration', 15 | 'Bachelor of Clinical Science', 16 | 'Bachelor of Commerce', 17 | 'Bachelor of Computer Applications', 18 | 'Bachelor of Community Health', 19 | 'Bachelor of Computer Information Systems', 20 | 'Bachelor of Science in Construction Technology', 21 | 'Bachelor of Criminal Justice', 22 | 'Bachelor of Divinity', 23 | 'Bachelor of Economics', 24 | 'Bachelor of Elementary Education', 25 | 'Bachelor of Education', 26 | 'Bachelor of Engineering', 27 | 'Bachelor of Fine Arts', 28 | 'Bachelor of Laws', 29 | 'Bachelor of Letters', 30 | 'Bachelor of Library & Information Science', 31 | 'Bachelor of Information Systems', 32 | 'Bachelor of Management', 33 | 'Bachelor of Music', 34 | 'Bachelor of Pharmacy', 35 | 'Bachelor of Philosophy', 36 | 'Bachelor of Public Affairs and Policy Management', 37 | 'Bachelor of Public Administration', 38 | 'Bachelor of Social Work', 39 | 'Bachelor of Technology', 40 | 'Bachelor of Accountancy', 41 | 'Bachelor of Arts in American Studies', 42 | 'Bachelor of Arts in American Indian Studies', 43 | 'Bachelor of Arts in Applied Psychology', 44 | 'Bachelor of Arts in Biology', 45 | 'Bachelor of Arts in Anthropology', 46 | 'Bachelor of Arts in Child Advocacy', 47 | 'Bachelor of Arts in Clinical Psychology', 48 | 'Bachelor of Arts in Communication', 49 | 'Bachelor of Arts in Forensic Psychology', 50 | 'Bachelor of Arts in Organizational Psychology', 51 | 'Bachelor of Science in Aerospace Engineering', 52 | 'Bachelor of Science in Accountancy', 53 | 'Bachelor of Science in Actuarial', 54 | 'Bachelor of Science in Agriculture', 55 | 'Bachelor of Science in Applied Economics', 56 | 'Bachelor of Science in Architecture', 57 | 'Bachelor of Science in Architectural Engineering', 58 | 'Bachelor of Science in Athletic Training', 59 | 'Bachelor of Science in Biology', 60 | 'Bachelor of Science in Biomedical Engineering', 61 | 'Bachelor of Science in Bible', 62 | 'Bachelor of Science in Business Administration', 63 | 'Bachelor of Science in Business Administration - Computer Application', 64 | 'Bachelor of Science in Business Administration - Economics', 65 | 'Bachelor of Science in Business and Technology', 66 | 'Bachelor of Science in Chemical Engineering', 67 | 'Bachelor of Science in Chemistry', 68 | 'Bachelor of Science in Civil Engineering', 69 | 'Bachelor of Science in Clinical Laboratory Science', 70 | 'Bachelor of Science in Cognitive Science', 71 | 'Bachelor of Science in Computer Engineering', 72 | 'Bachelor of Science in Computer Science', 73 | 'Bachelor of Science in Construction Engineering', 74 | 'Bachelor of Science in Construction Management', 75 | 'Bachelor of Science in Criminal Justice', 76 | 'Bachelor of Science in Criminology', 77 | 'Bachelor of Science in Diagnostic Radiography', 78 | 'Bachelor of Science in Education', 79 | 'Bachelor of Science in Electrical Engineering', 80 | 'Bachelor of Science in Engineering Physics', 81 | 'Bachelor of Science in Engineering Science', 82 | 'Bachelor of Science in Engineering Technology', 83 | 'Bachelor of Science in English Literature', 84 | 'Bachelor of Science in Environmental Engineering', 85 | 'Bachelor of Science in Environmental Science', 86 | 'Bachelor of Science in Environmental Studies', 87 | 'Bachelor of Arts / Science in Finance', 88 | 'Bachelor of Science in Food Science', 89 | 'Bachelor of Science in Foreign Service', 90 | 'Bachelor of Science in Forensic Science', 91 | 'Bachelor of Science in Forestry', 92 | 'Bachelor of Science in History', 93 | 'Bachelor of Science in Hospitality Management', 94 | 'Bachelor of Science in Human Resources Management', 95 | 'Bachelor of Science in Industrial Engineering', 96 | 'Bachelor of Science in Information Technology', 97 | 'Bachelor of Science in Information Systems', 98 | 'Bachelor of Science in Integrated Science', 99 | 'Bachelor of Science in International Relations', 100 | 'Bachelor of Science in Journalism', 101 | 'Bachelor of Science in Legal Management', 102 | 'Bachelor of Science in Management', 103 | 'Bachelor of Science in Manufacturing Engineering', 104 | 'Bachelor of Science in Marketing', 105 | 'Bachelor of Science in Mathematics', 106 | 'Bachelor of Science in Mechanical Engineering', 107 | 'Bachelor of Science in Medical Technology', 108 | 'Bachelor of Science in Metallurgical Engineering', 109 | 'Bachelor of Science in Meteorology', 110 | 'Bachelor of Science in Microbiology', 111 | 'Bachelor of Science in Mining Engineering', 112 | 'Bachelor of Science in Molecular Biology', 113 | 'Bachelor of Science in Neuroscience', 114 | 'Bachelor of Science in Nursing', 115 | 'Bachelor of Science in Nutrition science', 116 | 'Bachelor of Science in Software Engineering', 117 | 'Bachelor of Science in Petroleum Engineering', 118 | 'Bachelor of Science in Podiatry', 119 | 'Bachelor of Science in Pharmacology', 120 | 'Bachelor of Science in Pharmacy', 121 | 'Bachelor of Science in Physical Therapy', 122 | 'Bachelor of Science in Physics', 123 | 'Bachelor of Science in Plant Science', 124 | 'Bachelor of Science in Politics', 125 | 'Bachelor of Science in Psychology', 126 | 'Bachelor of Science in Public Safety', 127 | 'Bachelor of Science in Physiology', 128 | 'Bachelor of Science in Quantity Surveying Engineering', 129 | 'Bachelor of Science in Radiologic Technology', 130 | 'Bachelor of Science in Real-Time Interactive Simulation', 131 | 'Bachelor of Science in Religion', 132 | 'Bachelor of Science in Respiratory Therapy', 133 | 'Bachelor of Science in Retail Management', 134 | 'Bachelor of Science in Risk Management and Insurance', 135 | 'Bachelor of Science in Science Education', 136 | 'Bachelor of Science in Sports Management', 137 | 'Bachelor of Science in Systems Engineering', 138 | 'Bachelor of Secondary Education', 139 | 'Bachelor of Physical Education', 140 | 'Bachelor of Music in Jazz Studies', 141 | 'Bachelor of Music in Composition', 142 | 'Bachelor of Music in Performance', 143 | 'Bachelor of Music in Theory', 144 | 'Bachelor of Music in Music Education', 145 | 'Bachelor of Science in Veterinary Technology', 146 | 'Bachelor of Science in military and strategic studies', 147 | ] 148 | 149 | unis = [ 150 | 'University of Alaska', 151 | 'Alaska Christian College', 152 | 'National Park Community College', 153 | 'University of Alaska Fairbanks', 154 | 'University of Arkansas – Fort Smith', 155 | 'Alabama A&M University', 156 | 'Athens State University', 157 | 'Auburn University', 158 | 'Auburn University at Montgomery', 159 | 'Birmingham-Southern College', 160 | 'Calhoun Community College', 161 | 'Enterprise State Community College', 162 | 'Faulkner State Community College', 163 | 'Gadsden State  Community College', 164 | 'Huntingdon College', 165 | 'Jacksonville State University', 166 | 'Lurleen B. Wallace Community College', 167 | 'University of Montevallo', 168 | 'Northeast Alabama Community College', 169 | 'Northwest-Shoals Community College', 170 | 'Oakwood University', 171 | 'Samford University', 172 | 'Southeastern Bible College', 173 | 'University of South Alabama', 174 | 'Trenholm State Technical College', 175 | 'Troy University', 176 | 'Tuskegee University', 177 | 'University of Alabama', 178 | 'University of Alabama at Birmingham', 179 | 'University of Alabama in Huntsville', 180 | 'University of North Alabama', 181 | 'Snead State Community College', 182 | 'Arkansas Northeastern College', 183 | 'Arkansas State University', 184 | 'Arkansas Tech University', 185 | 'Central Baptist College', 186 | 'Harding University', 187 | 'Hendrix College', 188 | 'Henderson State University', 189 | 'John Brown University', 190 | 'Lyon College', 191 | 'Mid-South Community College', 192 | 'North Arkansas College', 193 | 'Northwest Arkansas Community College', 194 | 'Northwest Technical Institute', 195 | 'Ouachita Baptist University', 196 | 'University of the Ozarks', 197 | 'Phillips Community College U of A', 198 | 'Pulaski Technical College', 199 | 'Southern Arkansas University Magnolia', 200 | 'Southeast Arkansas College', 201 | 'University of Arkansas Community College Batesville', 202 | 'University of Arkansas at Little Rock', 203 | 'University of Arkansas for Medical Sciences', 204 | 'University of Arkansas at Pine Bluff', 205 | 'University of Arkansas', 206 | 'University of Central Arkansas', 207 | 'Williams Baptist College', 208 | 'University of Arizona', 209 | 'Arizona State University', 210 | 'Arizona Western College', 211 | 'Bryan University', 212 | 'Central Arizona College', 213 | 'Glendale Community College', 214 | 'Grand Canyon University', 215 | 'Maricopa Community Colleges', 216 | 'Mesa Community College', 217 | 'Northern Arizona University', 218 | 'Northland Pioneer  College', 219 | 'University of Phoenix', 220 | 'Phoenix College', 221 | 'Pima Community College', 222 | 'Prescott College', 223 | 'Rio Salado College', 224 | 'South Mountain Community College', 225 | 'University of Advancing Technology', 226 | 'Yavapai College', 227 | 'Academy of Arts University', 228 | 'Adance Computing Institute', 229 | 'Acupuncture & Integrative Medicine College', 230 | 'Alliant International University', 231 | 'Allied American University', 232 | 'Anaheim University', 233 | 'Angeles College', 234 | 'Antioch University Los Angeles', 235 | 'Argosy University', 236 | 'Art Center College of Design', 237 | 'The Art Institute', 238 | 'Ashford University', 239 | 'ATI College', 240 | 'Antelope Valley College', 241 | 'Bakersfield College', 242 | 'Barstow Community College', 243 | 'Berkeley University of California', 244 | 'Berkeley City College', 245 | 'Brandman University', 246 | 'Butte College', 247 | 'Cabrillo College', 248 | 'California Institute of the Arts', 249 | 'California Baptist University', 250 | 'California Lutheran University', 251 | 'California Miramar University', 252 | 'California Polytechnic State University', 253 | 'California State University', 254 | 'California Institute of Technology', 255 | 'Canada College', 256 | 'College of the Canyons', 257 | 'California College of the Arts', 258 | 'California Community Colleges Chanellors Office', 259 | 'City College of San Francisco', 260 | 'Cerritos College', 261 | 'Cerro Coso Community College', 262 | 'Claremont Graduate University', 263 | 'Chaffey College', 264 | 'Chapman University', 265 | 'California Institute of Integral Studies', 266 | 'Citrus College', 267 | 'The Claremont Colleges', 268 | 'Claremont McKenna College', 269 | 'Copper Mountain College', 270 | 'Cogswell Polytechnical College', 271 | 'College of San Mateo', 272 | 'College of the Desert', 273 | 'El Camino College Compton Center', 274 | 'Contra Costa College', 275 | 'College of the Sequoias', 276 | 'Crafton Hills College', 277 | 'California State University Bakersfield', 278 | 'California State University Channel Islands', 279 | 'California State University Dominguez Hills', 280 | 'California State University East Bay', 281 | 'Fresno State', 282 | 'California State University Long Beach', 283 | 'California State University Monterey Bay', 284 | 'California State University Northridge', 285 | 'California State Polytechnic University Pomona', 286 | 'California State University Sacramento', 287 | 'California State University San Bernardino', 288 | 'California State University San Marcos', 289 | 'California State University Stanislaus', 290 | 'Cuesta College', 291 | 'Cuyamaca College', 292 | 'California Western School of Law San Diego', 293 | 'Cypress College', 294 | 'DeAnza College', 295 | 'San Joaquin Delta College', 296 | 'Dominican University of California', 297 | 'Dominican School of Philosophy and Theology', 298 | 'Diablo Valley College', 299 | 'East Los Angeles College', 300 | 'El Camino College', 301 | 'Expression College', 302 | 'Foothill-De Anza Community College District', 303 | 'Fashion Institute of Design & Merchandising', 304 | 'Fielding Graduate University', 305 | 'Foothill College', 306 | 'Fresno Pacific University', 307 | 'Fresno City College', 308 | 'Frederick Taylor University', 309 | 'Fullerton  College', 310 | 'Fuller Theological Seminary', 311 | 'California State University Fullerton', 312 | 'Gavilan College', 313 | 'Golden Gate Baptist Theological Seminary', 314 | 'Glendale Community College', 315 | 'Gnomon School of Visual Effects', 316 | 'Columbia College', 317 | 'Golden West College', 318 | 'Grossmont College', 319 | 'Allan Hancock College', 320 | 'Hartnell College', 321 | 'Henley-Putnam University', 322 | 'Harvey Mudd College', 323 | 'Holy Names University', 324 | 'Humboldt State University', 325 | 'Humphreys College', 326 | 'Imperial Valley College', 327 | 'International Sports Sciences Association', 328 | 'International Technological University', 329 | 'Irvine Valley College', 330 | 'William Jessup University', 331 | 'John F. Kennedy University', 332 | 'Keck Graduate Institute', 333 | 'Mount Saint Marys College', 334 | 'Los Angeles Community College District', 335 | 'Los Angeles City College', 336 | 'Los Angeles Harbor College', 337 | 'Los Angeles Mission College', 338 | 'Laney  College', 339 | 'Los Angeles Southwest College', 340 | 'La Sierra University', 341 | 'Las Positas College', 342 | 'Los Angeles Trade-Tech Community College', 343 | 'Laurus College', 344 | 'Los Angeles Valley College', 345 | 'University of La Verne', 346 | 'UCLA School of Law', 347 | 'Long Beach City College', 348 | 'Life Chiropractic College West', 349 | 'Loma Linda University', 350 | 'Loyola Marymount University', 351 | 'Los Medanos College', 352 | 'Los Rios Community College District', 353 | 'Lake Tahoe Community College', 354 | 'College of Marin', 355 | 'Marymount California University', 356 | 'The Masters College', 357 | 'Merced Community College', 358 | 'Mills College', 359 | 'MiraCosta College', 360 | 'Modesto Junior College', 361 | 'Mount San Jacinto College', 362 | 'Mount San Antonio College', 363 | 'Napa Valley College', 364 | 'Notre Dame de Namur University', 365 | 'NewSchool of Architecture and Design', 366 | 'Norco College', 367 | 'Naval Postgraduate School', 368 | 'Ohlone College', 369 | 'Orange Coast College', 370 | 'Otis College of Art and Design', 371 | 'Occidental College', 372 | 'University of the Pacific', 373 | 'Pacific College of Oriental Medicine', 374 | 'Palomar College', 375 | 'Pasadena City College', 376 | 'Pepperdine University', 377 | 'Peralta Community College District', 378 | 'Pierce College', 379 | 'Pitzer College', 380 | 'Pacific Lutheran  Theological Seminary', 381 | 'Point Loma Nazarene University', 382 | 'Pomona College', 383 | 'Porterville College', 384 | 'Pacific School of Religion', 385 | 'Riverside City College', 386 | 'Riverside Community College District', 387 | 'University of Redlands', 388 | 'College of the Redwoods', 389 | 'Rio Hondo College', 390 | 'Rosemead College', 391 | 'Santa Ana College', 392 | 'Saddleback College', 393 | 'University of San Diego', 394 | 'Santa Rosa Junior College', 395 | 'Santa Barbara City College', 396 | 'School of Continuing Education', 397 | 'Scripps College', 398 | 'Santa Clara University', 399 | 'Southern California University of Health Sciences', 400 | 'San Diego City College', 401 | 'San Diego Mesa College', 402 | 'San Diego State University', 403 | 'San Francisco State University', 404 | 'Shasta College', 405 | 'The Institute of Buddhist Studies', 406 | 'Sierra College', 407 | 'Simpson University', 408 | 'College of the Siskiyous', 409 | 'San Jose State University', 410 | 'Starr King School for the Ministry', 411 | 'Skyline College', 412 | 'Santa Monica College', 413 | 'San Mateo County Community College', 414 | 'Soka University of America', 415 | 'Solano Community College', 416 | 'Sonoma State University', 417 | 'Stanford University', 418 | 'Saint Marys College', 419 | 'Taft College', 420 | 'Touro University California', 421 | 'University of California Davis', 422 | 'University of California Hastings College of the Law', 423 | 'University of California Irvine', 424 | 'University of California Los Angeles', 425 | 'University of California Los Angeles Extension', 426 | 'University of California Merced', 427 | 'University of California', 428 | 'University of California Press', 429 | 'University of California Riverside', 430 | 'University of California Santa Barbara', 431 | 'University of California Santa Cruz', 432 | 'University of California Santa Cruz Silicon Valley Extension', 433 | 'University of California San Diego', 434 | 'University of California San Francisco', 435 | 'University of California', 436 | 'University of the Pacific', 437 | 'University of Southern California', 438 | 'University of San Francisco', 439 | 'San Bernardino Valley College', 440 | 'Ventura College', 441 | 'Victor Valley College', 442 | 'West Coast Baptist College', 443 | 'Western University of Health Sciences', 444 | 'Westmont College', 445 | 'West Valley College', 446 | 'West Hills Community College District', 447 | 'Whittier College', 448 | 'West Los Angeles College', 449 | 'Yuba Community College District', 450 | 'Yosemite Community College District', 451 | 'Unitek College', 452 | 'Vanguard University', 453 | 'Southwestern College', 454 | 'Monterey Institute of International Studies', 455 | 'Adams State University', 456 | 'Auraria Higher Education Center', 457 | 'Aims Community College', 458 | 'Arapahoe Community College', 459 | 'Community College of Aurora', 460 | 'Community College of Denver', 461 | 'Colorado Heights University', 462 | 'University of Colorado Boulder', 463 | 'Colorado College', 464 | 'Colorado Mesa University', 465 | 'Colorado State University', 466 | 'Colorado State University-Pueblo', 467 | 'University of Denver', 468 | 'Fort Lewis College', 469 | 'Front Range Community College', 470 | 'Jones International University', 471 | 'Colorado School of Mines', 472 | 'Metropolitan State University of Denver', 473 | 'Naropa University', 474 | 'Pikes Peak Community College', 475 | 'Pueblo Community College', 476 | 'Redstone College', 477 | 'Regis University', 478 | 'University of the Rockies', 479 | 'Red Rocks Community College', 480 | 'William Howard Taft University', 481 | 'University Corporation for Atmospheric Research', 482 | 'University of Colorado Colorado Springs', 483 | 'University of Colorado Denver', 484 | 'University of Northern Colorado', 485 | 'University of Colorado', 486 | 'Western State Colorado University', 487 | 'Albertus Magnus College', 488 | 'Asnuntuck Community College', 489 | 'Connecticut College', 490 | 'Eastern Connecticut State University', 491 | 'Fairfield University', 492 | 'Goodwin College', 493 | 'University of Hartford', 494 | 'Hartford Seminary', 495 | 'University of New Haven', 496 | 'Queens University of Charlotte', 497 | 'Quinebaug Valley Community College', 498 | 'Sacred Heart University', 499 | 'Southern Connecticut State University', 500 | 'Three Rivers Community College', 501 | 'Trinity College', 502 | 'Tunxis Community College', 503 | 'University of Connecticut Health Center', 504 | 'University of Connecticut', 505 | 'University of Saint Joseph Connecticut', 506 | 'Western Connecticut State University', 507 | 'Wesleyan University', 508 | 'Yale University', 509 | 'American University', 510 | 'Carnegie Institution for Science', 511 | 'The Catholic University of America', 512 | 'Gallaudet University', 513 | 'Georgetown University', 514 | 'The George Washington University', 515 | 'Howard University', 516 | 'Johns Hopkins School of Advanced International Studies', 517 | 'University of California Washington Center', 518 | 'University of the District of Columbia', 519 | 'Delaware State University', 520 | 'Delaware Technical Community College', 521 | 'Goldey-Beacom College', 522 | 'University of Delaware', 523 | 'Wesley College', 524 | 'Wilmington University', 525 | 'Carlos Albizu University', 526 | 'Acupuncture Massage College', 527 | 'Atlantic Institute of Oriental Medicine', 528 | 'Barry University', 529 | 'Broward College', 530 | 'College of Central Florida', 531 | 'Chipola College', 532 | 'Bethune-Cookman University', 533 | 'Dade Medical College', 534 | 'Daytona State College', 535 | 'Eckerd College', 536 | 'Edison State College', 537 | 'Embry-Riddle Aeronautical University', 538 | 'Everglades University', 539 | 'Florida Atlantic University', 540 | 'Florida Gulf Coast University', 541 | 'Florida Institute of Technology', 542 | 'Florida International University', 543 | 'Flagler College', 544 | 'Florida Southern College', 545 | 'Florida National University', 546 | 'Florida State College at Jacksonville', 547 | 'Florida State University', 548 | 'Gulf Coast State College', 549 | 'Hillsborough Community College', 550 | 'Jacksonville University', 551 | 'Keiser University', 552 | 'Loraines Academy Incorporated', 553 | 'Lake Sumter State College', 554 | 'Lynn University', 555 | 'Millennia Atlantic University', 556 | 'Miami Dade College', 557 | 'University of Miami', 558 | 'Miami International University of Art and Design', 559 | 'New College of Florida', 560 | 'North Florida Community College', 561 | 'Nova Southeastern University', 562 | 'National University of Health Sciences', 563 | 'Northwest Florida State College', 564 | 'Palm Beach State College', 565 | 'Palm Beach Atlantic University', 566 | 'Pensacola State College', 567 | 'Pasco-Hernando State College', 568 | 'Ringling College of Art and Design', 569 | 'Rollins College', 570 | 'Saint Leo University', 571 | 'State College of Florida', 572 | 'Seminole State College of Florida', 573 | 'Santa Fe College', 574 | 'South Florida State College', 575 | 'Space Coast Health Institute', 576 | 'Saint Petersburg College', 577 | 'Stetson University', 578 | 'Saint Thomas University', 579 | 'Saint Vincent de Paul Regional Seminary', 580 | 'Traviss Career Center', 581 | 'University of Central Florida', 582 | 'University of Florida', 583 | 'University of North Florida', 584 | 'University of South Florida', 585 | 'University of South Florida Sarasota-Manatee', 586 | 'University of South Florida Saint Petersburg', 587 | 'University of Tampa', 588 | 'University of West Florida', 589 | 'Valencia College', 590 | 'Warner University', 591 | 'Webber International University', 592 | 'Agnes Scott College', 593 | 'Albany Technical College', 594 | 'Armstrong Atlantic State University', 595 | 'Atlanta Technical College', 596 | 'Atlanta Metropolitan State College', 597 | 'Berry College', 598 | 'Carver College', 599 | 'Child Care Education Institute', 600 | 'Central Georgia Technical College', 601 | 'Clayton State University', 602 | 'Columbus State University', 603 | 'Columbus Technical College', 604 | 'Covenant College', 605 | 'Dalton State', 606 | 'Darton State College', 607 | 'East Georgia State College', 608 | 'Emory University', 609 | 'Georgia Institute of Technology', 610 | 'Georgia College', 611 | 'Georgia Southern University', 612 | 'Georgia Gwinnett College', 613 | 'Georgia Perimeter College', 614 | 'Augusta University', 615 | 'Georgia State University', 616 | 'Georgia South Western State University', 617 | 'Interactive College of Technology', 618 | 'Atlantas John Marshall Law School', 619 | 'Kennesaw State University', 620 | 'Lanier Technical College', 621 | 'Life University', 622 | 'Mercer University', 623 | 'Middle Georgia State College', 624 | 'Morehouse College', 625 | 'Morehouse School of Medicine', 626 | 'North Georgia Technical College', 627 | 'Oglethorpe University', 628 | 'Okefenokee Technical College', 629 | 'Paine College', 630 | 'Pfeiffer University', 631 | 'Piedmont College', 632 | 'Reinhardt University', 633 | 'Savannah State University', 634 | 'Savannah College of Art and Design', 635 | 'Shorter University', 636 | 'Southeastern Technical College', 637 | 'Spelman College', 638 | 'Southern Polytechnic State University', 639 | 'Thomas University', 640 | 'University of Georgia', 641 | 'University of North Georgia', 642 | 'University System of Georgia', 643 | 'Valdosta State University', 644 | 'University of West Georgia', 645 | 'Wiregrass Georgia Technical College', 646 | 'Brigham Young University Hawaii', 647 | 'Chaminade University', 648 | 'University of Hawaii at Manoa', 649 | 'Mid-Pacific Institute', 650 | 'AIB College of Business', 651 | 'Central College', 652 | 'Coe College', 653 | 'Cornell College', 654 | 'Des Moines Area Community College', 655 | 'Dordt College', 656 | 'Drake University', 657 | 'Divine Word College', 658 | 'Eastern Iowa Community Colleges', 659 | 'Grinnell College', 660 | 'Hawkeye Community College', 661 | 'Iowa State University', 662 | 'Iowa Central Community College', 663 | 'Iowa Wesleyan College', 664 | 'Iowa Western Community College', 665 | 'Kaplan University', 666 | 'Kirkwood Community College', 667 | 'La James College', 668 | 'Loras College', 669 | 'Luther College', 670 | 'Maharishi University of Management', 671 | 'Northeast Iowa Community  College', 672 | 'Palmer College of Chiropractic', 673 | 'Saint Ambrose University', 674 | 'Simpson College', 675 | 'Southwestern Community College', 676 | 'Univeristy of Iowa', 677 | 'Upper Iowa University', 678 | 'University of Northern Iowa', 679 | 'Wartburg College', 680 | 'Waldorf College', 681 | 'Boise State University', 682 | 'Brigham Young University Idaho', 683 | 'The College of Idaho', 684 | 'College of Southern Idaho', 685 | 'Idaho State University', 686 | 'University of Idaho', 687 | 'Augustana College', 688 | 'Aurora University', 689 | 'Benedictine University', 690 | 'Bradley University', 691 | 'City Colleges of Chicago', 692 | 'The University of Chicago Booth School of Business', 693 | 'College of Lake County', 694 | 'College of DuPage', 695 | 'Columbia College Chicago', 696 | 'Danville Area Community College', 697 | 'DePaul University', 698 | 'Dominican University', 699 | 'Eastern Illinois University', 700 | 'Elmhurst College', 701 | 'Governors State', 702 | 'Greenville College', 703 | 'The Hadley School for the Blind', 704 | 'Harper College', 705 | 'Heartland Community College', 706 | 'Illinois Central College', 707 | 'Illinois College of Optometry', 708 | 'Illinois Institute of Technology', 709 | 'University of Illinois at Urbana-Champaign', 710 | 'Illinois State University', 711 | 'Illinois Mathematics and Science Academy', 712 | 'Illinois Valley Community College', 713 | 'Illinois Wesleyan University', 714 | 'John A. Logan College', 715 | 'Joliet Junior College', 716 | 'The John Marshall Law School', 717 | 'Judson University', 718 | 'Kaskaskia College', 719 | 'Kankakee Community College', 720 | 'IIT Chicago-Kent College of Law', 721 | 'Kishwaukee College', 722 | 'Knox College', 723 | 'Lake Forest College', 724 | 'Lakeview College of Nursing', 725 | 'Lewis and Clark Community College', 726 | 'Lewis University', 727 | 'Lincoln Land Community College', 728 | 'Loyola University Chicago', 729 | 'Midwestern Career College', 730 | 'McHenry County College', 731 | 'McKendree University', 732 | 'Midwestern University', 733 | 'Monmouth College', 734 | 'Moraine Valley Community College', 735 | 'Morton College', 736 | 'Northeastern Illinois University', 737 | 'Northern Illinois University', 738 | 'National Louis University', 739 | 'North Park University', 740 | 'Northwestern University', 741 | 'Oakton Community College', 742 | 'Olivet Nazarene University', 743 | 'Chicago ORT Technical Institute', 744 | 'Parkland College', 745 | 'Prairie State College', 746 | 'Principia College', 747 | 'Resurrection University', 748 | 'Robert Morris University Illinois', 749 | 'Rockford University', 750 | 'Rock Valley College', 751 | 'Roosevelt University', 752 | 'Rosalind Franklin University', 753 | 'Saint Anthony College of Nursing', 754 | 'School of the Art Institute of Chicago', 755 | 'Saint Francis Medical Center College of Nursing', 756 | 'Shawnee Community College', 757 | 'Southeastern Illinois College', 758 | 'Southern Illinois University', 759 | 'Southern Illinois University Edwardsville', 760 | 'Spoon River College', 761 | 'South Suburban College', 762 | 'University of Saint Francis', 763 | 'Southwestern Illinois College', 764 | 'Saint Xavier University', 765 | 'Trinity Christian College', 766 | 'University of Chicago', 767 | 'University of Illinois at Chicago', 768 | 'University of Illinois', 769 | 'University of Illinois Springfield', 770 | 'University of Illinois at Urbana-Champaign', 771 | 'Waubonsee Community College', 772 | 'Wheaton College', 773 | 'Western Illinois University', 774 | 'Saint Johns College', 775 | 'Anabaptist Mennonite Biblical Seminary', 776 | 'Anderson University', 777 | 'Bethel College Indiana', 778 | 'Brown Mackie College', 779 | 'Ball State University', 780 | 'Butler University', 781 | 'DePauw University', 782 | 'Earlham College', 783 | 'University of Evansville', 784 | 'Goshen College', 785 | 'Grace College and Seminary', 786 | 'Hanover College', 787 | 'Harrison College', 788 | 'Holy Cross College', 789 | 'Indiana University', 790 | 'Indiana State University', 791 | 'Indiana Wesleyan University', 792 | 'Indiana University – Purdue University Fort Wayne', 793 | 'Indiana University', 794 | 'Indiana University Bloomington', 795 | 'Indiana University East', 796 | 'Indiana University Northwest', 797 | 'Indiana University – Purdue University Indianapolis', 798 | 'Indiana University Southeast', 799 | 'Indiana University South Bend', 800 | 'Ivy Tech Community College', 801 | 'Manchester University', 802 | 'Marian University Indianapolis', 803 | 'University of Notre Dame', 804 | 'Oakland City University', 805 | 'Purdue University North Central', 806 | 'Purdue University', 807 | 'Purdue University Calumet', 808 | 'Rose-Hulman Institute of Technology', 809 | 'Saint Marys College', 810 | 'Trine University', 811 | 'University of Indianapolis', 812 | 'University of Southern Indiana', 813 | 'Valparaiso University', 814 | 'Wabash College', 815 | 'Benedictine College', 816 | 'Butler Community College', 817 | 'Emporia State University', 818 | 'Fort Hays State University', 819 | 'Flint Hills Technical College', 820 | 'Fort Scott Community College', 821 | 'Garden City Community College', 822 | 'Hesston College', 823 | 'Highland Community College', 824 | 'Johnson County Community College', 825 | 'Kansas City Kansas Community College', 826 | 'Kansas State University', 827 | 'The University of Kansas', 828 | 'McPherson College', 829 | 'Neosho County Community College', 830 | 'Newman University', 831 | 'Pittsburg State University', 832 | 'Saint Paul School of Theology and Ministry', 833 | 'Sterling College', 834 | 'University of Saint Mary', 835 | 'Washburn University', 836 | 'Washburn University School of Law', 837 | 'Wichita State University', 838 | 'Asbury University', 839 | 'Bellarmine University', 840 | 'Berea College', 841 | 'Centre College', 842 | 'Eastern Kentucky University', 843 | 'Frontier Nursing University', 844 | 'Georgetown College', 845 | 'Kentucky Community and Technical College System', 846 | 'Kentucky Christian University', 847 | 'Kentucky State University', 848 | 'Lindsey Wilson College', 849 | 'The University of Louisville', 850 | 'Midway College', 851 | 'Morehead State University', 852 | 'Murray State University', 853 | 'Northern Kentucky University', 854 | 'The Southern Baptist Theological Seminary', 855 | 'Saint Catharine College', 856 | 'Sullivan University', 857 | 'University of the Cumberlands', 858 | 'Western Kentucky University', 859 | 'Bossier Parish Community College', 860 | 'Centenary College of Louisiana', 861 | 'Louisiana Tech University', 862 | 'Louisiana Culinary Institute', 863 | 'University of Louisiana Lafayette', 864 | 'Loyola University New Orleans', 865 | 'Louisiana State University', 866 | 'Louisiana State University – Eunice', 867 | 'LSU Health Sciences Center – New Orleans', 868 | 'LSU Health Sciences Center – New Orleans', 869 | 'Louisiana State University System', 870 | 'Nicholls State University', 871 | 'New Orleans Baptist Theological Seminary', 872 | 'Nunez Community College', 873 | 'Southeastern Louisiana University', 874 | 'Southern University', 875 | 'Tulane University', 876 | 'University of Louisiana at Monroe', 877 | 'University of New Orleans', 878 | 'Xavier University of Louisiana', 879 | 'Amherst College', 880 | 'Assumption College', 881 | 'Babson College', 882 | 'Boston College', 883 | 'Bentley University', 884 | 'Berklee College of Music', 885 | 'Berkshire Community College', 886 | 'The Boston Conservatory', 887 | 'Brandeis University', 888 | 'Bridgewater State University', 889 | 'Boston University', 890 | 'Cambridge College', 891 | 'Clark University', 892 | 'Curry College', 893 | 'Elms College', 894 | 'Emerson College', 895 | 'Emmanuel College', 896 | 'Endicott College', 897 | 'Fitchburg State University', 898 | 'Framingham State University', 899 | 'Gordon Conwell Theological Seminary', 900 | 'Gordon College', 901 | 'Hampshire College', 902 | 'Harvard University', 903 | 'Harvard Business School', 904 | 'College of the Holy Cross', 905 | 'Lesley University', 906 | 'Massachusetts Maritime Academy', 907 | 'Massachusetts Department of Higher Education', 908 | 'Massachusetts College of Art and Design', 909 | 'MassBay Community College', 910 | 'Marine Biological Laboratory', 911 | 'Merrimack Education Center', 912 | 'Merrimack College', 913 | 'MGH Institute of Health Professions', 914 | 'Milton Academy', 915 | 'Massachusetts Institute of Technology', 916 | 'Montserrat College of Art', 917 | 'Mount Ida College', 918 | 'Mount Holyoke College', 919 | 'Middlesex Community College', 920 | 'Middlesex School', 921 | 'North Bennet Street School', 922 | 'New England Law – Boston', 923 | 'Northeastern University', 924 | 'Olin College of Engineering', 925 | 'Salem State University', 926 | 'Simmons College', 927 | 'Smith College', 928 | 'Spa Tech Institute', 929 | 'Springfield College', 930 | 'Springfield Technical Community College', 931 | 'Suffolk University', 932 | 'Boston Architectural College', 933 | 'Tufts University', 934 | 'University of Massachusetts Amherst', 935 | 'University of Massachusetts Dartmouth', 936 | 'University of Massachusetts Medical School', 937 | 'University of Massachusetts', 938 | 'University of Massachusetts Boston', 939 | 'University of Massachusetts Lowell', 940 | 'Wellesley College', 941 | 'Wheaton College, Norton', 942 | 'Wheelock College', 943 | 'Williams College', 944 | 'Western New England University', 945 | 'Worcester State University', 946 | 'Worcester Polytechnic Institute', 947 | 'Anne Arundel Community College', 948 | 'Baltimore City Community College', 949 | 'Bowie State University', 950 | 'Carroll Community College', 951 | 'The Community College of Baltimore County', 952 | 'Chesapeake College', 953 | 'Coppin State University', 954 | 'College of Southern Maryland', 955 | 'Frederick Community College', 956 | 'Frostburg State University', 957 | 'Garrett College', 958 | 'Goucher College', 959 | 'Hagerstown Community  College', 960 | 'Harford Community College', 961 | 'Hood College', 962 | 'Howard Community College', 963 | 'Johns Hopkins Bloomberg School of Public Health', 964 | 'Johns Hopkins University', 965 | 'Loyola University Maryland', 966 | 'Montgomery Blair High School', 967 | 'McDaniel College', 968 | 'Maryland Institute College of Art', 969 | 'Montgomery College', 970 | 'Mount Saint Marys University', 971 | 'Maryland University of Integrative Health', 972 | 'Prince Georges Community College', 973 | 'Salisbury University', 974 | 'Sojourner-Douglass College', 975 | 'Saint Marys College of Maryland', 976 | 'Saint James School', 977 | 'Towson University', 978 | 'University of  Baltimore', 979 | 'University of Maryland', 980 | 'University of  Maryland Baltimore County', 981 | 'University of Maryland', 982 | 'University of Maryland University College', 983 | 'University System of Maryland', 984 | 'United States Naval Academy', 985 | 'Washington College', 986 | 'Wor-Wic Community College', 987 | 'Saint Johns College', 988 | 'Bates College', 989 | 'Bowdoin College', 990 | 'Central Maine Community College', 991 | 'College of the Atlantic', 992 | 'Colby College', 993 | 'Husson University', 994 | 'Maine Maritime Academy', 995 | 'Northern Maine Community College', 996 | 'Saint Josephs College', 997 | 'Southern Maine Community College', 998 | 'University of Maine', 999 | 'University of Maine Fort Kent', 1000 | 'University of Maine at Presque Isle', 1001 | 'University of New England', 1002 | 'Unity College', 1003 | 'York County Community College', 1004 | 'University of Main at Augusta', 1005 | 'Adrian College', 1006 | 'Albion College', 1007 | 'Alma College', 1008 | 'Alpena Community College', 1009 | 'Andrews University', 1010 | 'Aquinas College', 1011 | 'Baker College', 1012 | 'Bay College', 1013 | 'Calvin College', 1014 | 'Central Michigan University', 1015 | 'College for Creative Studies', 1016 | 'Cornerstone University', 1017 | 'Davenport University', 1018 | 'Delta College', 1019 | 'Douglas J. Aveda Institute', 1020 | 'Eastern Michigan University', 1021 | 'Ferris State University', 1022 | 'Finlandia University', 1023 | 'Grand Rapids Community College', 1024 | 'Grand Valley State University', 1025 | 'Henry Ford College', 1026 | 'Hillsdale College', 1027 | 'Hope College', 1028 | 'Jackson College', 1029 | 'Kettering University', 1030 | 'Kalamazoo Valley Community College', 1031 | 'Kalamazoo College', 1032 | 'Lake Michigan College', 1033 | 'Lansing Community College', 1034 | 'Lake Superior State University', 1035 | 'Lawrence Technological University', 1036 | 'Macomb Community College', 1037 | 'Marygrove College', 1038 | 'Monroe County Community College', 1039 | 'Michigan State University', 1040 | 'Michigan Technological University', 1041 | 'Northwestern Michigan College', 1042 | 'Northern Michigan University', 1043 | 'Oakland Univeristy', 1044 | 'Oakland Community College', 1045 | 'Saginaw Chippewa Tribal College', 1046 | 'Saginaw Valley State University', 1047 | 'University of Detroit Mercy', 1048 | 'University of Michigan-Flint', 1049 | 'University of Michigan', 1050 | 'Wayne State', 1051 | 'Washtenaw Community College', 1052 | 'Western Michigan University', 1053 | 'Alexandria Technical & Community College', 1054 | 'Anoka-Ramsey Community College', 1055 | 'Augsburg College', 1056 | 'Bemidji State University', 1057 | 'Bethel University', 1058 | 'Carleton College', 1059 | 'Century College', 1060 | 'Central Lakes College', 1061 | 'Concordia College', 1062 | 'Crown College', 1063 | 'College of Saint Benedict, Saint Johns University', 1064 | 'Concordia University Saint Paul', 1065 | 'The College of Saint Scholastica', 1066 | 'Dakota County Technical College', 1067 | 'Gustavus Adolphus College', 1068 | 'Globe University', 1069 | 'Hamline University', 1070 | 'Inver Hills Community College', 1071 | 'Institute of Production and Recording', 1072 | 'Leech Lake Tribal College', 1073 | 'Luther Seminary', 1074 | 'Macalester College', 1075 | 'McNally Smith College of Music', 1076 | 'Mesabi Range College', 1077 | 'Metropolitan State University', 1078 | 'Minnesota State University Moorhead', 1079 | 'Minnesota State University Mankato', 1080 | 'North Hennepin Community College', 1081 | 'Normandale Community College', 1082 | 'Rasmussen College', 1083 | 'Ridgewater College', 1084 | 'Southwest Minnesota State University', 1085 | 'Saint Marys University of Minnesota', 1086 | 'South Central College', 1087 | 'Saint Cloud State  University', 1088 | 'Saint Olaf College', 1089 | 'University of Saint Thomas', 1090 | 'University of Minnesota', 1091 | 'United Theological Seminary of the Twin Cities', 1092 | 'University of Northwestern Saint Paul', 1093 | 'Walden University', 1094 | 'Winona State Unviversity', 1095 | 'Assemblies of God Theological Seminary', 1096 | 'Aquinas Institute of Theology', 1097 | 'A.T. Still University', 1098 | 'Avila University', 1099 | 'Columbia College', 1100 | 'Central Methodist University', 1101 | 'Crowder College', 1102 | 'Culver-Stockton College', 1103 | 'Drury University', 1104 | 'Evangel University', 1105 | 'Fontbonne University', 1106 | 'Hannibal-LaGrange', 1107 | 'Harris-Stowe State University', 1108 | 'Jefferson College', 1109 | 'Kansas City University of Medicine and Biosciences', 1110 | 'Lincoln University', 1111 | 'Lindenwood University', 1112 | 'Linn State Technical College', 1113 | 'Maryville University', 1114 | 'Metropolitan Community College', 1115 | 'Mineral Area College', 1116 | 'Mizzou University of Missouri', 1117 | 'Missouri State University', 1118 | 'Missouri Valley College', 1119 | 'Missouri Southern State  University', 1120 | 'Missouri University of Science and Technology', 1121 | 'North Central Missouri College', 1122 | 'Nazarene Theological Seminary', 1123 | 'Northwest Missouri State University', 1124 | 'Ozarks Technical Community College', 1125 | 'Park University', 1126 | 'Rockhurst University', 1127 | 'Southwest Baptist University', 1128 | 'South Central Career Center', 1129 | 'Southeast Missouri State University', 1130 | 'Saint Louis University', 1131 | 'Saint Charles Community College', 1132 | 'Saint Louis Community College', 1133 | 'Truman State University', 1134 | 'University of Central Missouri', 1135 | 'University of Missouri Kansas City', 1136 | 'University of Missouri Saint Louis', 1137 | 'University of Missouri System', 1138 | 'Webster University', 1139 | 'Westminster College, Missouri', 1140 | 'Washington University in Saint Louis', 1141 | 'Alcorn State University', 1142 | 'Belhaven University', 1143 | 'Delta State University', 1144 | 'East Mississippi Community College', 1145 | 'Jackson State University', 1146 | 'Mississippi Gulf Coast Community College', 1147 | 'Mississippi State University', 1148 | 'Northeast Mississippi Community College', 1149 | 'The University of Mississippi', 1150 | 'Pearl River Community College', 1151 | 'Reformed Theological Seminary', 1152 | 'University of Mississippi Medical Center', 1153 | 'University of Southern Mississippi', 1154 | 'William Carey University', 1155 | 'Itawamba Community College', 1156 | 'Blackfeet Community College', 1157 | 'Carroll College', 1158 | 'Fort Peck Community College', 1159 | 'Flathead Valley Community College', 1160 | 'Miles Community College', 1161 | 'Montana State University', 1162 | 'Montana State University Billings', 1163 | 'Montana State University – Northern', 1164 | 'Montana Tech of the University of Montana', 1165 | 'Montana University System', 1166 | 'Rocky Mountain College', 1167 | 'University of Montana Helena College', 1168 | 'University of Montana', 1169 | 'University of Montana Western', 1170 | 'Asheville-Buncombe Technical Community College', 1171 | 'Alamance Community College', 1172 | 'Appalachian State University', 1173 | 'Bladen Community College', 1174 | 'Body Therapy Institute', 1175 | 'Campbell University', 1176 | 'Cape Fear Community College', 1177 | 'Charlotte School of Law', 1178 | 'Chowan University', 1179 | 'Central Piedmont Community College', 1180 | 'Craven Community College', 1181 | 'Davidson College', 1182 | 'Duke University', 1183 | 'Durham Technical Community College', 1184 | 'Elizabeth City State University', 1185 | 'East Carolina University', 1186 | 'Elon University', 1187 | 'Fayetteville Technical Community College', 1188 | 'Forsyth Technical Community College', 1189 | 'Gardner-Webb University', 1190 | 'Gaston College', 1191 | 'Guilford Technical Community College', 1192 | 'Heritage Bible College', 1193 | 'High Point University', 1194 | 'Isothermal Community College', 1195 | 'Lenoir Community College', 1196 | 'Lees McRae College', 1197 | 'Methodist University', 1198 | 'The University of Mount Olive', 1199 | 'Montgomery Community College', 1200 | 'North Carolina Central University', 1201 | 'North Carolina School of Science and Mathematics', 1202 | 'North Carolina State University', 1203 | 'North Carolina Wesleyan College', 1204 | 'New Life Theological Seminary', 1205 | 'University of North Carolina', 1206 | 'Piedmont Community College', 1207 | 'Pitt Community College', 1208 | 'Queens University of Charlotte', 1209 | 'Randolph Community College', 1210 | 'Roanoke-Chowan Community College', 1211 | 'Salem College', 1212 | 'Sampson Community College', 1213 | 'Sandhills Community College', 1214 | 'Saint Andrews University', 1215 | 'Southeastern Community College', 1216 | 'Southeastern Baptist Theological Seminary', 1217 | 'Shaw University', 1218 | 'Southwestern Community College', 1219 | 'South Piedmont Community College', 1220 | 'Stanly Community College', 1221 | 'Saint Augustines University', 1222 | 'University of North Carolina at Chapel Hill', 1223 | 'University of North Carolina Asheville', 1224 | 'University of North Carolina Charlotte', 1225 | 'University of North Carolina Greensboro', 1226 | 'University of North Carolina Pembroke', 1227 | 'University of North Carolina School of the Arts', 1228 | 'University of North Carolina Wilmington', 1229 | 'Vance-Granville Community College', 1230 | 'Wake Technical Community College', 1231 | 'Warren Wilson College', 1232 | 'Western Carolina University', 1233 | 'Wake Forest University', 1234 | 'Western Piedmont Community College', 1235 | 'Winston-Salem State University', 1236 | 'Dakota College at Bottineau', 1237 | 'Mayville State University', 1238 | 'Minot State University', 1239 | 'North Dakota State University', 1240 | 'North Dakota University System', 1241 | 'Turtle Mountain Community College', 1242 | 'University of North Dakota', 1243 | 'United Tribes Technical College', 1244 | 'Valley City State University', 1245 | 'Williston State College', 1246 | 'Bellevue University', 1247 | 'Bryan College of Health Sciences', 1248 | 'Creighton University', 1249 | 'Chadron State College', 1250 | 'Concordia University Nebraska', 1251 | 'Josephs College', 1252 | 'Little Priest Tribal College', 1253 | 'Mid-Plains Community College', 1254 | 'University of Nebraska', 1255 | 'Northeast Community College', 1256 | 'Union College', 1257 | 'University of Nebraska at Kearney', 1258 | 'University of Nebraska at Lincoln', 1259 | 'University of Nebraska Medical Center', 1260 | 'University of Nebraska Omaha', 1261 | 'Wayne State College', 1262 | 'Saint Anselm College', 1263 | 'Antioch University New England', 1264 | 'Community College System of New Hampshire', 1265 | 'Colby Sawyer College', 1266 | 'Dartmouth College', 1267 | 'Phillips Exeter Academy', 1268 | 'Granite State College', 1269 | 'Keene State College', 1270 | 'Manchester Community College', 1271 | 'Mount Washington College', 1272 | 'Nashua Community College', 1273 | 'New England College', 1274 | 'NHTI Concords Community College', 1275 | 'Plymouth State University', 1276 | 'Rivier University', 1277 | 'Southern New Hampshire University', 1278 | 'University of New Hampshire', 1279 | 'White Mountains Community College', 1280 | 'Atlantic Cape Community College', 1281 | 'Burlington County College', 1282 | 'Bergen Community College', 1283 | 'Brookdale Community College', 1284 | 'Centenary College of New Jersey', 1285 | 'Drew University', 1286 | 'Eastwick College', 1287 | 'Fairleigh Dickinson University', 1288 | 'Felician College', 1289 | 'Fortis Institute', 1290 | 'Georgian Court University', 1291 | 'Kean University', 1292 | 'Mercer County Community  College', 1293 | 'Middlesex County College', 1294 | 'Monmouth University', 1295 | 'Montclair State University', 1296 | 'New Jersey City University', 1297 | 'New Jersey Institute of Technology', 1298 | 'Ocean County College', 1299 | 'Princeton University', 1300 | 'Princeton Theological Seminary', 1301 | 'Ramapo College of New Jersey', 1302 | 'Raritan Valley Community College', 1303 | 'Rider University', 1304 | 'Rowan University', 1305 | 'Rutgers University', 1306 | 'Seton Hall University', 1307 | 'Stenotech Career Institute', 1308 | 'Stevens Institute of Technology', 1309 | 'Stockton College', 1310 | 'Sussex County Community College', 1311 | 'The College of New Jersey', 1312 | 'Thomas Edison State College', 1313 | 'William Paterson University', 1314 | 'County College of Morris', 1315 | 'Camden County College', 1316 | 'Passaic County Community College', 1317 | 'Ross University', 1318 | 'Central New Mexico', 1319 | 'Eastern New Mexico University', 1320 | 'New Mexico Highlands University', 1321 | 'New Mexico State University', 1322 | 'New Mexico State University Alamogordo', 1323 | 'New Mexico Institute of Mining and Technology', 1324 | 'Northern New Mexico College', 1325 | 'San Juan College', 1326 | 'Southwestern College', 1327 | 'Univeristy of New Mexico', 1328 | 'University of the Southwest', 1329 | 'College of Southern Nevada', 1330 | 'Great Basin College', 1331 | 'Pima Medical Institute', 1332 | 'Sierra Nevada College', 1333 | 'Truckee Meadows Community College', 1334 | 'University of Nevada Las Vegas', 1335 | 'University of Nevada Reno', 1336 | 'Western Nevada College', 1337 | 'Adelphi University', 1338 | 'University at Albany', 1339 | 'Alfred University', 1340 | 'The American Musical and Dramatic Academy', 1341 | 'ASA College', 1342 | 'Bard College', 1343 | 'Barnard College', 1344 | 'Binghamton University', 1345 | 'The College at Brockport', 1346 | 'University at Buffalo', 1347 | 'Buffalo State University', 1348 | 'Cazenovia College', 1349 | 'Clarkson University', 1350 | 'Clinton Community College', 1351 | 'The College of New Rochelle', 1352 | 'Cobleskill University', 1353 | 'Colgate University', 1354 | 'Columbia University in the City of New York', 1355 | 'Concordia College New York', 1356 | 'The Cooper Union', 1357 | 'Cornell University', 1358 | 'Cortland College', 1359 | 'The City University of New York', 1360 | 'The College of Westchester', 1361 | 'Daemen College', 1362 | 'Dominican College', 1363 | 'Delhi State University of New York', 1364 | 'Dowling College', 1365 | 'DYouville College', 1366 | 'Erie Community College State University of New York', 1367 | 'Elim Bible Institute', 1368 | 'Elmira College', 1369 | 'Empire State College', 1370 | 'College of Environmental Science and Forestry', 1371 | 'Farmingdale State College', 1372 | 'Fashion Institute of Technology', 1373 | 'Finger Lakes Community College', 1374 | 'Fordham University', 1375 | 'Fredonia University', 1376 | 'Five Towns College', 1377 | 'Geneseo University', 1378 | 'Globe Institute of Technology', 1379 | 'The General Theological Seminary', 1380 | 'Hamilton College', 1381 | 'Hartwick College', 1382 | 'Herkimer College', 1383 | 'Hofstra University', 1384 | 'Hudson Valley Community College', 1385 | 'Hobart and William Smith Colleges', 1386 | 'Institute of Design and Construction', 1387 | 'Iona College', 1388 | 'Ithaca College', 1389 | 'The Jewish Theological Seminary', 1390 | 'The Juilliard School', 1391 | 'Keuka College', 1392 | 'Lehman College', 1393 | 'Le Moyne', 1394 | 'Lim College', 1395 | 'Long Island University', 1396 | 'Manhattan College', 1397 | 'Marist College', 1398 | 'Metropolitan College of New York', 1399 | 'Mercy College', 1400 | 'Marymount Manhattan College', 1401 | 'Monroe Community College', 1402 | 'Morrisville State College', 1403 | 'Mount Saint Marry College', 1404 | 'Icahn School of Medicine at Mount Sinai', 1405 | 'Manhattanville College', 1406 | 'Nazareth College', 1407 | 'Nassau Community College', 1408 | 'New Paltz', 1409 | 'The New School', 1410 | 'Niagara University', 1411 | 'Nyack College', 1412 | 'New York College of Health Professions', 1413 | 'New York Film Academy', 1414 | 'New York Institute of Technology', 1415 | 'New York University', 1416 | 'State University of New York at Oneonta', 1417 | 'State University of New York at Oswego', 1418 | 'Pace University', 1419 | 'Paul Smiths College', 1420 | 'State University of New York at Plattsburgh', 1421 | 'State University of New York at Potsdam', 1422 | 'Pratt Institute', 1423 | 'Purchase College', 1424 | 'Rochester Institute of Technology', 1425 | 'Roberts Wesleyan College', 1426 | 'University of Rochester', 1427 | 'Rensselaer Polytechnic Institute', 1428 | 'The Sages Colleges', 1429 | 'Saint Bonaventure University', 1430 | 'The New York Conservatory for Dramatic Arts', 1431 | 'Siena College', 1432 | 'Saint John Fisher College', 1433 | 'Skidmore College', 1434 | 'Sarah Lawrence College', 1435 | 'Saint Bernards School of Theology and Ministry', 1436 | 'Saint Johns University', 1437 | 'Saint Lawrence University', 1438 | 'Stony Brook University', 1439 | 'Stony Brook Medicine', 1440 | 'The College of Saint Rose', 1441 | 'State University of New York', 1442 | 'State University of New York at Adirondack', 1443 | 'State University of New Institute of Technology', 1444 | 'Jamestown Community College', 1445 | 'Orange County Community College', 1446 | 'Rockland Community College', 1447 | 'Suffolk County Community College', 1448 | 'Westchester Community College', 1449 | 'Syracuse University', 1450 | 'Tompkins Cortland Community College', 1451 | 'The Touro College and University System', 1452 | 'Touro College Jacob D. Fuchsberg Law Center', 1453 | 'Union College', 1454 | 'Upstate  Medical University', 1455 | 'United States Military Academy West Point', 1456 | 'Utica College', 1457 | 'Vassar College', 1458 | 'Wagner College', 1459 | 'Wells College', 1460 | 'Yeshiva University', 1461 | 'Canton State University of New York', 1462 | 'Excelsior College', 1463 | 'Culinary Institute of America', 1464 | 'Ashland University', 1465 | 'Aultman College of Nursing and Health Sciences', 1466 | 'Belmont College', 1467 | 'Bowling Green State University', 1468 | 'Baldwin Wallace University', 1469 | 'Capital University', 1470 | 'Case Western Reserve University', 1471 | 'Cincinnati College of Mortuary Science', 1472 | 'Cedarville University', 1473 | 'Central State University', 1474 | 'Cincinnati State Technical and Community College', 1475 | 'Central Ohio Technical College', 1476 | 'Columbus State Community College', 1477 | 'Cleveland State University', 1478 | 'Western Reserve University', 1479 | 'Defiance College', 1480 | 'Denison University', 1481 | 'The University of Findlay', 1482 | 'Franklin University', 1483 | 'Heidelberg University', 1484 | 'Hiram College', 1485 | 'Hocking College', 1486 | 'John Carroll University', 1487 | 'Kettering College', 1488 | 'Kent State University', 1489 | 'Kenyon College', 1490 | 'Lakeland Community College', 1491 | 'Lima Central Catholic High School', 1492 | 'Lorain County Community College', 1493 | 'Malone University', 1494 | 'Marietta College', 1495 | 'Miami University', 1496 | 'University of Mount Union', 1497 | 'Mount Saint Joseph University', 1498 | 'Muskingum University', 1499 | 'Mount Vernon Nazarene University', 1500 | 'North Central State College', 1501 | 'Oberlin College and Conservatory', 1502 | 'Ohio University', 1503 | 'Ohio Dominican University', 1504 | 'Ohio State University', 1505 | 'Ohio Northern University', 1506 | 'Otterbein University', 1507 | 'Owens Community College', 1508 | 'Ohio Wesleyan University', 1509 | 'University of Rio  Grande', 1510 | 'Shawnee State University', 1511 | 'Sinclair Community College', 1512 | 'Tiffin University', 1513 | 'Cuyahoga Community College', 1514 | 'The University of Akron', 1515 | 'University of Cincinnati', 1516 | 'University of Cincinnati Blue Ash', 1517 | 'University of Cincinnati Clermont', 1518 | 'University of Dayton', 1519 | 'Urbana University', 1520 | 'Ursuline College', 1521 | 'University of Toledo', 1522 | 'Walsh University', 1523 | 'Wilmington College', 1524 | 'Wittenberg University', 1525 | 'The College of Wooster', 1526 | 'Wright State University', 1527 | 'Xavier University', 1528 | 'Youngstown State University', 1529 | 'Ohio State University', 1530 | 'Cameron University', 1531 | 'Connors State College', 1532 | 'East  Central University', 1533 | 'Langston University', 1534 | 'Mid-America Christian University', 1535 | 'Meridian Technology Center', 1536 | 'Northeastern State University', 1537 | 'Northwestern Oklahoma State University', 1538 | 'Oklahoma Christian University', 1539 | 'Oklahoma City Community College', 1540 | 'Oklahoma City University', 1541 | 'Oklahoma State University', 1542 | 'Oral Roberts University', 1543 | 'Oklahoma State University Institue of Technology', 1544 | 'Oklahoma State University', 1545 | 'The University of Oklahoma', 1546 | 'The University of Oklahoma Health Sciences Center', 1547 | 'Rose State College', 1548 | 'Rogers State University', 1549 | 'Southeastern Oklahoma State University', 1550 | 'Southwestern Christian University', 1551 | 'Southwestern Oklahoma State Univeristy', 1552 | 'Tulsa Community College', 1553 | 'University of Central Oklahoma', 1554 | 'University of Science and Arts of Oklahoma', 1555 | 'University of Tulsa', 1556 | 'Western Oklahoma State College', 1557 | 'Blue Mountain Community College', 1558 | 'Clatsop Community College', 1559 | 'Central Oregon Community College', 1560 | 'Columbia School of English', 1561 | 'Concordia University Portland Oregon', 1562 | 'Eastern Oregon University', 1563 | 'George Fox University', 1564 | 'Lane Community College', 1565 | 'Lewis and Clark', 1566 | 'Linfield College', 1567 | 'Linn-Benton Community College', 1568 | 'Marylhurst University', 1569 | 'National College of Natural Medicine', 1570 | 'Oregon Health and Science University', 1571 | 'Oregon State University', 1572 | 'Pacific University Oregon', 1573 | 'Portland Community College', 1574 | 'Portland State University', 1575 | 'Reed College', 1576 | 'Rogue Community College', 1577 | 'Southwestern Oregon Community  College', 1578 | 'Southern Oregon University', 1579 | 'University of Oregon', 1580 | 'University of Portland', 1581 | 'Warner Pacific College', 1582 | 'Willamette University', 1583 | 'Western Oregon University', 1584 | 'Allegheny College', 1585 | 'Alvernia University', 1586 | 'Arcadia University', 1587 | 'Baptist Bible College & Seminary', 1588 | 'Butler County Community College', 1589 | 'Bloomsburg University', 1590 | 'Bryn Mawr College', 1591 | 'Bucknell University', 1592 | 'Bucks County Community College', 1593 | 'California University of Pennsylvania', 1594 | 'Carlow University', 1595 | 'Community College of Allegheny County', 1596 | 'Community College of Philadelphia', 1597 | 'Cedar Crest College', 1598 | 'Chatham University', 1599 | 'Chestnut Hill College', 1600 | 'Clarion University', 1601 | 'Carnegie Mellon University', 1602 | 'Delaware County Community College', 1603 | 'Delaware Valley College', 1604 | 'Dickinson College', 1605 | 'Drexel University', 1606 | 'Drexel University College of Medicine', 1607 | 'Duquesne University', 1608 | 'Eastern University', 1609 | 'Edinboro University', 1610 | 'Elizabethtown College', 1611 | 'Evangelical Seminary', 1612 | 'Franklin & Marshall College', 1613 | 'Saint Francis University', 1614 | 'Grove City College', 1615 | 'Geneva College', 1616 | 'Gettysburg College', 1617 | 'Harrisburg Area Community College', 1618 | 'Haverford College', 1619 | 'Holy Family University', 1620 | 'Indiana University of Pennsylvania', 1621 | 'Thomas Jefferson University', 1622 | 'Juniata College', 1623 | 'Keystone College', 1624 | 'Kings College', 1625 | 'Kutztown University', 1626 | 'Lackawanna College', 1627 | 'Lafayette College', 1628 | 'Lancaster County Career and Technology Center', 1629 | 'Lancaster Theological Seminary', 1630 | 'La Roche College', 1631 | 'La Salle University', 1632 | 'Lehigh Carbon Community College', 1633 | 'Lake Erie College of Osteopathic Medicine', 1634 | 'Lehigh University', 1635 | 'Lock Haven University', 1636 | 'The Lincoln University', 1637 | 'Lansdale School of Business', 1638 | 'Lebanon Valley College', 1639 | 'Lycoming College', 1640 | 'Manor College', 1641 | 'Mansfield University', 1642 | 'Marywood University', 1643 | 'Montgomery County Community College', 1644 | 'Mercyhurst University', 1645 | 'Messiah College', 1646 | 'Millersville University', 1647 | 'Misericordia University', 1648 | 'Moravian College', 1649 | 'Mount Aloysius College', 1650 | 'Muhlenberg College', 1651 | 'Neumann University', 1652 | 'Northampton Community College', 1653 | 'Pennsylvania Gunsmith School', 1654 | 'Philadelphia College of Osteopathic Medicine', 1655 | 'Pennsylvania College of Technology', 1656 | 'Philadelphia University', 1657 | 'University of Pittsburgh', 1658 | 'Penn State University', 1659 | 'Reading Area Community College', 1660 | 'Robert Morris University', 1661 | 'Saint Vincent Seminary', 1662 | 'Salus University', 1663 | 'The University of Scranton', 1664 | 'Shippensburg University', 1665 | 'Saint Josephs University', 1666 | 'Slippery Rock University', 1667 | 'Saint Vincent College', 1668 | 'Susquehanna University', 1669 | 'Swarthmore College', 1670 | 'Temple University', 1671 | 'The  American College of Financial Services', 1672 | 'Thiel College', 1673 | 'University of the Arts', 1674 | 'University of Pennsylvania', 1675 | 'University of the Sciences in Philadelphia', 1676 | 'Valley Forge Christian College', 1677 | 'Villanova University', 1678 | 'Washington and Jefferson  College', 1679 | 'Westmoreland County Community College', 1680 | 'West  Chester University', 1681 | 'Westminster College', 1682 | 'Widener University', 1683 | 'Wilkes University', 1684 | 'Wilson College', 1685 | 'York College of Pennsylvania', 1686 | 'Pennsylvania Academy of the Fine Arts', 1687 | 'East Stroudsburg University', 1688 | 'Ursinus College', 1689 | 'DeSales University', 1690 | 'Lancaster Bible College', 1691 | 'Cheyney University of Pennsylvania', 1692 | 'Brown University', 1693 | 'Bryant University', 1694 | 'Community College of Rhode Island', 1695 | 'Johnson and Wales University', 1696 | 'New England Institute of Technology', 1697 | 'Providence College', 1698 | 'The University of Rhode Island', 1699 | 'Rhode Island College', 1700 | 'Rhose Island School of Design', 1701 | 'Roger Williams University', 1702 | 'University of Rhode Island', 1703 | 'Centura College', 1704 | 'The Citadel Military College of South Carolina', 1705 | 'Columbia International University', 1706 | 'Clemson University', 1707 | 'Coastal Carolina University', 1708 | 'College of Charleston', 1709 | 'Coker College', 1710 | 'Columbia College South Carolina', 1711 | 'Florence-Darlington Technical College', 1712 | 'Francis Marion University', 1713 | 'Forrest College', 1714 | 'Furman University', 1715 | 'Lander University', 1716 | 'Limestone College', 1717 | 'Midlands Technical College', 1718 | 'Medical University of South Carolina', 1719 | 'Newberry College', 1720 | 'North Greenville University', 1721 | 'Orangeburg-Calhoun Technical College', 1722 | 'Presbyterian College', 1723 | 'University of South Carolina', 1724 | 'South Carolina State University', 1725 | 'Sinte Gleska University', 1726 | 'Spartanburg Methodist College', 1727 | 'TriCounty Technical College', 1728 | 'University of South Carolina Aiken', 1729 | 'University of South Carolina Beaufort', 1730 | 'University of South Carolina Upstate', 1731 | 'Winthrop University', 1732 | 'Wofford College', 1733 | 'York Technical College', 1734 | 'Bob Jones University', 1735 | 'Anderson University', 1736 | 'Black Hills State University', 1737 | 'Dakota State University', 1738 | 'Dakota Wesleyan University', 1739 | 'Mount Marty College', 1740 | 'Northern State University', 1741 | 'South Dakota School of Mines and Technology', 1742 | 'South Dakota State University', 1743 | 'University of South Dakota', 1744 | 'University of Sioux Falls', 1745 | 'Western Dakota Technical Institute', 1746 | 'Austin Peay State University', 1747 | 'Belmont University', 1748 | 'Bryan College', 1749 | 'Christian Brothers University', 1750 | 'Carson-Newman University', 1751 | 'Columbia State Community College', 1752 | 'Cumberland University', 1753 | 'DeVry University', 1754 | 'East Tennessee State University', 1755 | 'Freed-Hardeman University', 1756 | 'Fisk University', 1757 | 'Huntington College of Health Sciences', 1758 | 'Hiwassee College', 1759 | 'Johnson University', 1760 | 'Jackson State Community College', 1761 | 'Lee University', 1762 | 'Lincoln Memorial University', 1763 | 'The LeMoyne-Owen College', 1764 | 'The University of Memphis', 1765 | 'Milligan College', 1766 | 'Middle Tennessee State University', 1767 | 'Nashville State Community College', 1768 | 'Pellissippi State Community College', 1769 | 'Rhodes College', 1770 | 'Roane State Community College', 1771 | 'Southern College of Optometry', 1772 | 'Sewanee The University of the South', 1773 | 'Southern Adventist University', 1774 | 'The University of Tennessee', 1775 | 'Southwest Tennessee Community College', 1776 | 'Tennessee State University', 1777 | 'Tennessee Technological University', 1778 | 'Tennessee Wesleyan College', 1779 | 'University of Tennessee Chattanooga', 1780 | 'University of Tennessee Health Science Center', 1781 | 'University of Tennessee Knoxville', 1782 | 'University of Tennessee Martin', 1783 | 'University of Tennessee Space Institute', 1784 | 'Union University', 1785 | 'Vanderbilt University', 1786 | 'Volunteer State Community College', 1787 | 'King University', 1788 | 'Abilene Christian University', 1789 | 'Alamo Colleges', 1790 | 'Alvin Community College', 1791 | 'Angelo State University', 1792 | 'Austin Community College District', 1793 | 'Austin College', 1794 | 'Austin Graduate School of Theology', 1795 | 'Baylor University', 1796 | 'Blinn College', 1797 | 'Brazosport College', 1798 | 'Brookhaven College', 1799 | 'Baptist Health System School of Health Professions', 1800 | 'Career Point College', 1801 | 'Cedar Valley College', 1802 | 'Coastal Bend College', 1803 | 'College of the Mainland', 1804 | 'Concordia University Texas', 1805 | 'Central Texas College', 1806 | 'Culinary Institute LeNotre', 1807 | 'Dallas Baptist University', 1808 | 'Del Mar College', 1809 | 'Dallas Nursing Institute', 1810 | 'El Paso Community College', 1811 | 'East Texas Baptist University', 1812 | 'Galen College of Nursing', 1813 | 'Galveston College', 1814 | 'Grayson College', 1815 | 'Houston Baptist University', 1816 | 'Houston Community College', 1817 | 'Hill College', 1818 | 'Howard College', 1819 | 'Howard Payne University', 1820 | 'Lamar University', 1821 | 'Lamar State College – Port Arthur', 1822 | 'Lubbock Christian University', 1823 | 'LeTourneau University', 1824 | 'Lamar Institute of Technology', 1825 | 'Lone Star College System', 1826 | 'Lamar State College – Orange', 1827 | 'McLennan Community College', 1828 | 'McMurry University', 1829 | 'Midland College', 1830 | 'Midwestern  State University', 1831 | 'National American University', 1832 | 'North Central Texas College', 1833 | 'North American University', 1834 | 'North Lake College', 1835 | 'Odessa College', 1836 | 'Ogle School', 1837 | 'Our Lady of the Lake University', 1838 | 'Panola College', 1839 | 'Patty Hands Shelton School of Nursing', 1840 | 'Prairie View A&M University', 1841 | 'Rice University', 1842 | 'Richland College', 1843 | 'San Jacinto College', 1844 | 'Schreiner University', 1845 | 'Stephen F. Austin State University', 1846 | 'Sam Houston State University', 1847 | 'Southern Methodist University', 1848 | 'South Plains College', 1849 | 'South Texas College', 1850 | 'Southwestern University', 1851 | 'Seminary of the Southwest', 1852 | 'South Texas College of Law', 1853 | 'Saint Edwards University', 1854 | 'Saint Marys University', 1855 | 'University of Saint Thomas', 1856 | 'Texas A&M Health Science Center', 1857 | 'Texas A&M International University', 1858 | 'Texas A&M University', 1859 | 'Texas A&M University Commerce', 1860 | 'Texas A&M University Corpus Christi', 1861 | 'Texas A&M University Kingsville', 1862 | 'Texas A&M University Texarkana', 1863 | 'Tarleton State University', 1864 | 'Texas Christian University', 1865 | 'Temple College', 1866 | 'Tyler Junior College', 1867 | 'Trinity University', 1868 | 'Texas State Technical College', 1869 | 'Texas Southern University', 1870 | 'Texas Tech University', 1871 | 'Texas Tech University Health Sciences Center', 1872 | 'Texas Womans University', 1873 | 'Texas Chiropractic College', 1874 | 'Texas State University', 1875 | 'University of Dallas', 1876 | 'Universty of Houston', 1877 | 'University of Houston Clear Lake', 1878 | 'University of Houston Downtown', 1879 | 'University of the Incarnate Word', 1880 | 'University of Mary Hardin-Baylor', 1881 | 'University of North Texas', 1882 | 'University of North Texas Health Science Center', 1883 | 'University of Texas Arlington', 1884 | 'University of Texas Brownsville', 1885 | 'University of Texas Dallas', 1886 | 'University of Texas at El Paso', 1887 | 'University of Texas at Austin', 1888 | 'University of Texas Health Science Center Houston', 1889 | 'University of Texas Health Science Center San Antonio', 1890 | 'University of Texas Medical Branch at Galveston', 1891 | 'University of Texas Pan American', 1892 | 'University of Texas of the Permian Basin', 1893 | 'University of Texas at San Antonio', 1894 | 'University of Texas Southwestern Medical Center', 1895 | 'University of Texas at Tyler', 1896 | 'Valley Grande Institute', 1897 | 'Victoria College', 1898 | 'Wayland Baptist University', 1899 | 'Weatherford College', 1900 | 'West Texas A&M University', 1901 | 'University of the Virgin Islands', 1902 | 'Brigham Young University', 1903 | 'Dixie State University', 1904 | 'Salt Lake Community College', 1905 | 'Snow College', 1906 | 'Southern Utah University', 1907 | 'Utah State University', 1908 | 'University of Utah', 1909 | 'Utah Valley University', 1910 | 'Weber State University', 1911 | 'Averett University', 1912 | 'Christendom College', 1913 | 'Christopher Newport University', 1914 | 'Dabney S. Lancaster Community College', 1915 | 'Eastern Mennonite University', 1916 | 'Eastern Virginia Medical School', 1917 | 'Ferrum College', 1918 | 'Germanna Community College', 1919 | 'George Mason University', 1920 | 'Hampden-Sydney College', 1921 | 'The Institute for the Psychological Sciences', 1922 | 'James Madison University', 1923 | 'Liberty University', 1924 | 'Longwood University', 1925 | 'Marymount University', 1926 | 'New River Community College', 1927 | 'Norfolk State University', 1928 | 'Northern Virginia Community College', 1929 | 'Old Dominion University', 1930 | 'Radford University', 1931 | 'Randolph College', 1932 | 'Rappahannock Community College', 1933 | 'Regent University', 1934 | 'Reynolds Community College', 1935 | 'University of Richmond', 1936 | 'Randolph-Macon College', 1937 | 'Roanoke College', 1938 | 'Sentara College of Health Sciences', 1939 | 'Stratford University', 1940 | 'Shenandoah University', 1941 | 'Southern Virgina University', 1942 | 'Southwest Virgina Community College', 1943 | 'Tidewater Community College', 1944 | 'Thomas Nelson Community College', 1945 | 'University of Mary Washington', 1946 | 'University of Virginias College at Wise', 1947 | 'Virginias Community Colleges', 1948 | 'Virginia Commonwealth University', 1949 | 'Virgina Highlands Community College', 1950 | 'Virginia Institute of Marine Science', 1951 | 'University of Virginia', 1952 | 'Virginia Western Community College', 1953 | 'Virginia International University', 1954 | 'Virginia State University', 1955 | 'Virginia Polytechnic Institute and State University', 1956 | 'Virginia Union University', 1957 | 'Virginia Wesleyan College', 1958 | 'Washington and Lee University', 1959 | 'The College of William and Mary', 1960 | 'Castleton State College of Vermont', 1961 | 'Champlain College', 1962 | 'Green Mountain College', 1963 | 'Johnson State College', 1964 | 'Middlebury College', 1965 | 'New England Culinary Institute', 1966 | 'Norwich  University', 1967 | 'School for International Training', 1968 | 'Saint Michaels College', 1969 | 'University of Vermont', 1970 | 'University of Vermont', 1971 | 'Vermont Law School', 1972 | 'Vermont Technical College', 1973 | 'Bennington College', 1974 | 'Bellevue College', 1975 | 'Big Bend Community College', 1976 | 'Cascadia Community College', 1977 | 'Centralia College', 1978 | 'Charter College', 1979 | 'Clark College', 1980 | 'Central Washington University', 1981 | 'DigiPen Institute of Technology', 1982 | 'Edmonds Community College', 1983 | 'Everett Community College', 1984 | 'The Evergreen State College', 1985 | 'Eastern Washington University', 1986 | 'Faith Evangelical College and Seminary', 1987 | 'Gonzaga University', 1988 | 'Green River Community College', 1989 | 'Highline College', 1990 | 'Mukogawa Fort Wright Institute', 1991 | 'North Seattle College', 1992 | 'Olympic College', 1993 | 'Peninsula College', 1994 | 'Perry Technical Institute', 1995 | 'Pacific Lutheran University', 1996 | 'Renton Technical College', 1997 | 'Seattle Central College', 1998 | 'Seattle University', 1999 | 'Shoreline Community College', 2000 | 'Seattle Institute of Oriental Medicine', 2001 | 'Skagit Valley College', 2002 | 'South Seattle College', 2003 | 'Spokane Falls Community College', 2004 | 'Seattle Pacific University', 2005 | 'Saint Martins University', 2006 | 'University of Puget Sound', 2007 | 'University of Washington', 2008 | 'University of Washington Bothell', 2009 | 'Walla Walla University', 2010 | 'Whitman College', 2011 | 'Whitworth University', 2012 | 'Washington State University', 2013 | 'Wenatchee Valley College', 2014 | 'Walla Walla Community College', 2015 | 'Western Washington University', 2016 | 'Yakima Valley Community College', 2017 | 'University of Washington', 2018 | 'Alverno College', 2019 | 'Carroll University', 2020 | 'Carthage College', 2021 | 'Chippewa Valley Technical College', 2022 | 'Edgewood College', 2023 | 'Gateway Technical College', 2024 | 'The Institute of Beauty and Wellness', 2025 | 'Lawrence University', 2026 | 'Madison Area Technical College', 2027 | 'Marquette University', 2028 | 'Milwaukee Area Technical College', 2029 | 'Medical College of Wisconsin', 2030 | 'Milwaukee Institute of Art and Design', 2031 | 'Moraine Park Technical College', 2032 | 'Milwaukee School of Engineering', 2033 | 'Northland College', 2034 | 'Northcentral  Technical College', 2035 | 'Northeast Wisconsin Technical College', 2036 | 'Silver Lake College of the Holy Family', 2037 | 'Saint Norbert College', 2038 | 'Cardinal Stritch University', 2039 | 'University of Wisconsin Colleges', 2040 | 'University of Wisconsin Eau Claire', 2041 | 'University of Wisconsin Extension', 2042 | 'University of Wisconsin Green Bay', 2043 | 'University of Wisconsin La Crosse', 2044 | 'University of Wisconsin Milwaukee', 2045 | 'University of Wisconsin Oshkosh', 2046 | 'University of Wisconsin Platteville', 2047 | 'University of Wisconsin River Falls', 2048 | 'University of Wisconsin Stevens Point', 2049 | 'University of Wisconsin Superior', 2050 | 'University of Wisconsin Whitewater', 2051 | 'Viterbo University', 2052 | 'Waukesha County Technical College', 2053 | 'University of Wisconsin, Madison', 2054 | 'Wisconsin Indianhead Technical College', 2055 | 'Wisconsin Lutheran College', 2056 | 'Wisconsin Technical College System', 2057 | 'Western Technical College', 2058 | 'American Public University System', 2059 | 'Concord University', 2060 | 'Eastern West Virgina Community and Technical College', 2061 | 'Fairmont State University', 2062 | 'Marshall University', 2063 | 'Ohio Valley University', 2064 | 'Pierpont Community and Technical College', 2065 | 'Shepherd University', 2066 | 'University of Charleston', 2067 | 'West Liberty University', 2068 | 'Wheeling Jesuit University', 2069 | 'West Virginia Northern Community College', 2070 | 'West Virginia State University', 2071 | 'West Virginia University', 2072 | 'West Virginia Wesleyan College', 2073 | 'Casper College', 2074 | 'Central Wyoming College', 2075 | 'National Outdoor Leadership School', 2076 | 'Northwest College', 2077 | 'Northern Wyoming Community College District', 2078 | 'University of Wyoming', 2079 | ] 2080 | 2081 | 2082 | def make_resume(name, email, path = 'output.pdf'): 2083 | year = date.today().year 2084 | 2085 | font_face = random.choice(['Helvetica','Times']) 2086 | 2087 | 2088 | 2089 | pdf = FPDF() 2090 | pdf.add_page() 2091 | 2092 | # Header 2093 | header_alignment = random.choice(['L','C','R']) 2094 | header_bigfont = random.choice([24,28,32]) 2095 | ## Name 2096 | pdf.set_font(font_face, random.choice(['','B']), header_bigfont) 2097 | pdf.cell(w=0, txt=name, align=header_alignment) 2098 | pdf.ln(int(header_bigfont*0.3)) 2099 | ## Email 2100 | pdf.set_font(font_face, random.choice(['','I']), int(header_bigfont*0.5)) 2101 | pdf.cell(w=0, txt=email, align=header_alignment) 2102 | pdf.ln(20) 2103 | 2104 | # Body 2105 | section_style = random.choice(['B','U']) 2106 | grad_year = random.randrange(1990,year-10) 2107 | 2108 | ## Education 2109 | pdf.set_font(font_face, section_style, int(header_bigfont*0.65)) 2110 | pdf.cell(w=0, txt='Education', align='L') 2111 | pdf.ln(int(header_bigfont*0.25)) 2112 | 2113 | pdf.set_font(font_face, '', int(header_bigfont*0.55)) 2114 | pdf.cell(w=0, txt=random.choice(unis), align='L') 2115 | pdf.cell(w=0, txt=str(grad_year-4)+' - '+str(grad_year), align='R') 2116 | pdf.ln(int(header_bigfont*0.25)) 2117 | 2118 | pdf.set_font(font_face, 'I', int(header_bigfont*0.55)) 2119 | pdf.cell(w=0, txt=random.choice(degrees), align='L') 2120 | pdf.ln(int(header_bigfont*0.5)) 2121 | 2122 | ## Experience 2123 | midyear = int(grad_year + (year-grad_year)*0.1*random.randrange(3,7)) 2124 | 2125 | pdf.set_font(font_face, section_style, int(header_bigfont*0.65)) 2126 | pdf.cell(w=0, txt='Experience', align='L') 2127 | pdf.ln(int(header_bigfont*0.25)) 2128 | 2129 | for i in range(0,2): 2130 | pdf.set_font(font_face, '', int(header_bigfont*0.55)) 2131 | pdf.cell(w=0, txt=faker.company(), align='L') 2132 | pdf.cell(w=0, txt=str(grad_year if i else midyear)+' - '+str(midyear if i else year), align='R') 2133 | pdf.ln(int(header_bigfont*0.25)) 2134 | 2135 | pdf.set_font(font_face, 'I', int(header_bigfont*0.55)) 2136 | pdf.cell(w=0, txt=faker.job(), align='L') 2137 | pdf.ln(int(header_bigfont*0.2)) 2138 | 2139 | for _ in range(0, random.randint(3,7)): 2140 | pdf.set_font(font_face, '', int(header_bigfont*0.5)) 2141 | pdf.cell(w=0, txt='- '+faker.bs(), align='L') 2142 | pdf.ln(int(header_bigfont*0.2)) 2143 | 2144 | pdf.ln(int(header_bigfont*0.2)) 2145 | pdf.ln(int(header_bigfont*0.1)) 2146 | 2147 | ## Skills 2148 | pdf.set_font(font_face, section_style, int(header_bigfont*0.65)) 2149 | pdf.cell(w=0, txt='Skills', align='L') 2150 | pdf.ln(int(header_bigfont*0.25)) 2151 | 2152 | for j in range(0, random.randint(6,11)): 2153 | pdf.set_font(font_face, '', int(header_bigfont*0.55)) 2154 | pdf.cell(w=0, txt='- '+faker.bs(), align='L') 2155 | pdf.ln(int(header_bigfont*0.2)) 2156 | 2157 | # Print 2158 | pdf.output(path, 'F') 2159 | --------------------------------------------------------------------------------