FS Resume Parser Agent Architecture
System Overview
Python backend for SiftHire resume intelligence: parse documents, store in MongoDB, score/match to JDs, generate PDF outputs, and talk to AWS/Zoho as configured.
Architecture Diagram
graph TB
ResumeApi["app.py / resume_service<br/>API entry"]
ParserEngine["parser_engine<br/>extract resume text"]
PdfEngine["pdf_engine / pdf_converter"]
MongoDatabase[("MongoDB")]
AwsS3Storage["AWS S3"]
GptScoring["GPT scoring / matching"]
ResumeApi -->|"parses uploaded resumes"| ParserEngine
ResumeApi -->|"generates PDF outputs"| PdfEngine
ResumeApi -->|"stores candidates / JDs / resumes"| MongoDatabase
ResumeApi -->|"stores files"| AwsS3Storage
ResumeApi -->|"JD match + eligibility score"| GptScoring
How to read this diagram
Arrows mean flow / dependency / "talks to", not button clicks. Each arrow label says what happens on that step.
Core Components
| Module | Role |
|---|---|
parser_engine.py | Document parsing |
pdf_engine.py / pdf_converter.py | PDF generation/conversion |
db.py | Mongo access |
aws_service.py | S3 and AWS helpers |
crypto.py | Crypto/helpers for secure fields |
templates/ | Resume output templates |
Fallback behavior
If DOCX to PDF conversion fails, system falls back to direct DOCX parsing (python-docx / docx2txt) and still extracts text/names.
Technology Stack
| Layer | Technology |
|---|---|
| Language | Python |
| DB | MongoDB |
| Storage | AWS S3 |
| AI | GPT key in config |
| PDFMiner / DocumentEngine settings |