Smart Apply is your AI assistant that automates the process of applying to jobs directly on company websites.
It uses LLM to analyze websites, understand forms, and automatically:
-
Fill out job application forms
-
Send emails via Gmail API
-
Ensure you have Python 3.12 installed. If not, download and install it from the official Python website.
-
Install dependencies:
pip install -r requirements.txt- Install Camoufox stealth browser:
camoufox fetchNOTE: Camoufox browser runs insanely slow(resource-heavy) in docker causing timeouts. I tried docker optimization: increasing shared memory(/shm) from default 64MB to 2GB and writing temp files(/tmp) to RAM. Nothing helped.
docker compose buildBy the way Chromium is also sluggish in docker, but it more or less works, the other drawback it's detectable by anti-bot protections used on various websites.
-
Create a Google Cloud project https://developers.google.com/workspace/guides/create-project#project
-
Enable Gmail API for this project https://developers.google.com/gmail/api/quickstart/python#enable_the_api
-
Configure the OAuth consent screen https://developers.google.com/gmail/api/quickstart/python#configure_the_oauth_consent_screen
-
Authorize credentials for a desktop application https://developers.google.com/gmail/api/quickstart/python#authorize_credentials_for_a_desktop_application
-
Install the Google client library https://developers.google.com/gmail/api/quickstart/python#install_the_google_client_library
-
Rename
.env.exampleto.env. -
Configure Azure OpenAI section.
NOTE: Smart Apply uses Azure OpenAI by default, but you can switch to any LLM.
-
Fill in your personal information (name, email, etc.) used during applications.
-
Optional Configure Langfuse for LLM tracing/debugging.
-
Create a
urls.txtfile containing the URLs of the companies you want to apply to. -
Create an
applicant_message.txtfile containing the message you want to send with your applications. -
Smart Apply can run either locally or with Docker — choose one of the options below.
python main.pyOr
docker compose up -d