Skip to content

feat: resume builder#1240

Merged
MODSetter merged 21 commits intoMODSetter:devfrom
AnishSarkar22:feat/resume-builder
Apr 17, 2026
Merged

feat: resume builder#1240
MODSetter merged 21 commits intoMODSetter:devfrom
AnishSarkar22:feat/resume-builder

Conversation

@AnishSarkar22
Copy link
Copy Markdown
Contributor

@AnishSarkar22 AnishSarkar22 commented Apr 16, 2026

Description

Motivation and Context

FIX #

Screenshots

API Changes

  • This PR includes API changes

Change Type

  • Bug fix
  • New feature
  • Performance improvement
  • Refactoring
  • Documentation
  • Dependency/Build system
  • Breaking change
  • Other (specify):

Testing Performed

  • Tested locally
  • Manual/QA verification

Checklist

  • Follows project coding standards and conventions
  • Documentation updated as needed
  • Dependencies updated as needed
  • No lint/build errors or new warnings
  • All relevant tests are passing

High-level PR Summary

This PR adds a comprehensive resume builder feature that allows users to generate professional resumes as Typst documents. The implementation includes a new generate_resume agent tool that produces structured resume content, database migrations to support a new content_type field distinguishing between Markdown reports and Typst-based resumes, backend endpoints for PDF preview and export, and frontend components for rendering PDF previews with zoom controls. The feature integrates into the existing chat interface with a new "Build Resume" default prompt and supports versioning for resume modifications.

⏱️ Estimated Review Time: 30-90 minutes

💡 Review Order Suggestion
Order File Path
1 surfsense_backend/alembic/versions/126_add_report_content_type.py
2 surfsense_backend/alembic/versions/127_seed_build_resume_prompt.py
3 surfsense_backend/app/db.py
4 surfsense_backend/app/prompts/system_defaults.py
5 surfsense_backend/app/schemas/reports.py
6 surfsense_backend/app/agents/new_chat/tools/resume.py
7 surfsense_backend/app/agents/new_chat/tools/registry.py
8 surfsense_backend/app/agents/new_chat/system_prompt.py
9 surfsense_backend/app/routes/reports_routes.py
10 surfsense_backend/app/routes/public_chat_routes.py
11 surfsense_backend/app/services/public_chat_service.py
12 surfsense_backend/app/tasks/chat/stream_new_chat.py
13 surfsense_web/components/tool-ui/generate-resume.tsx
14 surfsense_web/components/report-panel/pdf-viewer.tsx
15 surfsense_web/atoms/chat/report-panel.atom.ts
16 surfsense_web/components/report-panel/report-panel.tsx
17 surfsense_web/components/shared/ExportMenuItems.tsx
18 surfsense_web/components/tool-ui/generate-report.tsx
19 surfsense_web/components/assistant-ui/assistant-message.tsx
20 surfsense_web/components/public-chat/public-thread.tsx
21 surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
22 surfsense_web/package.json
23 surfsense_web/pnpm-lock.yaml

Need help? Join our Discord

Analyze latest changes

…replacing react-pdf with pdfjs-dist, enhancing loading states and error management
…component, introducing skeleton loader and improved state management
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 16, 2026

@AnishSarkar22 is attempting to deploy a commit to the Rohan Verma's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Copy Markdown

@recurseml recurseml Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review by RecurseML

🔍 Review performed on 4e68565..706d5b9

✨ No bugs found, your code is sparkling clean

✅ Files analyzed, no issues (23)

surfsense_backend/alembic/versions/126_add_report_content_type.py
surfsense_backend/alembic/versions/127_seed_build_resume_prompt.py
surfsense_backend/app/agents/new_chat/system_prompt.py
surfsense_backend/app/agents/new_chat/tools/registry.py
surfsense_backend/app/agents/new_chat/tools/resume.py
surfsense_backend/app/db.py
surfsense_backend/app/prompts/system_defaults.py
surfsense_backend/app/routes/public_chat_routes.py
surfsense_backend/app/routes/reports_routes.py
surfsense_backend/app/schemas/reports.py
surfsense_backend/app/services/public_chat_service.py
surfsense_backend/app/tasks/chat/stream_new_chat.py
surfsense_web/app/dashboard/[search_space_id]/new-chat/[[...chat_id]]/page.tsx
surfsense_web/atoms/chat/report-panel.atom.ts
surfsense_web/components/assistant-ui/assistant-message.tsx
surfsense_web/components/public-chat/public-thread.tsx
surfsense_web/components/report-panel/pdf-viewer.tsx
surfsense_web/components/report-panel/report-panel.tsx
surfsense_web/components/shared/ExportMenuItems.tsx
surfsense_web/components/tool-ui/generate-report.tsx
surfsense_web/components/tool-ui/generate-resume.tsx
surfsense_web/package.json
surfsense_web/pnpm-lock.yaml

@AnishSarkar22 AnishSarkar22 marked this pull request as ready for review April 17, 2026 11:18
@MODSetter MODSetter merged commit 2b2453e into MODSetter:dev Apr 17, 2026
12 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants