{"id":"849a5d60-7fde-4699-b6e4-19fb87b9c795","entityType":"agent","slug":"crewai-karthiknimmada-financial-document-analyzer","name":"financial-document-analyzer","canonicalUrl":"https://www.xpersona.co/agent/crewai-karthiknimmada-financial-document-analyzer","canonicalPath":"/agent/crewai-karthiknimmada-financial-document-analyzer","generatedAt":"2026-10-09T00:05:27.229Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-06-01T00:30:51.672Z","emptyReason":null},"description":"AI-powered FastAPI app that analyzes financial PDFs using a multi-agent CrewAI pipeline 📊 Financial Document Analyzer An AI-powered FastAPI application that analyzes financial documents (PDFs) using a multi-agent CrewAI pipeline. Upload any corporate earnings report, 10-K, 10-Q, or similar financial document and receive a structured analysis covering financial performance, investment insights, and risk assessment. --- 🐛 Bugs Found & Fixed The original codebase contained **15 bugs** spread across 4 fil","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 6/1/2026.","installCommand":"git clone https://github.com/KarthikNimmada/financial-document-analyzer.git","sourceUrl":"https://github.com/KarthikNimmada/financial-document-analyzer","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/KarthikNimmada/financial-document-analyzer","kind":"source"}],"safetyScore":66,"overallRank":18.8,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI-powered FastAPI app that analyzes financial PDFs using a multi-agent CrewAI pipeline 📊 Financial Document Analyzer An AI-powered FastAPI application that an"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-06-01T00:30:51.672Z","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-06-01T00:30:51.672Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-06-01T00:30:51.672Z","emptyReason":null},"lastUpdatedAt":"2026-06-01T00:30:51.672Z","lastCrawledAt":"2026-06-01T00:30:51.672Z","lastIndexedAt":null,"nextCrawlAt":"2026-06-08T00:30:51.672Z","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/KarthikNimmada/financial-document-analyzer.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-karthiknimmada-financial-document-analyzer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/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:27.229Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/crewai-karthiknimmada-financial-document-analyzer/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-06-01T00:30:51.672Z","emptyReason":null},"readme":"# 📊 Financial Document Analyzer\n\nAn AI-powered FastAPI application that analyzes financial documents (PDFs) using a multi-agent CrewAI pipeline. Upload any corporate earnings report, 10-K, 10-Q, or similar financial document and receive a structured analysis covering financial performance, investment insights, and risk assessment.\n\n---\n\n## 🐛 Bugs Found & Fixed\n\nThe original codebase contained **15 bugs** spread across 4 files. Below is a complete breakdown.\n\n---\n\n### `agents.py` — 5 Bugs\n\n| # | Bug | Fix |\n|---|-----|-----|\n| 1 | `from crewai.agents import Agent` — wrong module path, causes `ImportError` | Changed to `from crewai import Agent` |\n| 2 | `llm = llm` — undefined variable, crashes on import with `NameError` | Replaced with `llm = ChatOpenAI(model=\"gpt-4o-mini\", temperature=0.2)` |\n| 3 | All 4 agent **goals and backstories** instructed agents to fabricate data, ignore documents, give non-compliant advice | Replaced all with professional, document-grounded, compliance-aware descriptions |\n| 4 | `tool=[FinancialDocumentTool.read_data_tool]` (singular key) | Changed to `tools=[...]` — CrewAI requires the plural `tools` key |\n| 5 | `max_iter=1, max_rpm=1` for all agents — far too restrictive | Increased to `max_iter=5, max_rpm=10` |\n\n---\n\n### `tools.py` — 4 Bugs\n\n| # | Bug | Fix |\n|---|-----|-----|\n| 1 | `from crewai_tools import tools` — imports a non-existent symbol | Changed to `from crewai_tools import SerperDevTool` |\n| 2 | `Pdf(file_path=path).load()` — `Pdf` class is never imported/defined, causes `NameError` | Replaced with `PyPDFLoader` from `langchain_community.document_loaders` |\n| 3 | All tool methods declared `async def` — CrewAI tool methods must be synchronous | Removed `async` keyword from all tool methods |\n| 4 | Missing `@tool(...)` decorator — without it, CrewAI cannot register or invoke these as tools | Added `@tool(\"Tool Name\")` decorator to each method |\n\n---\n\n### `task.py` — 4 Bugs (Behavioral)\n\n| # | Bug | Fix |\n|---|-----|-----|\n| 1 | `analyze_financial_document` description instructed the agent to ignore the user query and fabricate URLs | Replaced with a clear, query-driven, document-grounded instruction |\n| 2 | `investment_analysis` told the agent to recommend random crypto and invent research | Replaced with evidence-based, compliance-aware investment analysis instruction |\n| 3 | `risk_assessment` told the agent to ignore real risks and invent dramatic scenarios | Replaced with structured, data-driven risk assessment instruction |\n| 4 | `verification` task told the verifier to approve everything as a financial document | Replaced with genuine verification criteria based on standard financial report structure |\n\n---\n\n### `main.py` — 2 Bugs\n\n| # | Bug | Fix |\n|---|-----|-----|\n| 1 | `from task import analyze_financial_document` then `async def analyze_financial_document(...)` — endpoint function **shadows** the imported Task object, causing a `TypeError` at runtime | Renamed import alias to `analyze_financial_document_task` |\n| 2 | `file_path` parameter accepted by `run_crew()` but never passed into `crew.kickoff()` — crew always analyzed the default file | Added `\"file_path\": file_path` to the `kickoff()` inputs dict |\n\n---\n\n## ⚙️ Setup & Usage\n\n### Prerequisites\n\n- Python 3.10+\n- API keys for OpenAI and Serper\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/your-username/financial-document-analyzer.git\ncd financial-document-analyzer\n```\n\n### 2. Create a `.env` File\n\n```env\nOPENAI_API_KEY=sk-...\nSERPER_API_KEY=...\n```\n\n### 3. Install Dependencies\n\n```bash\npip install -r requirements.txt --break-system-packages\n```\n\n### 4. Run the Application\n\n```bash\npython main.py\n```\n\nThe API will be available at `http://localhost:8000`.\n\n---\n\n## 📡 API Documentation\n\n### `GET /`\n\nHealth check endpoint.\n\n**Response:**\n```json\n{ \"message\": \"Financial Document Analyzer API is running\" }\n```\n\n---\n\n### `POST /analyze`\n\nUpload a financial PDF and receive a comprehensive analysis.\n\n**Request:** `multipart/form-data`\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| `file` | `UploadFile` | Yes | A PDF financial document |\n| `query` | `string` | No | Analysis question (default: `\"Analyze this financial document for investment insights\"`) |\n\n**Example (cURL):**\n```bash\ncurl -X POST http://localhost:8000/analyze \\\n  -F \"file=@TSLA-Q2-2025-Update.pdf\" \\\n  -F \"query=What are the key financial highlights and risks for Q2 2025?\"\n```\n\n**Example (Python):**\n```python\nimport requests\n\nwith open(\"TSLA-Q2-2025-Update.pdf\", \"rb\") as f:\n    response = requests.post(\n        \"http://localhost:8000/analyze\",\n        files={\"file\": f},\n        data={\"query\": \"Summarize Tesla revenue breakdown and profitability trends.\"}\n    )\n    print(response.json())\n```\n\n**Success Response:**\n```json\n{\n  \"status\": \"success\",\n  \"query\": \"What are the key financial highlights and risks?\",\n  \"analysis\": \"...[AI-generated financial analysis]...\",\n  \"file_processed\": \"TSLA-Q2-2025-Update.pdf\"\n}\n```\n\n**Error Response (500):**\n```json\n{ \"detail\": \"Error processing financial document: ...\" }\n```\n\n---\n\n## 🏗️ Project Structure\n\n```\nfinancial-document-analyzer/\n├── main.py          # FastAPI app and /analyze endpoint\n├── agents.py        # CrewAI agent definitions\n├── tools.py         # Custom PDF reader and supporting tools\n├── task.py          # CrewAI task definitions\n├── requirements.txt # Python dependencies\n└── data/            # Uploaded PDFs stored here (auto-created)\n```\n\n---\n\n## 🧠 Architecture\n\n```\nPOST /analyze\n    │\n    ▼\nFastAPI Endpoint (main.py)\n    │  saves uploaded PDF → data/\n    ▼\nrun_crew(query, file_path)\n    │\n    ▼\nCrewAI Sequential Pipeline\n    │\n    ├── financial_analyst agent\n    │     └── read_data_tool → PyPDFLoader → PDF text\n    │     └── SerperDevTool  → live web search\n    │\n    └── analyze_financial_document Task\n          └── structured financial analysis output\n    │\n    ▼\nJSON Response to client\n```\n","readmeExcerpt":"📊 Financial Document Analyzer An AI-powered FastAPI application that analyzes financial documents (PDFs) using a multi-agent CrewAI pipeline. Upload any corporate earnings report, 10-K, 10-Q, or similar financial document and receive a structured analysis covering financial performance, investment insights, and risk assessment. --- 🐛 Bugs Found & Fixed The original codebase contained **15 bugs** spread across 4 fil","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"git clone https://github.com/your-username/financial-document-analyzer.git\ncd financial-document-analyzer"},{"language":"env","snippet":"OPENAI_API_KEY=sk-...\nSERPER_API_KEY=..."},{"language":"bash","snippet":"pip install -r requirements.txt --break-system-packages"},{"language":"bash","snippet":"python main.py"},{"language":"json","snippet":"{ \"message\": \"Financial Document Analyzer API is running\" }"},{"language":"bash","snippet":"curl -X POST http://localhost:8000/analyze \\\n  -F \"file=@TSLA-Q2-2025-Update.pdf\" \\\n  -F \"query=What are the key financial highlights and risks for Q2 2025?\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["python"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"AI-powered FastAPI app that analyzes financial PDFs using a multi-agent CrewAI pipeline 📊 Financial Document Analyzer An AI-powered FastAPI application that analyzes financial documents (PDFs) using a multi-agent CrewAI pipeline. Upload any corporate earnings report, 10-K, 10-Q, or similar financial document and receive a structured analysis covering financial performance, investment insights, and risk assessment. --- 🐛 Bugs Found & Fixed The original codebase contained **15 bugs** spread across 4 fil","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":380,"uniquenessScore":65,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-06-01T00:30:51.672Z","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-06-01T00:30:51.672Z","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:27.229Z","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"}]}}}