Next.js, NestJS, GraphQL, MongoDB, AWS
GovDoc — AI Analysis for Government Contracts
A platform that automatically reads and extracts critical information from government contracts — surfacing contacts, financials, compliance requirements, and deadlines so teams can focus on winning work instead of reading documents.
What needed to be solved
Government contracts are dense and time-consuming to review manually — critical contacts, budget figures, compliance requirements, and deadlines are buried across dozens of pages. Teams managing multiple active bids had no centralized system, and smaller businesses competing for government work couldn't afford a full-time contract analyst.
Key Decisions & Challenges
Isolated Database and S3 Bucket per Tenant
Situation
Data separation and security were top requirements from the client — government contract data is sensitive and tenants cannot have any visibility into each other's data.
Options Considered
- Shared database with tenant-scoped queries — simpler to manage, but a misconfigured filter could expose another company's data
- Isolated database and S3 bucket per tenant — separation enforced at the infrastructure level, not just the application level
Decision
Each company gets its own MongoDB database and its own S3 bucket with controlled access permissions. Isolation is enforced at the infrastructure level, not just the application level.
AWS Lambda for AI Processing
Situation
The AI processing logic was written in Python, while the main backend is NestJS. Mixing languages in the same service would have made the codebase harder to maintain and deploy independently.
Options Considered
- Embed Python processing inside the NestJS service — simpler call path, but forces two runtimes into one deployment
- Deploy Python code as a standalone Lambda function exposed via API Gateway — keeps both codebases clean and independently deployable
Decision
The Python AI logic was deployed as a standalone Lambda function and exposed via API Gateway. The NestJS backend calls it as a regular API, keeping both services independently deployable.
Features
Document Analysis
Uploaded documents are automatically classified and analyzed. Paid users get a comprehensive breakdown covering every major dimension of the contract.
Contact Extraction
Every point of contact in a document is identified and pulled out — title, email, phone, agency affiliation, office address, and LinkedIn where available.
Financial Intelligence
Contract values, budget line items, and pricing terms are extracted and surfaced so users never miss a number buried in an appendix.
Compliance & Requirements Mapping
Key requirements, delivery schedules, mandatory certifications, and compliance standards are automatically identified.
Project & Deadline Management
Users group related documents into projects, set and track deadlines with timezone support, and monitor the status of active bids from a single dashboard.
AI-Generated Summaries
Every document gets a plain-English AI summary. Users can rate summaries and submit corrections, feeding directly into improving the AI over time.
Document Export
Processed documents are available for download via secure, time-limited links. Export history is tracked with file metadata.
Free-Tier Entry Point
Anyone can upload a single document and get a basic AI scan without creating an account, serving as the top of the conversion funnel.
In Action
Upload document
My Role
I led a team of three engineers — contributing to development directly, reviewing pull requests, and owning the technical decisions throughout the project.
Tech Stack
Outcome
Delivered to the client.