Job Alerts is a repository designed to assist individuals in seeking their ideal job, eliminating the necessity of regularly visiting company websites to check for new available positions.
Every day at 8:00 AM, the user will receive an email containing updates on the companies they are interested in working for, notifying them whether these companies have any new job openings or not.
- Install AWS CLI and configure it with your account credentials. for more info
- Install Terraform Terraform Installaion Page
- Clone this repo.
- Install requests library and urllib3==1.25.4 (for compatibility issue)
mkdir python
cd python
pip install urllib3==1.25.4 requests -t .- Compress the
pythondir in a.zipformat with this namerequests_library.zipin the top directory of the repo. - Open
terraform\values.auto.tfvarsfile and fill in these valuessender_email: is the email of the sender (You😄) (you should own it and verify it in SES).receiver_email: is the email of the reciever (You too😄) (you should own it and verify it in SES as well).region: your closest AWS region.account_id: your AWS account id.job_title: is the job title you're looking for.
- open
lambda_function.pyafter lines 102, add more URLs of the career pages for companies you want to work for. - Terraform apply
cd terraform
terraform apply --auto-aprove - Finally, go to your gmail for the sender and receiver email that you set earlier. and verify the identity to make AWS able to send the email from the sender to the reciever on your behalf.
Note: I've tried putting the same email for both sender and reciever, and it worked but I got a warnning from gmail, so i used two accounts. - Wait at 8:00 AM Cairo-Time (GMT +3) to receive the first email, OR you can go to your AWS lambda
Search_for_Jobsand do a test from there and you should get an email as well.
- Simply run
terraform destroy --auto-approve
- Transform this project into Dynamic Newsletter, where usesrs can choose the title and companies, then emails will be sent to them directly without the need of building this project.
- Put the state file in a seperate S3 Bucket.
- Make the logic of sending the emails clearer.
- Add tests to Lambda function code.
- Try to use OOP (any ideas are appreciated).
If you have any questions, suggestions, or feedback, please feel free to reach out to me on my LinkedIn account.
