Spaces:
Sleeping
Sleeping
| title: Smart Resume Builder | |
| emoji: ๐ | |
| colorFrom: gray | |
| colorTo: blue | |
| sdk: gradio | |
| sdk_version: "4.44.1" | |
| app_file: app.py | |
| pinned: false | |
| license: mit | |
| # Smart Resume Builder | |
| Generate grounded, tailored resumes from a job description and a PDF resume using Gradio, OpenAI or Hugging Face models, and LaTeX templates. Suitable for local runs or Hugging Face Spaces. | |
| ## Features | |
| - PDF parsing with `pdfplumber` and `pymupdf` fallback | |
| - Strict, evidence-backed JSON extraction via OpenAI or Hugging Face router (OpenAI-compatible) | |
| - Tailoring step that rewrites bullets without fabrication and reports missing items | |
| - Two LaTeX templates (modern single-column and classic two-column) | |
| - Streamlit UI with API key storage (keyring preferred), template selector, and export buttons | |
| - Keyword alignment and missing/needs-confirmation panel | |
| ## Quickstart (local with uv) | |
| ```bash | |
| # install uv if needed: curl -LsSf https://astral.sh/uv/install.sh | sh | |
| uv venv .venv | |
| uv pip install -r requirements.txt | |
| uv run app.py | |
| ``` | |
| ## Using the app | |
| 1. Paste the job description. | |
| 2. Upload a resume PDF. | |
| 3. Pick a provider and enter your API key/token (optionally save it locally; system keychain is used when available). | |
| 4. Choose a model name and LaTeX template. | |
| 5. Click **Generate Tailored Resume**. | |
| 6. Review the LaTeX preview, missing/needs-confirmation list, and keyword alignment. | |
| 7. Export `.tex` or PDF. PDF export requires `latexmk`. | |
| ## Docker | |
| ```bash | |
| make docker-build | |
| make docker-run PORT=7860 | |
| ``` | |
| Then open http://localhost:7860. | |
| ## LaTeX compilation | |
| - PDF export uses `latexmk -pdf`. Install TeX Live or MikTeX and ensure `latexmk` is on your PATH. | |
| - If `latexmk` is missing, PDF export is disabled but `.tex` export works. | |
| ## Security notes | |
| - API keys are stored via `keyring` when available; otherwise a local fallback file `~/.smart_resume_builder_key` is used. | |
| - Keys are never written to logs. | |
| - Use the **Clear stored key** button to remove saved credentials. | |
| ## Tests | |
| ```bash | |
| uv run pytest | |
| ``` | |
| ## Troubleshooting | |
| - Missing `latexmk`: install TeX Live/MikTeX. | |
| - If PDF parsing is poor, ensure the resume PDF is text-based; image-only scans are harder to extract. | |
| - For provider errors, verify the API key/token and model name in the UI. | |