Spaces:
Sleeping
Sleeping
updated name
Browse files- README.md +2 -2
- app.py +3 -3
- render/latex.py +1 -1
README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
#
|
| 2 |
|
| 3 |
Generate grounded, tailored resumes from a job description and a PDF resume using Gradio, OpenAI, and LaTeX templates. Suitable for local runs or Hugging Face Spaces.
|
| 4 |
|
|
@@ -39,7 +39,7 @@ Then open http://localhost:7860.
|
|
| 39 |
- If `latexmk` is missing, PDF export is disabled but `.tex` export works.
|
| 40 |
|
| 41 |
## Security notes
|
| 42 |
-
- API keys are stored via `keyring` when available; otherwise a local fallback file `~/.
|
| 43 |
- Keys are never written to logs.
|
| 44 |
- Use the **Clear stored key** button to remove saved credentials.
|
| 45 |
|
|
|
|
| 1 |
+
# Smart Resume Builder
|
| 2 |
|
| 3 |
Generate grounded, tailored resumes from a job description and a PDF resume using Gradio, OpenAI, and LaTeX templates. Suitable for local runs or Hugging Face Spaces.
|
| 4 |
|
|
|
|
| 39 |
- If `latexmk` is missing, PDF export is disabled but `.tex` export works.
|
| 40 |
|
| 41 |
## Security notes
|
| 42 |
+
- API keys are stored via `keyring` when available; otherwise a local fallback file `~/.smart_resume_builder_key` is used.
|
| 43 |
- Keys are never written to logs.
|
| 44 |
- Use the **Clear stored key** button to remove saved credentials.
|
| 45 |
|
app.py
CHANGED
|
@@ -14,10 +14,10 @@ from resume_parser.parser import parse_resume_pdf
|
|
| 14 |
from schemas.resume import TailoredResume
|
| 15 |
|
| 16 |
logging.basicConfig(level=logging.INFO)
|
| 17 |
-
logger = logging.getLogger("
|
| 18 |
|
| 19 |
-
APP_TITLE = "
|
| 20 |
-
LOCAL_KEY_PATH = Path.home() / ".
|
| 21 |
|
| 22 |
|
| 23 |
def load_api_key() -> Optional[str]:
|
|
|
|
| 14 |
from schemas.resume import TailoredResume
|
| 15 |
|
| 16 |
logging.basicConfig(level=logging.INFO)
|
| 17 |
+
logger = logging.getLogger("smart_resume_builder")
|
| 18 |
|
| 19 |
+
APP_TITLE = "Smart Resume Builder"
|
| 20 |
+
LOCAL_KEY_PATH = Path.home() / ".smart_resume_builder_key"
|
| 21 |
|
| 22 |
|
| 23 |
def load_api_key() -> Optional[str]:
|
render/latex.py
CHANGED
|
@@ -41,7 +41,7 @@ def compile_latex(latex_content: str, output_dir: Path, output_basename: str) ->
|
|
| 41 |
def compile_to_tempfile(latex_content: str) -> Optional[Path]:
|
| 42 |
if not latexmk_available():
|
| 43 |
return None
|
| 44 |
-
tmpdir = Path(tempfile.mkdtemp(prefix="
|
| 45 |
try:
|
| 46 |
return compile_latex(latex_content, tmpdir, "tailored_resume")
|
| 47 |
except subprocess.CalledProcessError as exc: # pragma: no cover - external tool
|
|
|
|
| 41 |
def compile_to_tempfile(latex_content: str) -> Optional[Path]:
|
| 42 |
if not latexmk_available():
|
| 43 |
return None
|
| 44 |
+
tmpdir = Path(tempfile.mkdtemp(prefix="smart_resume_builder_"))
|
| 45 |
try:
|
| 46 |
return compile_latex(latex_content, tmpdir, "tailored_resume")
|
| 47 |
except subprocess.CalledProcessError as exc: # pragma: no cover - external tool
|