-
-
A sample offer letter is transformed into a clear, structured summary.
-
https://github.com/Udayasaran-kumar/doclens
-
Important dates, annual salary, and joining bonus are extracted into an easy-to-read view.
-
Key offer details are presented at a glance, including role, employer, salary, and start date.
-
Required next steps and the people and organizations mentioned in the offer are clearly identified.
What is DocLens?
DocLens is a one-screen browser tool that gives a job seeker a clear first pass of an offer letter.
A job offer can contain important information about compensation, deadlines, required documents, the people involved, and the candidate's next steps — but finding those details manually can take time.
DocLens turns that first reading into an organized view.
The user can choose a built-in sample offer letter or upload a PDF, DOCX, or TXT file. After clicking Analyze Document, DocLens extracts the document text locally in the browser and organizes the information into six sections:
Summary
What should I do next?
Important dates
Money / compensation
Action items
People & organizations
The goal is not to replace careful reading of an employment offer. It is to give the job seeker a useful first pass so they can quickly understand what deserves their attention.
Why I built it
I wanted to build something around a practical everyday problem: important information is often buried inside unstructured documents.
For this hackathon, I deliberately kept the idea small. Instead of building a general document-management platform, chatbot, or multi-document system, I focused on one person and one moment: a job seeker who has just received an offer letter and wants to know what matters before deciding what to do next.
The built-in sample makes the experience reliable enough to demonstrate in about a minute.
How I built it
DocLens is built with React, TypeScript, and Vite.
The document is read locally in the browser:
PDF text is extracted with pdfjs-dist
DOCX text is extracted with mammoth
TXT files are read with the browser's File.text() API
The extracted text is then passed through a deterministic offer-letter reader that identifies facts such as names, organizations, dates, compensation amounts, and action requests.
There is no server, database, API key, or external AI model required for the proof of concept.
What I learned
The biggest learning was the value of planning before implementation.
I used the Devpost Learn Skill Pack's plan-first workflow to move through:
Scope → PRD → Technical Spec → Build → Test → Ship
The planning process forced me to choose one user journey and explicitly cut features that were not necessary for the proof of concept.
I also learned that document extraction and interpretation are separate problems. A document can be successfully read while the reader still misses facts because the wording is different from the patterns it expects. Testing the same offer letter through TXT, DOCX, and PDF helped expose those differences and led to a more robust deterministic reader.
Challenges
The main technical challenge was making the reader work with different ways an offer letter can express the same information.
For example, compensation might appear as $145,000, ₹12,00,000, or INR 12,00,000. A person's name might appear after To:, Dear, or alongside a reporting-manager description.
Instead of adding a large AI infrastructure layer, I expanded the deterministic reader and added fixtures and tests for the different document formats.
The result is intentionally a small proof of concept: reliable, understandable, and focused on helping someone get their first useful reading of an offer letter.
Built With
- css
- html
- javascript
- library
- mammoth
- pdf.js
- react
- testing
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.