A self-hosted assistant for job seekers that connects Gmail, Google Sheets, Telegram, and AI to classify hiring emails and keep application statuses synchronized.
This project is AI friendly and built primarily in Python. It started as a web infrastructure playground and has evolved into a valuable tool for everyday job search tracking.
- Turn scattered hiring emails, spreadsheet edits, and manual updates into a coherent self-hosted workflow
- Use modern AI tooling to reduce manual triage and classification for a job seeker
- Keep the user informed through an everyday messenger while collecting feedback without adding noise
- Hosting mashine (for example, EC2 or a local machine) with Python3.13, Docker and Docker Compose installed
- OpenAI Platform account to enable embeddings
- Google Account fot Gmail, Sheets and GCP usage (recommended to create a new account)
- Telegram account
- Prepare a Google Sheet using this template for application tracking.
- In Google Cloud Platform, generate a
jsoncredentials file for Google Sheets API access.
- In Google Cloud Platform, generate a
- Create a Telegram bot via Bot Father.
- Optional: register a dedicated Gmail address for job seeking to reduce spam and improve classifier accuracy.
- Install Python3.13, Docker and Docker Compose on the host.
- Populate
.env.examplewith required secrets following instruction from the file. - In the copied Google Sheet, use the
applications_listpage (examplepage can be removed). - Bring up HI-A with:
python3.13 -m venv mail-processor/.venv \ docker compose up -d \ ./scripts/migrate.sh - Populate the
embd_cntrtable with data frommail-processor/embeddings/embd_cntr_populate.csv.