Joblytic analyzes an uploaded resume and recommends job titles, keywords, and relevant openings by using a Generative AI model (Gemini) and job scrapers (Apify).
Key points
- Fast resume summarization, skills-gap analysis, and a tailored roadmap.
- Job recommendations fetched from LinkedIn and Naukri via Apify actors.
- Uses Google Generative AI (Gemini) as the LLM backend.
Contents
app.py— Streamlit web UI.src/helper.py— PDF extraction and LLM wrapper (Gemini integration).src/job_api.py— Job fetching helpers (Apify).requirements.txt— Python dependencies.
Quick start (Windows / PowerShell)
- Create & activate a virtual environment (from project root):
python -m venv .venv
.\.venv\Scripts\Activate- Install dependencies:
python -m pip install --upgrade pip
pip install -r requirements.txt- Add required environment variables in a
.envfile (do NOT commit.env):
GEMINI_API_KEY=your_gemini_api_key_here
APIFY_API_KEY=your_apify_api_key_here # or APIFY_API_TOKEN depending on your setup
Notes:
- Do not wrap keys in quotes. Example:
GEMINI_API_KEY=AIza...(no surrounding quotes). - If
job_api.pyexpectsAPIFY_API_TOKEN, either rename your.envkey or updatejob_api.pyto readAPIFY_API_KEY.
- Run the app:
streamlit run app.pyWhat to add to git / what to ignore
- Keep in repo: source code (
app.py,src/),requirements.txt,README.md,pyproject.toml(if present). - Ignore:
.env,.venv/, editor settings (.vscode/,.idea/), and other secrets or build artifacts.
Suggested .gitignore entries
.venv/
.env
# Python
__pycache__/
*.py[cod]
# Editors
.vscode/
.idea/
Troubleshooting (common issues)
- ModuleNotFoundError on import (e.g.,
google.generativeai): ensure the virtualenv is activated andpip install -r requirements.txtwas run in the same environment. API key not valid/DefaultCredentialsError: verifyGEMINI_API_KEYin.envand mirror it intoGOOGLE_API_KEYif required. Restart the shell after editing.env.- Quota / Rate limit errors (429 / ResourceExhausted): reduce request frequency/tokens, enable billing or request quota increases in Google Cloud, or add retry/backoff (helper includes basic retries).
Security
- You exposed an API key in the repository workspace; rotate that key in Google Cloud immediately and update
.envwith the new key. - Add
.envto.gitignoreand never commit secrets.
Next steps / improvements
- Add caching for repeated prompts (to reduce LLM calls).
- Add unit tests for
src/helper.pyandsrc/job_api.py. - Provide a Dockerfile for easier deployment.