{"id":"a6bc510b-e4da-48be-8eff-368e791d9d19","entityType":"agent","slug":"crewai-sanjai-s0-nexsettle","name":"NexSettle","canonicalUrl":"https://www.xpersona.co/agent/crewai-sanjai-s0-nexsettle","canonicalPath":"/agent/crewai-sanjai-s0-nexsettle","generatedAt":"2026-10-09T00:05:56.968Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":null},"description":"AI-powered insurance claims automation using Django, CrewAI/LangGraph, Gemini, OCR, and MongoDB for document extraction, fraud checks, and claim decision support. # NexSettle - AI-Powered Insurance Claims Automation Platform **Tech Stack:** Django · LangGraph · CrewAI · Gemini 2.5 Flash · Tesseract OCR · MongoDB · Vanilla HTML/CSS/JS --- Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 9. $1 10. $1 11. $1 12. $1 13. $1 14. $1 15. $1 16. $1 17. $1 18. $1 --- Project Overview NexSettle automates the entire insurance claim lifecycle: | Step | Technology | Descrip","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 5/31/2026.","installCommand":"git clone https://github.com/SANJAI-s0/NexSettle.git","sourceUrl":"https://github.com/SANJAI-s0/NexSettle","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/SANJAI-s0/NexSettle","kind":"source"}],"safetyScore":66,"overallRank":20.4,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered insurance claims automation using Django, CrewAI/LangGraph, Gemini, OCR, and MongoDB for document extraction, fraud checks, and claim decision suppor"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"crewai","status":"self-declared"},{"label":"multi-agent","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"crewai","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"multi-agent","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":1,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-05-31T06:18:45.291Z","emptyReason":null},"lastUpdatedAt":"2026-05-31T06:18:45.292Z","lastCrawledAt":"2026-05-31T06:18:45.291Z","lastIndexedAt":null,"nextCrawlAt":"2026-06-07T06:18:45.291Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"git clone https://github.com/SANJAI-s0/NexSettle.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T00:05:56.968Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-sanjai-s0-nexsettle/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":null},"readme":"﻿# NexSettle - AI-Powered Insurance Claims Automation Platform\n\n> **Tech Stack:** Django · LangGraph · CrewAI · Gemini 2.5 Flash · Tesseract OCR · MongoDB · Vanilla HTML/CSS/JS\n\n![Python](https://img.shields.io/badge/Python-3.12.8-3776AB?logo=python&logoColor=white)\n![Django](https://img.shields.io/badge/Django-5.1.4-092E20?logo=django&logoColor=white)\n![DRF](https://img.shields.io/badge/DRF-3.15.2-A30000?logo=django&logoColor=white)\n![MongoDB](https://img.shields.io/badge/MongoDB-nexsettle__db-47A248?logo=mongodb&logoColor=white)\n![LangGraph](https://img.shields.io/badge/LangGraph-Orchestrator-1F6FEB)\n![CrewAI](https://img.shields.io/badge/CrewAI-Agentic-Purple)\n![Gemini](https://img.shields.io/badge/Gemini-2.5_Flash-4285F4?logo=google&logoColor=white)\n![OCR](https://img.shields.io/badge/OCR-Tesseract_5-5C3EE8)\n![Frontend](https://img.shields.io/badge/Frontend-Vanilla_JS-F7DF1E?logo=javascript&logoColor=000000)\n![Docker](https://img.shields.io/badge/Docker-Supported-2496ED?logo=docker&logoColor=white)\n![Render](https://img.shields.io/badge/Deploy-Render-46E3B7?logo=render&logoColor=000000)\n![CI/CD](https://img.shields.io/badge/CI%2FCD-GitHub_Actions-2088FF?logo=githubactions&logoColor=white)\n![License](https://img.shields.io/badge/License-MIT-yellow.svg)\n\n---\n\n## Table of Contents\n\n1. [Project Overview](#project-overview)\n2. [Architecture](#architecture)\n3. [Project Structure](#project-structure)\n4. [Prerequisites](#prerequisites)\n5. [Environment Variables](#environment-variables)\n6. [Quick Start (Windows)](#quick-start-windows)\n7. [Manual Setup](#manual-setup)\n8. [Docker Setup](#docker-setup)\n9. [One-command Bootstrap](#one-command-bootstrap)\n10. [API Reference](#api-reference)\n11. [Frontend Pages](#frontend-pages)\n12. [MongoDB Collections](#mongodb-collections)\n13. [AI Pipeline](#ai-pipeline)\n14. [Credentials (Default)](#credentials-default)\n15. [Development Notes](#development-notes)\n16. [CI/CD (GitHub Actions)](#cicd-github-actions)\n17. [Render Deployment](#render-deployment)\n18. [License](#license)\n\n---\n\n## Project Overview\n\nNexSettle automates the entire insurance claim lifecycle:\n\n| Step | Technology | Description |\n|------|-----------|-------------|\n| Document Upload | Django REST | PDF/PNG/JPG/JPEG multipart upload |\n| OCR | Tesseract OCR + pdf2image | Text extraction from scanned docs |\n| Classification | Keyword Detection | Identifies 7+ document types |\n| Data Extraction | Gemini 2.5 Flash | Structured JSON from document text |\n| Fraud Detection | Rule-based + AI | Cross-doc validation, format checks |\n| Policy Verification | MongoDB lookup | Aadhaar/PAN cross-check |\n| Claim Estimation | Business rules | Natural/Accidental death payout |\n| PDF Report | ReportLab | Auto-generated settlement report |\n| Storage | MongoDB | All data in `nexsettle_db` |\n\n---\n\n## Architecture\n\nArchitecture diagram file:\n[View SVG](docs/architecture.svg)\n\n![NexSettle Architecture](docs/architecture.svg)\n\n### UI Flow\n\n```mermaid\nflowchart TD\n    A[User Opens /] --> B{Role Action}\n    B -->|Register| C[register.html]\n    C --> D[OTP Sent]\n    D --> E[verify-otp.html]\n    E --> F[dashboard.html]\n    B -->|Login| G[login.html]\n    G --> F\n    B -->|Agent Login| H[agent-login.html]\n    H --> I[agent-dashboard.html]\n    B -->|Admin Login| J[admin-login.html]\n    J --> K[admin-dashboard.html]\n```\n\n### Agent Flow\n\n```mermaid\nflowchart TD\n    A[Claim Files Uploaded] --> B[Agentic Orchestrator]\n    B --> C[DocumentClassifier Agent]\n    C --> D[OCRProcessor Agent]\n    D --> E[DataExtractor Agent]\n    E --> F[FraudDetector Agent]\n    F --> G{Fraud?}\n    G -->|Yes| H[Flag Claim + Write fraud_logs]\n    G -->|No| I[PolicyVerifier Agent]\n    I --> J[ClaimEstimator Agent]\n    J --> K[ReportGenerator Agent]\n    K --> L[MongoDBStorage Agent]\n```\n\n### Backend Flow\n\n```mermaid\nflowchart TD\n    A[Frontend Request] --> B[Django URL Router]\n    B --> C[App View]\n    C --> D{Endpoint Type}\n    D -->|Auth| E[apps/authentication/views.py]\n    D -->|Claim APIs| F[apps/claims/views.py]\n    D -->|Pipeline| G[apps/ai_pipeline/views.py]\n    G --> H[LangGraph or CrewAI Orchestration]\n    H --> I[MongoDB via db/mongo_client.py]\n    H --> J[ReportLab PDF Generation]\n    I --> K[JSON Response]\n    J --> K\n```\n\n### Full Project Flow\n\n```mermaid\nflowchart LR\n    A[User Uploads Claim Documents] --> B[Frontend HTML/CSS/JS]\n    B --> C[Django REST API]\n    C --> D[Document Intake + Validation]\n    D --> E[OCR Engine: Tesseract/pdf2image]\n    E --> F[Classification + Extraction]\n    F --> G[Gemini 2.5 Flash]\n    G --> H[Fraud + Policy Verification]\n    H --> I[Claim Estimation]\n    I --> J[PDF Report Generation]\n    J --> K[MongoDB: nexsettle_db]\n    K --> L[Agent/Admin Review]\n    L --> M[Settlement Decision]\n```\n\n---\n\n## Project Structure\n\n```\nNexSettle_Project/\n|-- .github/\n|   |-- workflows/\n|   |   |-- ci.yml                          # GitHub Actions CI (install, check, smoke tests)\n|   |   `-- deploy-render.yml               # GitHub Actions deploy trigger for Render\n|-- docs/\n|   `-- architecture.svg                    # High-level architecture diagram (linked above)\n|-- backend/\n|   |-- apps/                               # Django app modules (API domains)\n|   |   |-- admins/\n|   |   |   |-- apps.py                     # Django app config for admin module\n|   |   |   |-- urls.py                     # Admin API routes\n|   |   |   `-- views.py                    # Admin auth/dashboard/approval handlers\n|   |   |-- agents/\n|   |   |   |-- apps.py                     # Django app config for agent module\n|   |   |   |-- urls.py                     # Agent API routes\n|   |   |   `-- views.py                    # Agent login/review handlers\n|   |   |-- ai_pipeline/\n|   |   |   |-- apps.py                     # Django app config for AI pipeline\n|   |   |   |-- claim_estimator.py          # Claim amount estimation logic\n|   |   |   |-- crew_pipeline.py            # CrewAI orchestration flow\n|   |   |   |-- data_extractor.py           # Structured field extraction logic\n|   |   |   |-- document_classifier.py      # Document type classifier\n|   |   |   |-- fraud_detector.py           # Fraud signal checks\n|   |   |   |-- pipeline.py                 # LangGraph/LangChain orchestration flow\n|   |   |   |-- policy_verifier.py          # MongoDB policy cross-verification\n|   |   |   |-- urls.py                     # Pipeline API routes\n|   |   |   `-- views.py                    # Upload/process endpoints\n|   |   |-- authentication/\n|   |   |   |-- apps.py                     # Django app config for auth module\n|   |   |   |-- urls.py                     # Register/login/OTP API routes\n|   |   |   `-- views.py                    # Auth and OTP handlers\n|   |   |-- claims/\n|   |   |   |-- apps.py                     # Django app config for claims module\n|   |   |   |-- urls.py                     # Claim listing/detail/status routes\n|   |   |   `-- views.py                    # Claim API logic\n|   |   |-- documents/\n|   |   |   |-- apps.py                     # Django app config for documents module\n|   |   |   |-- urls.py                     # Document endpoints\n|   |   |   `-- views.py                    # Document upload/access handlers\n|   |   |-- fraud_detection/\n|   |   |   |-- apps.py                     # Django app config for fraud module\n|   |   |   |-- urls.py                     # Fraud log/check routes\n|   |   |   `-- views.py                    # Fraud API handlers\n|   |   `-- reports/\n|   |       |-- apps.py                     # Django app config for reports module\n|   |       |-- report_generator.py         # ReportLab PDF generation logic\n|   |       |-- urls.py                     # Report API routes\n|   |       `-- views.py                    # Report download/generate handlers\n|   |-- db/\n|   |   |-- mongo_client.py                 # Central MongoDB client + DB getter\n|   |   `-- __init__.py                     # DB package marker\n|   |-- management/\n|   |   `-- management/\n|   |       `-- commands/                   # Custom Django management commands\n|   |           |-- backfill_user_ids.py    # Backfills missing user_id values\n|   |           |-- bootstrap_project.py    # One-command setup/bootstrap\n|   |           |-- seed_admin.py           # Seeds default admin user\n|   |           |-- seed_policy_holders.py  # Seeds policy holder sample data\n|   |           |-- setup_mongodb.py        # Creates DB collections + indexes\n|   |           `-- smoke_test_flow.py      # End-to-end flow validation command\n|   |-- media/\n|   |   |-- claims/                         # Uploaded claim files (runtime generated)\n|   |   `-- reports/                        # Generated PDF reports\n|   |-- nexsettle/\n|   |   |-- frontend_views.py               # Serves frontend files via Django\n|   |   |-- settings.py                     # Django settings + env configuration\n|   |   |-- urls.py                         # Root URL router\n|   |   |-- wsgi.py                         # WSGI entrypoint\n|   |   `-- __init__.py                     # Project package marker\n|   |-- scripts/\n|   |   `-- seed_admin.py                   # Script-level admin seeding utility\n|   |-- utils/\n|   |   |-- id_generators.py                # Claim/user ID generation helpers\n|   |   |-- jwt_utils.py                    # JWT create/verify helpers\n|   |   |-- masking.py                      # Aadhaar/PAN/account masking utilities\n|   |   |-- ocr.py                          # OCR helper wrappers (Tesseract/PDF)\n|   |   |-- validators.py                   # Validation helpers/regex checks\n|   |   `-- __init__.py                     # Utils package marker\n|   |-- .env                                # Local environment values (never commit real secrets)\n|   |-- .env.example                        # Environment template for setup/deploy\n|   |-- Dockerfile                          # Backend image build instructions\n|   |-- manage.py                           # Django management entrypoint\n|   |-- Procfile                            # Render process command definition\n|   |-- requirements.txt                    # Core Python dependencies\n|   |-- requirements-crewai-tools.txt       # Optional CrewAI tools dependency set\n|   |-- runtime.txt                         # Render Python runtime version\n|   `-- start_render.sh                     # Render startup script (collect/check/run)\n|-- frontend/\n|   |-- index.html                          # Landing page\n|   |-- css/\n|   |   `-- main.css                        # Global frontend styling\n|   |-- js/\n|   |   |-- api.js                          # API client functions (fetch wrappers)\n|   |   `-- ui.js                           # Frontend UI behaviors and interactions\n|   |-- pages/\n|   |   |-- admin-dashboard.html            # Admin dashboard UI\n|   |   |-- admin-login.html                # Admin login page\n|   |   |-- agent-dashboard.html            # Agent dashboard UI\n|   |   |-- agent-login.html                # Agent login page\n|   |   |-- dashboard.html                  # Claimant dashboard page\n|   |   |-- login.html                      # Claimant login page\n|   |   |-- register.html                   # Claimant registration page\n|   |   `-- verify-otp.html                 # OTP verification page\n|   `-- assets/                             # Static assets (images/icons, optional)\n|-- .gitignore                              # Git ignore rules\n|-- docker-compose.yml                      # Local Docker services (backend + MongoDB)\n|-- README.md                               # Project documentation\n|-- render.yaml                             # Render Blueprint configuration\n|-- render_readme.md                        # Detailed Render deployment guide\n|-- run.bat                                 # Windows quick-start runner\n|-- seed_admin.bat                          # Windows helper to seed admin\n`-- structure.txt                           # Generated tree reference file\n```\n\n---\n\n## Prerequisites\n\n| Requirement | Version | Download |\n|------------|---------|----------|\n| Python | 3.12+ | https://python.org |\n| MongoDB | 7.0+ | https://mongodb.com/try/download/community |\n| Tesseract OCR | 5.x | https://github.com/UB-Mannheim/tesseract/wiki *(Windows)* |\n| Poppler | latest | https://github.com/oschwartz10612/poppler-windows *(Windows)* |\n| Git | any | https://git-scm.com |\n\n> **Windows Tesseract:** After installing, Tesseract is typically at:\n> `C:\\Program Files\\Tesseract-OCR\\tesseract.exe`\n> This path is already pre-configured in `backend\\.env`.\n\n> **Windows Poppler:** After downloading, add the `bin/` folder to your system PATH so `pdf2image` can find `pdftoppm`.\n\n---\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `SECRET_KEY` | (dev key) | Django secret key |\n| `DEBUG` | `True` | Django debug mode |\n| `MONGO_URI` | `mongodb://localhost:27017/` | MongoDB connection string |\n| `MONGO_DB_NAME` | `nexsettle_db` | Database name |\n| `JWT_SECRET` | (dev key) | JWT signing secret |\n| `GEMINI_API_KEY` | `\"\"` | Google Gemini API key *(required for AI extraction)* |\n| `EMAIL_HOST` | `smtp.gmail.com` | SMTP server |\n| `EMAIL_HOST_USER` | `\"\"` | Gmail address for OTP emails |\n| `EMAIL_HOST_PASSWORD` | `\"\"` | Gmail App Password |\n| `TESSERACT_CMD` | `C:\\Program Files\\Tesseract-OCR\\tesseract.exe` | Tesseract path (Windows) |\n\n> Get a Gemini API key at: https://aistudio.google.com/app/apikey\n\n---\n\n## Quick Start (Windows)\n\n```batch\n# 1. Clone the repo\ngit clone https://github.com/SANJAI-s0/NexSettle.git\ncd NexSettle_Project\n\n# 2. Start MongoDB (if not running as a service)\nmongod --dbpath C:\\data\\db\n\n# 3. Run the backend (auto-creates venv + installs deps)\nrun.bat\n\n# 4. In a new terminal, seed the default admin account\nseed_admin.bat\n\n# 5. Open the app\n# Frontend and API are both served from Django\n# Open http://localhost:8000\n```\n\n> **Set your `GEMINI_API_KEY`** in `backend\\.env` before running â€” otherwise AI extraction will be skipped and regex fallback is used.\n\n---\n\n## Manual Setup\n\n### 1. Create virtual environment\n\n```powershell\ncd backend\npython -m venv venv\nvenv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n### 2. Configure environment\n\n```powershell\ncopy .env.example .env\n# Edit .env and fill in GEMINI_API_KEY, email credentials\n```\n\n### 3. Create media directories\n\n```powershell\nmkdir media\\claims\nmkdir media\\reports\n```\n\n### 4. Seed admin account\n\n```powershell\npython scripts\\seed_admin.py\n```\n\n### 5. Start Django\n\n```powershell\npython manage.py runserver\n```\n\nBackend + frontend are available at **http://localhost:8000**\n\n### 6. Open app\n\nOpen `http://localhost:8000` directly in your browser.\n\n> **CORS Note:** Django is configured with `CORS_ALLOW_ALL_ORIGINS = True` for local development.\n\n---\n\n## Docker Setup\n\n```bash\n# Build and start all services\ndocker-compose up --build\n\n# Seed admin (in a separate terminal)\ndocker exec nexsettle_backend python scripts/seed_admin.py\n\n# Stop\ndocker-compose down\n```\n\nServices:\n- `nexsettle_backend` â†’ Django at http://localhost:8000\n- `nexsettle_mongo` â†’ MongoDB at localhost:27017\n\n---\n\n## One-command Bootstrap\n\nFor local/project initialization:\n\n```powershell\ncd backend\npython manage.py bootstrap_project\npython manage.py runserver\n```\n\n---\n\n## API Reference\n\n### Authentication  `POST /api/auth/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/auth/register/` | POST | âŒ | Register new claimant |\n| `/api/auth/verify-otp/` | POST | âŒ | Verify email OTP |\n| `/api/auth/resend-otp/` | POST | âŒ | Resend OTP |\n| `/api/auth/login/` | POST | âŒ | Login (returns JWT) |\n| `/api/auth/logout/` | POST | âœ… | Logout |\n| `/api/auth/profile/` | GET | âœ… | Get profile |\n\n### AI Pipeline  `POST /api/pipeline/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/pipeline/process/` | POST | âœ… User | Upload files & run full AI pipeline |\n\n**Request:** `multipart/form-data` with one or more `files` fields  \n**Response:** Full extraction JSON with documents, fraud flag, estimation\n\n### Claims  `GET /api/claims/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/claims/list/` | GET | âœ… User | List own claims |\n| `/api/claims/all/` | GET | âœ… Admin | All claims (paginated) |\n| `/api/claims/<id>/` | GET | âœ… User | Get single claim |\n| `/api/claims/<id>/status/` | PATCH | âœ… Agent/Admin | Update claim status |\n\n### Reports  `GET /api/reports/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/reports/<id>/download/` | GET | âœ… | Download PDF report |\n\n### Agent  `POST /api/agent/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/agent/login/` | POST | âŒ | Agent login |\n| `/api/agent/claims/` | GET | âœ… Agent | Pending claims queue |\n| `/api/agent/claims/<id>/review/` | POST | âœ… Agent | Submit review |\n\n### Admin  `POST /api/admin-panel/`\n\n| Endpoint | Method | Auth | Description |\n|----------|--------|------|-------------|\n| `/api/admin-panel/login/` | POST | âŒ | Admin login |\n| `/api/admin-panel/dashboard/` | GET | âœ… Admin | Platform stats |\n| `/api/admin-panel/claims/` | GET | âœ… Admin | All claims with filters |\n| `/api/admin-panel/claims/<id>/approve/` | PATCH | âœ… Admin | Approve claim |\n| `/api/admin-panel/claims/<id>/reject/` | PATCH | âœ… Admin | Reject claim |\n| `/api/admin-panel/agents/create/` | POST | âœ… Admin | Create agent account |\n\n---\n\n## Frontend Pages\n\n| File | URL | Role |\n|------|-----|------|\n| `frontend/index.html` | Landing page | Public |\n| `frontend/pages/login.html` | Claimant login | Public |\n| `frontend/pages/register.html` | Registration + OTP | Public |\n| `frontend/pages/verify-otp.html` | Email verification | Public |\n| `frontend/pages/dashboard.html` | Claimant dashboard | User |\n| `frontend/pages/agent-login.html` | Agent login | Public |\n| `frontend/pages/agent-dashboard.html` | Agent claims queue | Agent |\n| `frontend/pages/admin-login.html` | Admin login | Public |\n| `frontend/pages/admin-dashboard.html` | Full admin panel | Admin |\n\n---\n\n## MongoDB Collections\n\nDatabase: **`nexsettle_db`**\n\n| Collection | Purpose |\n|-----------|---------|\n| `users` | Claimant accounts |\n| `otp_verification` | OTP codes for email verification |\n| `policy_holder_data` | Pre-existing insurance details |\n| `nominee_details` | Nominee information |\n| `claims` | Processed claims with AI results |\n| `claim_documents` | File paths for uploaded documents |\n| `agents` | Agent accounts |\n| `admins` | Admin accounts |\n| `fraud_logs` | Fraud detection audit trail |\n\n---\n\n## AI Pipeline\n\n### Execution Modes\n\n| Mode | Config | Description |\n|------|--------|-------------|\n| LangGraph | `AI_ORCHESTRATOR=langgraph` | Graph-based deterministic node execution |\n| CrewAI (Agentic) | `AI_ORCHESTRATOR=crewai` + `USE_CREW_AI=True` | Multi-agent role-based orchestration |\n| Gemini extraction | `USE_GEMINI=True` | LLM-assisted structured extraction |\n| Regex fallback | `USE_GEMINI=False` or API failure | Deterministic extraction fallback |\n\n### End-to-End Pipeline Graph\n\n```mermaid\nflowchart TD\n    A[Upload Documents] --> B[Input Validator]\n    B --> C[Format + Type Gate]\n    C --> D[OCR Processor]\n    D --> E[Document Classifier]\n    E --> F[Data Extractor]\n    F --> G[Identity Normalizer]\n    G --> H[Fraud Detector]\n    H --> I[Policy Verifier]\n    I --> J[Claim Estimator]\n    J --> K[Report Generator]\n    K --> L[Mask Sensitive Fields]\n    L --> M[MongoDB Storage]\n    M --> N[Single Structured JSON Response]\n```\n\n### Stage Responsibilities\n\n| Stage | What It Does | Key Output |\n|------|---------------|------------|\n| Input Validator | Validates file presence, type, and claim payload | Accepted/rejected upload |\n| Format + Type Gate | Applies strict rules (for example death certificate must be image/PDF) | `invalid_document` when violated |\n| OCR Processor | Runs OCR for images/scanned PDFs, reads text from text/PDF directly when possible | Extracted text + OCR confidence |\n| Document Classifier | Detects document type using keywords/layout hints | `document_type` per file |\n| Data Extractor | Extracts only required fields (no hallucination) | `extracted_data` with null for missing fields |\n| Identity Normalizer | Normalizes Aadhaar/PAN/date formats | Clean identifiers and `YYYY-MM-DD` dates |\n| Fraud Detector | Checks mismatches, invalid IDs, suspicious patterns, date inconsistencies | `fraud_flag` + log signals |\n| Policy Verifier | Matches extracted identities against `policy_holder_data` | Verification result |\n| Claim Estimator | Computes estimated payout using claim type + fraud state | `estimated_claim_amount` |\n| Report Generator | Builds PDF settlement report | Report file path |\n| Mask + Storage | Masks Aadhaar/PAN/account before persistence in MongoDB | Stored safe document |\n\n### Strict Validation and Status Rules\n\n| Condition | Status | Behavior |\n|----------|--------|----------|\n| OCR confidence below threshold (`< 0.6`) | `failed_ocr` | Returns re-upload message for clearer document |\n| Invalid type/format combination | `invalid_document` | File rejected by rule gate |\n| Partial extraction across uploaded docs | `partial` | Returns available fields, missing as `null` |\n| All required processing succeeded | `success` | Full structured JSON response |\n\n### Extraction Rules (Enforced)\n\n1. Missing fields are always returned as `null`.\n2. Aadhaar is extracted by regex and normalized to 12 digits only.\n3. PAN is extracted by regex and normalized to uppercase pattern.\n4. Date fields are normalized to `YYYY-MM-DD`.\n5. Aadhaar/PAN outputs contain only identifier values in extraction payload.\n6. No inferred values are added when source text is absent.\n\n### Fraud Detection Signals\n\n1. Name mismatch across submitted documents.\n2. Invalid Aadhaar format or checksum-like pattern issues.\n3. Invalid PAN format.\n4. Extremely low OCR confidence.\n5. Suspicious formatting or altered-looking text blocks.\n6. Date inconsistencies (death date, registration date, policy timelines).\n\n### Privacy and MongoDB Storage Policy\n\n1. Full identifiers are used only during processing.\n2. Before MongoDB write, sensitive values are masked.\n3. Masking examples:\n   `Aadhaar: 123412341234 -> ********1234`\n   `PAN: ABCDE1234F -> *****1234F`\n   `Bank A/C: 123456789012 -> XXXXXXXX9012`\n4. Stored collections include `claims`, `claim_documents`, and `fraud_logs`.\n\n### Output Contract\n\nThe pipeline returns one structured object with:\n\n1. Top-level status and claim id.\n2. Per-document classification + extracted data + confidence.\n3. Global `fraud_flag`.\n4. `overall_confidence`.\n5. Ready-to-store payload for `nexsettle_db`.\n\n### Supported Document Types\n\n| Type | Key Fields Extracted |\n|------|---------------------|\n| `death_certificate` | full_name, date_of_death, cause_of_death, certificate_number, issuing_authority |\n| `aadhaar` | aadhaar_number (masked to ****1234) |\n| `pan` | pan_number (masked to *****4F) |\n| `bank` | account_number, ifsc_code, bank_name, account_holder_name |\n| `policy` | policy_number, sum_assured, nominee_name, dates |\n| `fir` | fir_number, police_station, incident_description |\n| `hospital_record` | diagnosis, treatment_summary, cause_of_death |\n| `newspaper_clipping` | headline, publication_date, incident_description |\n\n---\n\n## Credentials (Default)\n\n> Created by running `seed_admin.bat` or `python scripts/seed_admin.py`\n\n| Role | Email | Password |\n|------|-------|----------|\n| Admin | admin@nexsettle.org | Admin@123 |\n\n**Agents** are created by the admin through the Admin Portal â†’ Agent Management.\n\n**Claimants** self-register at `frontend/pages/register.html`.\n\n---\n\n## Development Notes\n\n### CORS & CSRF\n- `CORS_ALLOW_ALL_ORIGINS = True` is set for local dev.\n- JWT in `Authorization: Bearer <token>` header handles auth â€” no CSRF required.\n\n### Fallback Extraction\n- If Gemini API key is missing or the call fails, **regex-based extraction** runs automatically as a fallback.\n\n### OCR Confidence Threshold\n- If Tesseract confidence < 0.6 â†’ `status: \"failed_ocr\"` + user prompt to re-upload.\n- PDFs with embedded text bypass Tesseract (confidence = 0.95).\n\n### Claim Estimation Rules\n- **Natural Death:** 100% of Sum Assured\n- **Accidental Death:** 200% (double indemnity)\n- **Fraud Detected:** â‚¹0 payout\n\n### Data Masking (MongoDB storage)\n- Aadhaar: `123412341234` â†’ `********1234`\n- PAN: `ABCDE1234F` â†’ `*****1234F`\n- Bank Account: `123456789012` â†’ `XXXXXXXX9012`\n\n---\n\n*Built with â¤ï¸ using Django Â· LangGraph Â· Gemini 2.5 Flash Â· MongoDB*\n\n---\n\n## CI/CD (GitHub Actions)\n\nThis repo now includes:\n\n- `.github/workflows/ci.yml`\n  - Runs on push/PR\n  - Installs dependencies\n  - Compiles Python modules\n  - Runs Django checks\n  - Runs Mongo-backed smoke flow (`smoke_test_flow`)\n\n- `.github/workflows/deploy-render.yml`\n  - Triggers Render deployment after successful CI on `main/master`\n  - Also supports manual trigger (`workflow_dispatch`)\n  - Requires GitHub secret: `RENDER_DEPLOY_HOOK_URL`\n\n### Required GitHub Secret\n\nAdd this in GitHub repo settings:\n\n- `RENDER_DEPLOY_HOOK_URL` = your Render deploy hook URL\n\n---\n\n## Render Deployment\n\nRender deployment is fully documented in:\n\n- [Render Deployment Guide](render_readme.md)\n\nQuick note:\n\n- Deployment method: Render Blueprint via `render.yaml`\n- Health check: `/api/health/`\n- App root: `/`\n\n---\n\n## License\n\nThis project is licensed under the MIT License.\n\n- [View License](LICENSE)\n\n---\n`r`n\n\n","readmeExcerpt":"# NexSettle - AI-Powered Insurance Claims Automation Platform **Tech Stack:** Django · LangGraph · CrewAI · Gemini 2.5 Flash · Tesseract OCR · MongoDB · Vanilla HTML/CSS/JS --- Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 9. $1 10. $1 11. $1 12. $1 13. $1 14. $1 15. $1 16. $1 17. $1 18. $1 --- Project Overview NexSettle automates the entire insurance claim lifecycle: | Step | Technology | Descrip","codeSnippets":[],"executableExamples":[{"language":"mermaid","snippet":"flowchart TD\n    A[User Opens /] --> B{Role Action}\n    B -->|Register| C[register.html]\n    C --> D[OTP Sent]\n    D --> E[verify-otp.html]\n    E --> F[dashboard.html]\n    B -->|Login| G[login.html]\n    G --> F\n    B -->|Agent Login| H[agent-login.html]\n    H --> I[agent-dashboard.html]\n    B -->|Admin Login| J[admin-login.html]\n    J --> K[admin-dashboard.html]"},{"language":"mermaid","snippet":"flowchart TD\n    A[Claim Files Uploaded] --> B[Agentic Orchestrator]\n    B --> C[DocumentClassifier Agent]\n    C --> D[OCRProcessor Agent]\n    D --> E[DataExtractor Agent]\n    E --> F[FraudDetector Agent]\n    F --> G{Fraud?}\n    G -->|Yes| H[Flag Claim + Write fraud_logs]\n    G -->|No| I[PolicyVerifier Agent]\n    I --> J[ClaimEstimator Agent]\n    J --> K[ReportGenerator Agent]\n    K --> L[MongoDBStorage Agent]"},{"language":"mermaid","snippet":"flowchart TD\n    A[Frontend Request] --> B[Django URL Router]\n    B --> C[App View]\n    C --> D{Endpoint Type}\n    D -->|Auth| E[apps/authentication/views.py]\n    D -->|Claim APIs| F[apps/claims/views.py]\n    D -->|Pipeline| G[apps/ai_pipeline/views.py]\n    G --> H[LangGraph or CrewAI Orchestration]\n    H --> I[MongoDB via db/mongo_client.py]\n    H --> J[ReportLab PDF Generation]\n    I --> K[JSON Response]\n    J --> K"},{"language":"mermaid","snippet":"flowchart LR\n    A[User Uploads Claim Documents] --> B[Frontend HTML/CSS/JS]\n    B --> C[Django REST API]\n    C --> D[Document Intake + Validation]\n    D --> E[OCR Engine: Tesseract/pdf2image]\n    E --> F[Classification + Extraction]\n    F --> G[Gemini 2.5 Flash]\n    G --> H[Fraud + Policy Verification]\n    H --> I[Claim Estimation]\n    I --> J[PDF Report Generation]\n    J --> K[MongoDB: nexsettle_db]\n    K --> L[Agent/Admin Review]\n    L --> M[Settlement Decision]"},{"language":"text","snippet":"NexSettle_Project/\n|-- .github/\n|   |-- workflows/\n|   |   |-- ci.yml                          # GitHub Actions CI (install, check, smoke tests)\n|   |   `-- deploy-render.yml               # GitHub Actions deploy trigger for Render\n|-- docs/\n|   `-- architecture.svg                    # High-level architecture diagram (linked above)\n|-- backend/\n|   |-- apps/                               # Django app modules (API domains)\n|   |   |-- admins/\n|   |   |   |-- apps.py                     # Django app config for admin module\n|   |   |   |-- urls.py                     # Admin API routes\n|   |   |   `-- views.py                    # Admin auth/dashboard/approval handlers\n|   |   |-- agents/\n|   |   |   |-- apps.py                     # Django app config for agent module\n|   |   |   |-- urls.py                     # Agent API routes\n|   |   |   `-- views.py                    # Agent login/review handlers\n|   |   |-- ai_pipeline/\n|   |   |   |-- apps.py                     # Django app config for AI pipeline\n|   |   |   |-- claim_estimator.py          # Claim amount estimation logic\n|   |   |   |-- crew_pipeline.py            # CrewAI orchestration flow\n|   |   |   |-- data_extractor.py           # Structured field extraction logic\n|   |   |   |-- document_classifier.py      # Document type classifier\n|   |   |   |-- fraud_detector.py           # Fraud signal checks\n|   |   |   |-- pipeline.py                 # LangGraph/LangChain orchestration flow\n|   |   |   |-- policy_verifier.py          # MongoDB policy cross-verification\n|   |   |   |-- urls.py                     # Pipeline API routes\n|   |   |   `-- views.py                    # Upload/process endpoints\n|   |   |-- authentication/\n|   |   |   |-- apps.py                     # Django app config for auth module\n|   |   |   |-- urls.py                     # Register/login/OTP API routes\n|   |   |   `-- views.py                    # Auth and OTP handlers\n|   |   |-- claims/\n|   |   |   |-- apps.py                   "},{"language":"batch","snippet":"# 1. Clone the repo\ngit clone https://github.com/SANJAI-s0/NexSettle.git\ncd NexSettle_Project\n\n# 2. Start MongoDB (if not running as a service)\nmongod --dbpath C:\\data\\db\n\n# 3. Run the backend (auto-creates venv + installs deps)\nrun.bat\n\n# 4. In a new terminal, seed the default admin account\nseed_admin.bat\n\n# 5. Open the app\n# Frontend and API are both served from Django\n# Open http://localhost:8000"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"AI-powered insurance claims automation using Django, CrewAI/LangGraph, Gemini, OCR, and MongoDB for document extraction, fraud checks, and claim decision support. # NexSettle - AI-Powered Insurance Claims Automation Platform **Tech Stack:** Django · LangGraph · CrewAI · Gemini 2.5 Flash · Tesseract OCR · MongoDB · Vanilla HTML/CSS/JS --- Table of Contents 1. $1 2. $1 3. $1 4. $1 5. $1 6. $1 7. $1 8. $1 9. $1 10. $1 11. $1 12. $1 13. $1 14. $1 15. $1 16. $1 17. $1 18. $1 --- Project Overview NexSettle automates the entire insurance claim lifecycle: | Step | Technology | Descrip","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":359,"uniquenessScore":72,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-05-31T06:18:45.292Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T00:05:56.968Z","emptyReason":null},"items":[{"id":"959108e7-5f7c-45ac-bea0-9ab67f017226","entityType":"agent","canonicalPath":"/agent/langchain-x1pay-langchain","slug":"langchain-x1pay-langchain","name":"@x1pay/langchain","description":"LangChain/LangGraph tools for AI agent x402 payments on X1","url":"https://www.npmjs.com/package/@x1pay/langchain","homepage":null,"source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:07.099Z","createdAt":"2026-05-23T06:52:58.553Z","downloads":null},{"id":"4f8f8f95-34f7-49a9-b516-391d1c355d6c","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-swarm","slug":"langchain-langchain-langgraph-swarm","name":"@langchain/langgraph-swarm","description":"An implementation of a multi-agent swarm using LangGraph","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.792Z","createdAt":"2026-05-23T06:52:55.396Z","downloads":null},{"id":"e36fd59b-38d7-4e73-aa20-c1431a8f7434","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-supervisor","slug":"langchain-langchain-langgraph-supervisor","name":"@langchain/langgraph-supervisor","description":"LangGraph Multi-Agent Supervisor","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.756Z","createdAt":"2026-05-23T06:52:55.353Z","downloads":null},{"id":"d1d0f93e-b722-4791-9bbf-2532470054c2","entityType":"agent","canonicalPath":"/agent/langchain-oceanbus-langchain","slug":"langchain-oceanbus-langchain","name":"oceanbus-langchain","description":"LangChain tools for OceanBus — give your LangChain and CrewAI agents a global identity, encrypted messaging, and Yellow Pages service discovery with a single import.","url":"git+https://github.com/oceanbus/oceanbus.git","homepage":"https://github.com/oceanbus/oceanbus#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":["oceanbus","langchain","langchain-tools","agent-to-agent","ai-agent","communication","messaging","e2ee","structured-tool","yellow-pages","service-discovery","reputation","crewai"],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:02.595Z","createdAt":"2026-05-23T06:52:54.240Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}