Inspiration

I was inspired by how time-consuming and manual the RFP review process is for government contractors and proposal teams. Solicitation documents are often dense, repetitive, and high-stakes, so I wanted to build a tool that could turn those PDFs into a structured, usable workspace for compliance and proposal planning.

What it does

ProposalMatrix is a full-stack RFP analysis workspace that ingests solicitation PDFs, extracts compliance-oriented requirements, identifies deadlines and evaluation criteria, groups requirements into proposal sections, flags risk, and generates an editable compliance matrix, dashboard, proposal outline, and checklist. It also supports Excel and CSV exports and includes a built-in sample RFP for demos.

How we built it

I built ProposalMatrix as a full-stack application using React 19, TypeScript, and Vite on the frontend, with Django 5.2 and Django REST Framework on the backend. I used pdfplumber to extract text from uploaded PDFs and built a deterministic extraction pipeline that detects requirement-like language such as “shall,” “must,” and “required.” From there, the system categorizes requirements, assigns proposal sections and risk levels, and stores provenance metadata like source page, excerpt, and extraction reason. I also used openpyxl for Excel export and SQLite for local development.

Challenges we ran into

One of the biggest challenges was building a pipeline that worked on real PDF text rather than mocked sample data while still producing structured, useful outputs. Another challenge was making the extraction explainable and auditable, especially in a compliance-heavy workflow where users need to trust what the system found and why. I also had to balance building something demo-friendly with making the architecture realistic enough to support actual uploaded RFPs.

Accomplishments that we're proud of

I’m proud that I built an end-to-end system that works on real uploaded RFPs instead of just static demo content. The app can upload PDFs, extract requirements, generate dashboards and outlines, track checklist progress, and export usable compliance matrices. I’m also proud that I included provenance metadata in the extraction flow, which makes the output more transparent, reviewable, and easier to improve over time.

What we learned

I learned that even a deterministic, heuristic-based extraction pipeline can be genuinely useful when combined with a strong product workflow and editable outputs. I also learned how important auditability is in compliance-focused software. On the technical side, I got hands-on experience designing a full-stack system that connects document processing, structured extraction, API design, and frontend usability into one cohesive product.

What's next for Nidhi Konanur

Next, I want to make ProposalMatrix more robust and production-ready by surfacing provenance fields directly in the matrix UI, improving PDF parsing for tables and scanned documents, and adding async job handling with tools like Celery or RQ. I also want to expand test coverage for both the API and end-to-end flows, and tighten production settings for deployment security. Longer term, I’d like to evolve this into a smarter hybrid extraction system with stronger accuracy, better explainability, and more value for real proposal teams.

Built With

  • django-5.2
  • django-rest-framework
  • html
  • openpyxl
  • pdfplumber
  • react-19
  • react-router-7
  • simplejwt
  • sqlite
  • typescript
  • vite
Share this project:

Updates