This is a node application intended to automatically apply to jobs for you on AngelList. This will access a Google Sheet that you own and visit the Angel job URLs. It will scrape the company name, position title, recruiter name and use these along with your provided cover letter to type a cover letter and send the application. It will then look up the recruiter's email. It willupdate your Google sheet with the company name, position title, recruiter name and e-mail, date applied, and that you did apply.
- Clone this repo to your computer
- In a terminal while in the root of this project, run
npm install
- Node
- AngelList account
- Google Sheet that you own and its ID
- Google Drive API Key
- Clearbit API Key
Note: Your Angel UI MUST look like this
and NOT look like this
This project requires specific columns for your Google Sheet so you can copy this Sheet to ensure you have the correct columns.
If you are creating your own Google Sheet, ensure the jobs you want to apply to are in the FIRST spreadsheet.
To get the ID, in your Google Sheet URL, the ID follows after /d/
and before /edit#gid=0
.
For example,
https://docs.google.com/spreadsheets/d/18RXGQy3v7jEDDOS50eFLO0TiulMijNyv9DGprSmkeyU
/edit#gid=0
Copy and paste this ID in the sheetsID
parameter in config/config.js
.
For a video, check out Twilio's tutorial until 2:30.
For text based directions, click here.
- Sign up for a Clearbit account if you don't have one
- Visit the Clearbit Console
- Click on API on the side dashboard
- Copy the secret API key and paste it between the quotation marks in the file
clearbit_key.example.js
under thekeys
folder - MAKE SURE TO RENAME
clearbit_key.example.js
TOclearbit_key.js
Given you completed the Prerequisites of this project, you need to edit two files before you can run this app. This app must not be run headless otherwise AngelList will detect you are a bot.
- In
config/config.example.js
, edit the file name to beconfig.js
and edit the following parameters:
user
to be your email for AngelList (e.g.[email protected]
)password
to be your password for AngelListmyFullName
to be your name since this will show up in the cover letter
- In
src/coverLetter.js
, edit thecoverLetter
variable to your desired cover letter.
- If you don't want to include a snippet about the company, don't use the snippet variable in your cover letter
- Currently, the example cover letter will look like this (where the items in between brackets will be replaced with data scraped from the job posting):
Hi [Recruiter name],
I'm interested in the [Position Title]. What [Company Name] is doing [Snippet] is great and I want to be a part of it.
From,
[Your Name]
- In a terminal while at the root of the project, type
npm run apply
.
- Puppeteer - Automation framework used to scrape data and apply to jobs
- Clearbit Prospector API - Used to fetch recruiter e-mails
- Google Sheets API - Used to fetch user URLs and update info about job applied
Currently looking for a job and I wanted to automate my very redundant job application process. I recently made an auto "apply" node application for Vettery as shown here and I wanted to take it a step further. I also wanted to take a break from learning iOS development and jump back into JavaScript.
- Francis Distor - Initial work - Github
- Error handling when job data does not exist
- Error handling when URL is not valid
- Give user option to not input a cover letter and handle scenario where a job requires a cover letter
- Send follow-up emails after a week (or user specified)
- Albert Tu for giving it a try