# Workflow mapping This project reimplements the exported `JobWorkfllow` behavior without calling n8n. ## Input The Gradio application exposes only the job description and the account-status answer. Source CV, advantage, and recommendation content are loaded server-side from `keys.env`. ## Profile data The original workflow read three n8n Data Table rows by `KEY`: - `SOFTWARE_CV` - `ADVANTAGE` - `RECOMMENDATION_LETTER` The standalone replacement loads these values from `SOURCE_CV`, `ADV`, and `RECOMMENDATION_LETTER` in `keys.env`. They are not exposed as Gradio inputs. ## AI branches The original three agents use the connected Google Gemini Chat Model: 1. Job Info Agent: Arabic structured JSON analysis. 2. CV Creator Agent: factual, ATS-focused LaTeX CV, maximum two pages. 3. Email Creator Agent: concise English job-application email. The Python implementation runs these three Gemini calls concurrently after assembling the same source inputs. The prompt constraints are kept in `services/prompts.py`. ## Google Sheets The original Code node added the current ISO date and the Sheets node appended the analysis fields. `GoogleSheetsService` preserves the same columns and appends one row only when the spreadsheet configuration is complete. ## PDF output The generated CV remains LaTeX. The application writes the source to `outputs/cv_draft.tex` and uses `pylatex` plus `pdflatex` when available to produce `outputs/cv_draft.pdf`. A `reportlab` fallback keeps a downloadable PDF output available when a TeX compiler is not installed.