Spaces:
Running
Running
| %%{init: { | |
| 'theme': 'base', | |
| 'themeVariables': { | |
| 'primaryColor': '#E1F5FE', | |
| 'primaryTextColor': '#01579B', | |
| 'lineColor': '#546E7A', | |
| 'clusterBkg': '#FAFAFA', | |
| 'clusterBorder': '#CFD8DC' | |
| }, | |
| 'flowchart': { | |
| 'curve': 'basis' | |
| } | |
| }}%% | |
| graph TD | |
| %% === STYLING DEFINITIONS === | |
| classDef user fill:#fff9c4,stroke:#fbc02d,stroke-width:2px,rx:10; | |
| classDef ui fill:#e1f5fe,stroke:#0288d1,stroke-width:2px,rx:5; | |
| classDef ai fill:#ffe0b2,stroke:#f57c00,stroke-width:2px,rx:10; | |
| classDef process fill:#ffffff,stroke:#78909c,stroke-width:2px,rx:5; | |
| classDef data fill:#e1bee7,stroke:#8e24aa,stroke-width:2px,shape:cylinder; | |
| classDef output fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,rx:5; | |
| %% === THE DIAGRAM === | |
| %% 1. USER INTERFACE LAYER | |
| subgraph UI_Layer ["π₯οΈ Frontend / Interface"] | |
| User([π€ User]):::user | |
| Streamlit[/"π» Streamlit UI"/]:::ui | |
| LLM["π§ LLM Provider<br/>(OpenAI / Gemini / Claude)"]:::ui | |
| User -->|Uploads Files| Streamlit | |
| Streamlit -.->|Configures| LLM | |
| end | |
| %% 2. THE PIPELINE (BACKEND) | |
| %% Phase 1: Ingestion | |
| subgraph P1 ["Phase 1: Input Processing"] | |
| Parser["π Resume Parser<br/>(PyMuPDF4LLM)"]:::process | |
| Scraper["π Job Scraper<br/>(Web Engine)"]:::process | |
| end | |
| %% Phase 2: Understanding | |
| subgraph P2 ["Phase 2: AI Orchestration"] | |
| Extractor{{"π€ Data Extractor"}}:::ai | |
| Planner["π Content Planner"]:::ai | |
| %% Connecting P1 to P2 | |
| Parser --> Extractor | |
| Scraper --> Extractor | |
| Extractor --> Planner | |
| end | |
| %% Phase 3: Writing | |
| subgraph P3 ["Phase 3: Parallel Writing"] | |
| Workers{{"β‘ Async Workers"}}:::ai | |
| S1["π Summary"]:::process | |
| S2["πΌ Experience"]:::process | |
| S3["π οΈ Skills"]:::process | |
| S4["π Projects"]:::process | |
| Planner --> Workers | |
| Workers --> S1 | |
| Workers --> S2 | |
| Workers --> S3 | |
| Workers --> S4 | |
| end | |
| %% Phase 4: Assembly | |
| subgraph P4 ["Phase 4: Generation"] | |
| Merger["π Jinja2 Merger"]:::process | |
| Compiler["βοΈ PDF Compiler<br/>(LaTeX)"]:::process | |
| S1 --> Merger | |
| S2 --> Merger | |
| S3 --> Merger | |
| S4 --> Merger | |
| Merger --> Compiler | |
| end | |
| %% 3. OUTPUT | |
| Result([π Final PDF]):::output | |
| %% === CROSS CONNECTIONS === | |
| Streamlit --> Parser | |
| Streamlit --> Scraper | |
| Compiler --> Result | |