https://github.com/bomzj/smart-apply
AI-powered assistant to automatically apply for jobs
https://github.com/bomzj/smart-apply
ai-assistant automation azure-openai gmail-api job-application job-applier
Last synced: 12 days ago
JSON representation
AI-powered assistant to automatically apply for jobs
- Host: GitHub
- URL: https://github.com/bomzj/smart-apply
- Owner: bomzj
- Created: 2025-11-12T12:39:38.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-02-24T09:53:56.000Z (4 months ago)
- Last Synced: 2026-02-24T15:42:44.824Z (4 months ago)
- Topics: ai-assistant, automation, azure-openai, gmail-api, job-application, job-applier
- Language: Python
- Homepage:
- Size: 801 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Smart Apply
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
- Bypasses Cloudflare protection and the Google reCAPTCHA challenge.
## Setup
### Option 1 - Without Docker (Recommended)
**Warning:** running browser under docker is pretty slow
1. Ensure you have [uv](https://docs.astral.sh/uv/) installed.
2. Install `ffmpeg` on your system.
- Ubuntu/Debian: `sudo apt-get install ffmpeg`
- macOS (Homebrew): `brew install ffmpeg`
- Windows (winget): `winget install ffmpeg`
3. Install dependencies and the project in editable/development mode:
```bash
uv sync
```
> This also installs `smart_apply` as an editable package, which is required for the absolute imports used throughout the codebase.
### Option 2 - With Docker
```bash
docker compose build
```
### Setup Gmail API *(valid for both options)*
1. Create a Google Cloud project https://developers.google.com/workspace/guides/create-project#project
2. Enable Gmail API for this project https://developers.google.com/gmail/api/quickstart/python#enable_the_api
3. Configure the OAuth consent screen https://developers.google.com/gmail/api/quickstart/python#configure_the_oauth_consent_screen
4. Authorize credentials for a desktop application https://developers.google.com/gmail/api/quickstart/python#authorize_credentials_for_a_desktop_application
5. Install the Google client library https://developers.google.com/gmail/api/quickstart/python#install_the_google_client_library
*NOTE:* to renew expired gmail auth token run the following command:
```bash
uv run smart_apply/gmail.py
```
## Configuration
1. Rename `config.yaml.example` to `config.yaml`.
2. Configure `azure_openai` section.
> **NOTE**: Smart Apply uses Azure OpenAI by default, but you can switch to any LLM.
3. Fill in your personal information (your full name, email, message, pdf resume, etc.) that will be used during job applications.
4. *Optional* Configure Langfuse for LLM tracing/debugging.
## How to use
1. Create a `urls.txt` file containing the URLs of the companies you want to apply to.
2. Smart Apply can run **either locally or with Docker** — choose one of the options below.
```bash
uv run apply
```
Or
```bash
docker compose up -d
```