saitejatirunagari Claude Opus 4.6 commited on
Commit
348ccc1
·
1 Parent(s): f057ca2

fix: designation → Associate Product Manager, filename → Saiteja_Tirunagari_<Company>_Resume.pdf

Browse files

1. NxtWave role updated from "Internal Product Manager" to "Associate Product
Manager" across all 8 resume source files (LaTeX, Python, JS).
2. Output PDFs now named Saiteja_Tirunagari_<CompanyName>_Resume.pdf across
all touchpoints: V1/V2 compile, extension download, relay Telegram send.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

.planning/phases/09-hardcoded-resume-keyword-placement/resume-source.tex CHANGED
@@ -148,7 +148,7 @@
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
- {Internal Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
 
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
+ {Associate Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
HISTORY.md CHANGED
@@ -4,6 +4,21 @@ A running log of everything built, fixed, and changed. Most recent first.
4
 
5
  ---
6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  ## 2026-06-24 — Phase 10: V1/V2 Resume Generation Modes
8
 
9
  Labeled the existing pipeline as **V1** (structured keyword placement) and added
 
4
 
5
  ---
6
 
7
+ ## 2026-06-25 — Designation + Filename Update
8
+
9
+ - **Designation**: Changed NxtWave role from "Internal Product Manager" to
10
+ "Associate Product Manager" across all resume sources (default_resume.tex,
11
+ default_resume.tectonic.tex, default_resume.py, default_resume.js,
12
+ resume_v2_natural.py profile context, latex_resume.py V1 placement,
13
+ resume_customizer.py, resume-source.tex template).
14
+ - **Resume filename**: All output PDFs now named
15
+ `Saiteja_Tirunagari_<CompanyName>_Resume.pdf` instead of `resume_<title>.pdf`.
16
+ Updated across: V1 compile (latex_resume.py), V2 compile (resume_v2_natural.py),
17
+ extension download (popup.js), Cloudflare relay (cloudflare-worker.js).
18
+ API server passes `company` as primary slug over `job_title`.
19
+
20
+ ---
21
+
22
  ## 2026-06-24 — Phase 10: V1/V2 Resume Generation Modes
23
 
24
  Labeled the existing pipeline as **V1** (structured keyword placement) and added
api_server.py CHANGED
@@ -213,7 +213,7 @@ def latex_flow_for_api(
213
  blocked_terms=blocked,
214
  compile_pdf=True,
215
  out_dir=out_dir,
216
- job_title=job_title or company or "resume",
217
  )
218
  return report, out_dir
219
 
@@ -476,7 +476,7 @@ async def _repair_from_latex(
476
  latex_src, jd_text, maximum_ats_mode=max_ats,
477
  confirmed_terms=conf_terms, pasted_terms=pasted_terms,
478
  blocked_terms=blocked, compile_pdf=True, out_dir=out_dir,
479
- job_title=job_title or company or "resume",
480
  ),
481
  )
482
 
 
213
  blocked_terms=blocked,
214
  compile_pdf=True,
215
  out_dir=out_dir,
216
+ job_title=company or job_title or "resume",
217
  )
218
  return report, out_dir
219
 
 
476
  latex_src, jd_text, maximum_ats_mode=max_ats,
477
  confirmed_terms=conf_terms, pasted_terms=pasted_terms,
478
  blocked_terms=blocked, compile_pdf=True, out_dir=out_dir,
479
+ job_title=company or job_title or "resume",
480
  ),
481
  )
482
 
assets/default_resume.tectonic.tex CHANGED
@@ -148,7 +148,7 @@
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
- {Internal Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
 
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
+ {Associate Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
assets/default_resume.tex CHANGED
@@ -148,7 +148,7 @@
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
- {Internal Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
 
148
 
149
  \resumeSubheading
150
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
151
+ {Associate Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
152
  \resumeItemListStart
153
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
154
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
extension/default_resume.js CHANGED
@@ -1,4 +1,4 @@
1
  // Built-in default resume (Saiteja Tirunagari). Mirror of src/default_resume.py
2
  // and .planning/.../resume-source.tex -- keep byte-identical.
3
  // JSON-encoded literal (resume contains a backtick, so a template literal is unsafe).
4
- self.DEFAULT_RESUME_LATEX = "%-------------------------\n% Resume in Latex\n% Template author : Harshibar (https://github.com/jakeryang/resume), MIT License\n% Repopulated with content for Saiteja Tirunagari\n%------------------------\n\n\\documentclass[letterpaper,11pt]{article}\n\n\\usepackage{latexsym}\n\\usepackage[empty]{fullpage}\n\\usepackage{titlesec}\n\\usepackage{marvosym}\n\\usepackage[usenames,dvipsnames]{color}\n\\usepackage{verbatim}\n\\usepackage{enumitem}\n\\usepackage[hidelinks]{hyperref}\n\\usepackage{fancyhdr}\n\\usepackage[english]{babel}\n\\usepackage{tabularx}\n% only for pdflatex\n% \\input{glyphtounicode}\n\n% fontawesome\n\\usepackage{fontawesome5}\n\n% fixed width\n\\usepackage[scale=0.90,lf]{FiraMono}\n\n% light-grey\n\\definecolor{light-grey}{gray}{0.83}\n\\definecolor{dark-grey}{gray}{0.3}\n\\definecolor{text-grey}{gray}{.08}\n\n\\DeclareRobustCommand{\\ebseries}{\\fontseries{eb}\\selectfont}\n\\DeclareTextFontCommand{\\texteb}{\\ebseries}\n\n% custom underline\n\\usepackage{contour}\n\\usepackage[normalem]{ulem}\n\\renewcommand{\\ULdepth}{1.8pt}\n\\contourlength{0.8pt}\n\\newcommand{\\myuline}[1]{%\n \\uline{\\phantom{#1}}%\n \\llap{\\contour{white}{#1}}%\n}\n\n% rupee symbol\n\\newcommand{\\rs}{\\faRupeeSign}\n\n% custom font: helvetica-style (tgheros substituted with helvet)\n\\usepackage{helvet}\n\\renewcommand*\\familydefault{\\sfdefault}\n%% Only if the base font of the document is to be sans serif\n\\usepackage[T1]{fontenc}\n\n\n\\pagestyle{fancy}\n\\fancyhf{} % clear all header and footer fields\n\\fancyfoot{}\n\\renewcommand{\\headrulewidth}{0pt}\n\\renewcommand{\\footrulewidth}{0pt}\n\n% Adjust margins\n\\addtolength{\\oddsidemargin}{-0.5in}\n\\addtolength{\\evensidemargin}{0in}\n\\addtolength{\\textwidth}{1in}\n\\addtolength{\\topmargin}{-.5in}\n\\addtolength{\\textheight}{1.0in}\n\n\\urlstyle{same}\n\n\\raggedbottom\n\\raggedright\n\\setlength{\\tabcolsep}{0in}\n\n% sans serif sections\n\\titleformat {\\section}{\n \\bfseries \\vspace{2pt} \\raggedright \\large % header section\n}{}{0em}{}[\\color{light-grey} {\\titlerule[2pt]} \\vspace{-4pt}]\n\n%-------------------------\n% Custom commands\n\\newcommand{\\resumeItem}[1]{\n \\item\\small{\n {#1 \\vspace{-1pt}}\n }\n}\n\n\\newcommand{\\resumeSubheading}[4]{\n \\vspace{-1pt}\\item\n \\begin{tabular*}{\\textwidth}[t]{l@{\\extracolsep{\\fill}}r}\n \\textbf{#1} & {\\color{dark-grey}\\small #2}\\vspace{1pt}\\\\ % top row of resume entry\n \\textit{#3} & {\\color{dark-grey} \\small #4}\\\\ % second row of resume entry\n \\end{tabular*}\\vspace{-4pt}\n}\n\n\\newcommand{\\resumeSubSubheading}[2]{\n \\item\n \\begin{tabular*}{\\textwidth}{l@{\\extracolsep{\\fill}}r}\n \\textit{\\small#1} & \\textit{\\small #2} \\\\\n \\end{tabular*}\\vspace{-7pt}\n}\n\n\\newcommand{\\resumeProjectHeading}[2]{\n \\item\n \\begin{tabular*}{\\textwidth}{l@{\\extracolsep{\\fill}}r}\n #1 & {\\color{dark-grey}\\small #2} \\\\\n \\end{tabular*}\\vspace{-4pt}\n}\n\n\\newcommand{\\resumeSubItem}[1]{\\resumeItem{#1}\\vspace{-4pt}}\n\n\\renewcommand\\labelitemii{$\\vcenter{\\hbox{\\tiny$\\bullet$}}$}\n\n\\newcommand{\\resumeSubHeadingListStart}{\\begin{itemize}[leftmargin=0in, label={}]}\n\\newcommand{\\resumeSubHeadingListEnd}{\\end{itemize}}\n\\newcommand{\\resumeItemListStart}{\\begin{itemize}}\n\\newcommand{\\resumeItemListEnd}{\\end{itemize}\\vspace{0pt}}\n\n\\color{text-grey}\n\n%-------------------------------------------\n%%%%%% RESUME STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\n\\begin{document}\n\n%----------HEADING----------\n\\begin{center}\n \\textbf{\\Huge Saiteja Tirunagari} \\\\ \\vspace{3pt}\n {\\small AI-First Product Manager $\\cdot$ 5+ Years $\\cdot$ Hyderabad, India} \\\\ \\vspace{5pt}\n \\small \\faPhone* \\texttt{+91 99889 96588} \\hspace{1pt} $|$\n \\hspace{1pt} \\faEnvelope \\hspace{2pt} \\texttt{saitejatirunagari@gmail.com} \\hspace{1pt} $|$\n \\hspace{1pt} \\faLinkedin \\hspace{2pt} \\href{https://www.linkedin.com/in/saiteja-tirunagari}{\\texttt{/saiteja-tirunagari}} \\hspace{1pt} $|$\n \\hspace{1pt} \\faGlobe \\hspace{2pt} \\href{https://saitejatirunagari.in}{\\texttt{saitejatirunagari.in}}\n \\\\ \\vspace{-3pt}\n\\end{center}\n\n%-----------SUMMARY-----------\n\\section{SUMMARY}\n\\vspace{2pt}\n\\small{AI-first Product Manager with 5+ years driving 0$\\to$1 product development across fast-paced EdTech startups. Owns the full product lifecycle---discovery, PRD writing, roadmap planning, agile/scrum delivery, and A/B experimentation---to ship measurable outcomes. Built digital acquisition funnels and AI-powered automation that processed \\textbf{560,000+ leads}, generated multi-crore revenue pipelines, and lifted payment conversion by \\textbf{+35.87 pp} and report engagement by \\textbf{3.8$\\times$}. Deep expertise in conversational AI, OCR/OMR automation, funnel optimization, and stakeholder management across cross-functional tech, design, and sales teams.}\n\\vspace{2pt}\n\n%-----------EXPERIENCE-----------\n\\section{EXPERIENCE}\n \\resumeSubHeadingListStart\n\n \\resumeSubheading\n {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}\n {Internal Product Manager \\quad \\small(6+ products $\\cdot$ 560K+ leads $\\cdot$ multi-crore pipeline)}{Hyderabad, India}\n \\resumeItemListStart\n \\resumeItem{Led end-to-end revamp of the \\textbf{NIAT Application Portal} into a single automated funnel (landing $\\to$ OTP $\\to$ payment $\\to$ slot $\\to$ exam $\\to$ report $\\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \\textbf{560,308 leads and 346,447 OTP-verified users} with \\textbf{97.7\\% personal-details completion} and 90.1\\% exam attendance}\n \\resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \\textbf{27.37\\% $\\to$ 63.24\\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \\textbf{$\\sim$\\rs{}57.9 L incremental revenue} at near-zero acquisition cost}\n \\resumeItem{Re-architected the landing-page \\textbf{AI chatbot} into a stage-wise conversational conversion engine with CRM-integrated nudges, generating \\textbf{6,776 leads and 129 enrollments} (1,744 leads independently sourced)}\n \\resumeItem{Launched a personalized \\textbf{NAT Results Report} with a time-gated preview, boosting report visibility \\textbf{18\\% $\\to$ 69\\% (3.8$\\times$)} and sharing 2.46$\\times$ (7.13\\% $\\to$ 11.6\\%) to create a product-led viral loop}\n \\resumeItem{Shipped \\textbf{8 differentiated landing pages} and a no-code A/B testing framework (up to 38.02\\% Visit$\\to$OTP conversion), enabling product and marketing to run experiments without engineering dependency}\n \\resumeItem{Wrote PRDs and acceptance criteria, ran sprint ceremonies, and shipped bi-weekly across \\textbf{5 cross-functional teams} (tech, CRM, sales, business ops, design), improving feature delivery timelines by 20\\%}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {Think \\& Learn Pvt. Ltd. (BYJU'S)}{Oct. 2021 -- Dec. 2022}\n {Asst. Product Success Manager -- User Experience}{Bengaluru, India}\n \\resumeItemListStart\n \\resumeItem{Managed \\textbf{20 customer-success specialists} covering 40,000 customers; kept refund rate below 5\\% and CSAT above 95\\%}\n \\resumeItem{Played a \\textbf{0$\\to$1 role} in the Xplore Experiment and Social Emotional Learning pilots alongside product and engineering}\n \\resumeItem{Sustained \\textbf{95\\%+ Monthly Recurring Revenue} from existing EMI customers through proactive retention strategies}\n \\resumeItem{Established a structured feedback loop between customers and product/engineering, converting recurring pain points into prioritized feature requests and fixes}\n \\resumeItem{Built onboarding playbooks, QA checklists, and escalation workflows that standardized how the team handled high-value accounts}\n \\resumeItem{Tracked team KPIs (resolution time, escalation rate, retention) via weekly dashboards and review cadences, coaching specialists toward consistent CSAT}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {Think \\& Learn Pvt. Ltd. (BYJU'S)}{Aug. 2019 -- Sep. 2021}\n {Product Specialist -- User Experience}{Bengaluru, India}\n \\resumeItemListStart\n \\resumeItem{\\textbf{Increased user retention by 8\\%} by redesigning onboarding using UX research and user-centric design principles}\n \\resumeItem{Ran extensive UX research and A/B testing to surface pain points and refine features, improving platform engagement}\n \\resumeItem{Conducted user interviews and usability sessions to validate hypotheses and inform onboarding and feature-design decisions}\n \\resumeItem{Built user journey maps and personas, collaborating with product and design on wireframes and requirement documentation}\n \\resumeItem{Synthesized qualitative and quantitative insights into prioritized recommendations and presented findings to product stakeholders}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {ML Edutech}{Aug. 2015 -- Jul. 2019}\n {Founder \\& CEO}{Hyderabad, India}\n \\resumeItemListStart\n \\resumeItem{Launched an EdTech app portfolio of \\textbf{275 apps with 3M+ cumulative downloads}; owned end-to-end P\\&L}\n \\resumeItem{Drove acquisition via Google Ads, LinkedIn, and paid social; built strategic partnerships and a data-driven culture}\n \\resumeItem{Built and led a cross-functional team across development, design, and marketing; set product vision, roadmap, and prioritization across the portfolio}\n \\resumeItem{Drove organic growth through App Store Optimization (ASO), ratings strategy, and iterative UX improvements informed by install and retention data}\n \\resumeItem{Set up product analytics and monetization (in-app and ad-based revenue) and negotiated content/distribution partnerships to extend reach}\n \\resumeItemListEnd\n\n \\resumeSubHeadingListEnd\n\n\n%-----------PROJECTS / FLAGSHIP BUILDS-----------\n\\section{SELECTED 0$\\to$1 PRODUCT BUILDS}\n \\resumeSubHeadingListStart\n\n \\resumeProjectHeading\n {\\textbf{NIAT Application Portal --- Full-Funnel Conversion System}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Designed and shipped an end-to-end digital funnel integrating CRM, WebEngage, payments, and the exam engine (TOPIN), replacing fragmented manual workflows with stage-wise tracking from lead to enrollment}\n \\resumeItem{Processed \\textbf{560K+ leads, 346K OTP-verified users, and 82K+ paid applications}, with full funnel visibility enabling data-driven optimization at every stage}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{AI Chatbot Conversational Funnel}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Converted a support chatbot into a full conversion engine with contextual, stage-wise nudges---no new system build, iterated purely on performance data}\n \\resumeItem{Drove \\textbf{6,776 leads, 4,085 applications, and 129 enrollments}, reducing dependency on manual calling/support}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{Offline NAT Ecosystem} -- Invigilator App + OMR + Admin Dashboard}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Built offline exam infrastructure (real-time attendance, section-wise scoring, CRM-synced dashboard) with real-time sync across backend, CRM, and portal}\n \\resumeItem{Processed \\textbf{2,887 paid submissions ($\\sim$\\rs{}12.3 L)}, validating a new scalable offline-to-online revenue channel}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{OCR--OMR Automation Platform}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Engineered an OCR pipeline cutting per-page processing cost from \\textbf{\\rs{}4 $\\to$ \\rs{}0.10/page (97.5\\% reduction)} and eliminating $\\sim$90\\% of manual admissions effort}\n \\resumeItem{Replaced manual data entry with automated capture$\\to$CRM sync, improving accuracy and scaling without added manpower}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{NIAT Launchpad} -- Mobile-First Acquisition App}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Shipped a project-based AI-learning app (Grades 9--12) as a top-of-funnel value offer, built with a \\textbf{single developer via vibe-coding / AI-assisted development}}\n \\resumeItem{Onboarded \\textbf{428 users at 100\\% completion} (97.4\\% net-new) with 38.7\\% activation, establishing a new acquisition channel}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{FDP `Super Teacher' Platform}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Launched a faculty-development platform (modules, quizzes, certifications) with a WhatsApp engagement community}\n \\resumeItem{Onboarded \\textbf{403 teachers} at $\\sim$15 hrs avg engagement, building a long-term teacher affiliate lead channel}\n \\resumeItemListEnd\n\n \\resumeSubHeadingListEnd\n\n\n%-----------SKILLS-----------\n\\section{SKILLS}\n\\begin{itemize}[leftmargin=0in, label={}]\n \\small{\\item{\n \\textbf{Product Management}{: Product Strategy, Roadmap Planning, 0$\\to$1 Development, GTM Strategy, Feature Prioritization, PRD Writing, User Stories, Acceptance Criteria, Product Documentation}\\vspace{2pt} \\\\\n \\textbf{Execution \\& Delivery}{: Agile, Scrum, Sprint Ceremonies, Stakeholder Management, Cross-functional Collaboration, Release Management, Jira, Notion}\\vspace{2pt} \\\\\n \\textbf{Growth \\& Analytics}{: Funnel Optimization, A/B Testing, Cohort Analysis, User Journey Mapping, UX/User Research, KPI \\& Metrics Design, CRO, Data Interpretation}\\vspace{2pt} \\\\\n \\textbf{Design \\& Discovery}{: Wireframing, Prototyping, User Flows, Customer Interviews, Product Discovery, Usability Testing}\\vspace{2pt} \\\\\n \\textbf{AI \\& Automation}{: LLMs, Conversational AI, OCR/OMR, Process Automation, API Integration, Vibe Coding / AI-assisted Dev}\\vspace{2pt} \\\\\n \\textbf{Tools}{: CRM Systems, WhatsApp Business API, WebEngage, Zoom Events, Google Ads, Adobe Creative Suite, Analytics Platforms}\\vspace{2pt} \\\\\n \\textbf{Languages}{: English (Native), Telugu (Native), Hindi (Advanced)}\n }}\n\\end{itemize}\n\n\n%-----------EDUCATION-----------\n\\section{EDUCATION}\n \\resumeSubHeadingListStart\n \\resumeSubheading\n {IIM Rohtak}{Mar. 2023 -- Sep. 2023}\n {Diploma -- Product \\& Brand Management}{}\n \\resumeSubheading\n {Osmania University}{Aug. 2015 -- Jul. 2019}\n {Diploma in Business Management}{Hyderabad, India}\n \\resumeSubheading\n {JNTU Hyderabad}{Aug. 2011 -- Sep. 2016}\n {Bachelor of Engineering -- Civil Engineering}{Hyderabad, India}\n \\resumeSubHeadingListEnd\n\n%-------------------------------------------\n\\end{document}\n";
 
1
  // Built-in default resume (Saiteja Tirunagari). Mirror of src/default_resume.py
2
  // and .planning/.../resume-source.tex -- keep byte-identical.
3
  // JSON-encoded literal (resume contains a backtick, so a template literal is unsafe).
4
+ self.DEFAULT_RESUME_LATEX = "%-------------------------\n% Resume in Latex\n% Template author : Harshibar (https://github.com/jakeryang/resume), MIT License\n% Repopulated with content for Saiteja Tirunagari\n%------------------------\n\n\\documentclass[letterpaper,11pt]{article}\n\n\\usepackage{latexsym}\n\\usepackage[empty]{fullpage}\n\\usepackage{titlesec}\n\\usepackage{marvosym}\n\\usepackage[usenames,dvipsnames]{color}\n\\usepackage{verbatim}\n\\usepackage{enumitem}\n\\usepackage[hidelinks]{hyperref}\n\\usepackage{fancyhdr}\n\\usepackage[english]{babel}\n\\usepackage{tabularx}\n% only for pdflatex\n% \\input{glyphtounicode}\n\n% fontawesome\n\\usepackage{fontawesome5}\n\n% fixed width\n\\usepackage[scale=0.90,lf]{FiraMono}\n\n% light-grey\n\\definecolor{light-grey}{gray}{0.83}\n\\definecolor{dark-grey}{gray}{0.3}\n\\definecolor{text-grey}{gray}{.08}\n\n\\DeclareRobustCommand{\\ebseries}{\\fontseries{eb}\\selectfont}\n\\DeclareTextFontCommand{\\texteb}{\\ebseries}\n\n% custom underline\n\\usepackage{contour}\n\\usepackage[normalem]{ulem}\n\\renewcommand{\\ULdepth}{1.8pt}\n\\contourlength{0.8pt}\n\\newcommand{\\myuline}[1]{%\n \\uline{\\phantom{#1}}%\n \\llap{\\contour{white}{#1}}%\n}\n\n% rupee symbol\n\\newcommand{\\rs}{\\faRupeeSign}\n\n% custom font: helvetica-style (tgheros substituted with helvet)\n\\usepackage{helvet}\n\\renewcommand*\\familydefault{\\sfdefault}\n%% Only if the base font of the document is to be sans serif\n\\usepackage[T1]{fontenc}\n\n\n\\pagestyle{fancy}\n\\fancyhf{} % clear all header and footer fields\n\\fancyfoot{}\n\\renewcommand{\\headrulewidth}{0pt}\n\\renewcommand{\\footrulewidth}{0pt}\n\n% Adjust margins\n\\addtolength{\\oddsidemargin}{-0.5in}\n\\addtolength{\\evensidemargin}{0in}\n\\addtolength{\\textwidth}{1in}\n\\addtolength{\\topmargin}{-.5in}\n\\addtolength{\\textheight}{1.0in}\n\n\\urlstyle{same}\n\n\\raggedbottom\n\\raggedright\n\\setlength{\\tabcolsep}{0in}\n\n% sans serif sections\n\\titleformat {\\section}{\n \\bfseries \\vspace{2pt} \\raggedright \\large % header section\n}{}{0em}{}[\\color{light-grey} {\\titlerule[2pt]} \\vspace{-4pt}]\n\n%-------------------------\n% Custom commands\n\\newcommand{\\resumeItem}[1]{\n \\item\\small{\n {#1 \\vspace{-1pt}}\n }\n}\n\n\\newcommand{\\resumeSubheading}[4]{\n \\vspace{-1pt}\\item\n \\begin{tabular*}{\\textwidth}[t]{l@{\\extracolsep{\\fill}}r}\n \\textbf{#1} & {\\color{dark-grey}\\small #2}\\vspace{1pt}\\\\ % top row of resume entry\n \\textit{#3} & {\\color{dark-grey} \\small #4}\\\\ % second row of resume entry\n \\end{tabular*}\\vspace{-4pt}\n}\n\n\\newcommand{\\resumeSubSubheading}[2]{\n \\item\n \\begin{tabular*}{\\textwidth}{l@{\\extracolsep{\\fill}}r}\n \\textit{\\small#1} & \\textit{\\small #2} \\\\\n \\end{tabular*}\\vspace{-7pt}\n}\n\n\\newcommand{\\resumeProjectHeading}[2]{\n \\item\n \\begin{tabular*}{\\textwidth}{l@{\\extracolsep{\\fill}}r}\n #1 & {\\color{dark-grey}\\small #2} \\\\\n \\end{tabular*}\\vspace{-4pt}\n}\n\n\\newcommand{\\resumeSubItem}[1]{\\resumeItem{#1}\\vspace{-4pt}}\n\n\\renewcommand\\labelitemii{$\\vcenter{\\hbox{\\tiny$\\bullet$}}$}\n\n\\newcommand{\\resumeSubHeadingListStart}{\\begin{itemize}[leftmargin=0in, label={}]}\n\\newcommand{\\resumeSubHeadingListEnd}{\\end{itemize}}\n\\newcommand{\\resumeItemListStart}{\\begin{itemize}}\n\\newcommand{\\resumeItemListEnd}{\\end{itemize}\\vspace{0pt}}\n\n\\color{text-grey}\n\n%-------------------------------------------\n%%%%%% RESUME STARTS HERE %%%%%%%%%%%%%%%%%%%%%%%%%%%%\n\n\n\\begin{document}\n\n%----------HEADING----------\n\\begin{center}\n \\textbf{\\Huge Saiteja Tirunagari} \\\\ \\vspace{3pt}\n {\\small AI-First Product Manager $\\cdot$ 5+ Years $\\cdot$ Hyderabad, India} \\\\ \\vspace{5pt}\n \\small \\faPhone* \\texttt{+91 99889 96588} \\hspace{1pt} $|$\n \\hspace{1pt} \\faEnvelope \\hspace{2pt} \\texttt{saitejatirunagari@gmail.com} \\hspace{1pt} $|$\n \\hspace{1pt} \\faLinkedin \\hspace{2pt} \\href{https://www.linkedin.com/in/saiteja-tirunagari}{\\texttt{/saiteja-tirunagari}} \\hspace{1pt} $|$\n \\hspace{1pt} \\faGlobe \\hspace{2pt} \\href{https://saitejatirunagari.in}{\\texttt{saitejatirunagari.in}}\n \\\\ \\vspace{-3pt}\n\\end{center}\n\n%-----------SUMMARY-----------\n\\section{SUMMARY}\n\\vspace{2pt}\n\\small{AI-first Product Manager with 5+ years driving 0$\\to$1 product development across fast-paced EdTech startups. Owns the full product lifecycle---discovery, PRD writing, roadmap planning, agile/scrum delivery, and A/B experimentation---to ship measurable outcomes. Built digital acquisition funnels and AI-powered automation that processed \\textbf{560,000+ leads}, generated multi-crore revenue pipelines, and lifted payment conversion by \\textbf{+35.87 pp} and report engagement by \\textbf{3.8$\\times$}. Deep expertise in conversational AI, OCR/OMR automation, funnel optimization, and stakeholder management across cross-functional tech, design, and sales teams.}\n\\vspace{2pt}\n\n%-----------EXPERIENCE-----------\n\\section{EXPERIENCE}\n \\resumeSubHeadingListStart\n\n \\resumeSubheading\n {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}\n {Associate Product Manager \\quad \\small(6+ products $\\cdot$ 560K+ leads $\\cdot$ multi-crore pipeline)}{Hyderabad, India}\n \\resumeItemListStart\n \\resumeItem{Led end-to-end revamp of the \\textbf{NIAT Application Portal} into a single automated funnel (landing $\\to$ OTP $\\to$ payment $\\to$ slot $\\to$ exam $\\to$ report $\\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \\textbf{560,308 leads and 346,447 OTP-verified users} with \\textbf{97.7\\% personal-details completion} and 90.1\\% exam attendance}\n \\resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \\textbf{27.37\\% $\\to$ 63.24\\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \\textbf{$\\sim$\\rs{}57.9 L incremental revenue} at near-zero acquisition cost}\n \\resumeItem{Re-architected the landing-page \\textbf{AI chatbot} into a stage-wise conversational conversion engine with CRM-integrated nudges, generating \\textbf{6,776 leads and 129 enrollments} (1,744 leads independently sourced)}\n \\resumeItem{Launched a personalized \\textbf{NAT Results Report} with a time-gated preview, boosting report visibility \\textbf{18\\% $\\to$ 69\\% (3.8$\\times$)} and sharing 2.46$\\times$ (7.13\\% $\\to$ 11.6\\%) to create a product-led viral loop}\n \\resumeItem{Shipped \\textbf{8 differentiated landing pages} and a no-code A/B testing framework (up to 38.02\\% Visit$\\to$OTP conversion), enabling product and marketing to run experiments without engineering dependency}\n \\resumeItem{Wrote PRDs and acceptance criteria, ran sprint ceremonies, and shipped bi-weekly across \\textbf{5 cross-functional teams} (tech, CRM, sales, business ops, design), improving feature delivery timelines by 20\\%}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {Think \\& Learn Pvt. Ltd. (BYJU'S)}{Oct. 2021 -- Dec. 2022}\n {Asst. Product Success Manager -- User Experience}{Bengaluru, India}\n \\resumeItemListStart\n \\resumeItem{Managed \\textbf{20 customer-success specialists} covering 40,000 customers; kept refund rate below 5\\% and CSAT above 95\\%}\n \\resumeItem{Played a \\textbf{0$\\to$1 role} in the Xplore Experiment and Social Emotional Learning pilots alongside product and engineering}\n \\resumeItem{Sustained \\textbf{95\\%+ Monthly Recurring Revenue} from existing EMI customers through proactive retention strategies}\n \\resumeItem{Established a structured feedback loop between customers and product/engineering, converting recurring pain points into prioritized feature requests and fixes}\n \\resumeItem{Built onboarding playbooks, QA checklists, and escalation workflows that standardized how the team handled high-value accounts}\n \\resumeItem{Tracked team KPIs (resolution time, escalation rate, retention) via weekly dashboards and review cadences, coaching specialists toward consistent CSAT}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {Think \\& Learn Pvt. Ltd. (BYJU'S)}{Aug. 2019 -- Sep. 2021}\n {Product Specialist -- User Experience}{Bengaluru, India}\n \\resumeItemListStart\n \\resumeItem{\\textbf{Increased user retention by 8\\%} by redesigning onboarding using UX research and user-centric design principles}\n \\resumeItem{Ran extensive UX research and A/B testing to surface pain points and refine features, improving platform engagement}\n \\resumeItem{Conducted user interviews and usability sessions to validate hypotheses and inform onboarding and feature-design decisions}\n \\resumeItem{Built user journey maps and personas, collaborating with product and design on wireframes and requirement documentation}\n \\resumeItem{Synthesized qualitative and quantitative insights into prioritized recommendations and presented findings to product stakeholders}\n \\resumeItemListEnd\n\n \\resumeSubheading\n {ML Edutech}{Aug. 2015 -- Jul. 2019}\n {Founder \\& CEO}{Hyderabad, India}\n \\resumeItemListStart\n \\resumeItem{Launched an EdTech app portfolio of \\textbf{275 apps with 3M+ cumulative downloads}; owned end-to-end P\\&L}\n \\resumeItem{Drove acquisition via Google Ads, LinkedIn, and paid social; built strategic partnerships and a data-driven culture}\n \\resumeItem{Built and led a cross-functional team across development, design, and marketing; set product vision, roadmap, and prioritization across the portfolio}\n \\resumeItem{Drove organic growth through App Store Optimization (ASO), ratings strategy, and iterative UX improvements informed by install and retention data}\n \\resumeItem{Set up product analytics and monetization (in-app and ad-based revenue) and negotiated content/distribution partnerships to extend reach}\n \\resumeItemListEnd\n\n \\resumeSubHeadingListEnd\n\n\n%-----------PROJECTS / FLAGSHIP BUILDS-----------\n\\section{SELECTED 0$\\to$1 PRODUCT BUILDS}\n \\resumeSubHeadingListStart\n\n \\resumeProjectHeading\n {\\textbf{NIAT Application Portal --- Full-Funnel Conversion System}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Designed and shipped an end-to-end digital funnel integrating CRM, WebEngage, payments, and the exam engine (TOPIN), replacing fragmented manual workflows with stage-wise tracking from lead to enrollment}\n \\resumeItem{Processed \\textbf{560K+ leads, 346K OTP-verified users, and 82K+ paid applications}, with full funnel visibility enabling data-driven optimization at every stage}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{AI Chatbot Conversational Funnel}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Converted a support chatbot into a full conversion engine with contextual, stage-wise nudges---no new system build, iterated purely on performance data}\n \\resumeItem{Drove \\textbf{6,776 leads, 4,085 applications, and 129 enrollments}, reducing dependency on manual calling/support}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{Offline NAT Ecosystem} -- Invigilator App + OMR + Admin Dashboard}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Built offline exam infrastructure (real-time attendance, section-wise scoring, CRM-synced dashboard) with real-time sync across backend, CRM, and portal}\n \\resumeItem{Processed \\textbf{2,887 paid submissions ($\\sim$\\rs{}12.3 L)}, validating a new scalable offline-to-online revenue channel}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{OCR--OMR Automation Platform}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Engineered an OCR pipeline cutting per-page processing cost from \\textbf{\\rs{}4 $\\to$ \\rs{}0.10/page (97.5\\% reduction)} and eliminating $\\sim$90\\% of manual admissions effort}\n \\resumeItem{Replaced manual data entry with automated capture$\\to$CRM sync, improving accuracy and scaling without added manpower}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{NIAT Launchpad} -- Mobile-First Acquisition App}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Shipped a project-based AI-learning app (Grades 9--12) as a top-of-funnel value offer, built with a \\textbf{single developer via vibe-coding / AI-assisted development}}\n \\resumeItem{Onboarded \\textbf{428 users at 100\\% completion} (97.4\\% net-new) with 38.7\\% activation, establishing a new acquisition channel}\n \\resumeItemListEnd\n\n \\resumeProjectHeading\n {\\textbf{FDP `Super Teacher' Platform}}{NxtWave}\n \\resumeItemListStart\n \\resumeItem{Launched a faculty-development platform (modules, quizzes, certifications) with a WhatsApp engagement community}\n \\resumeItem{Onboarded \\textbf{403 teachers} at $\\sim$15 hrs avg engagement, building a long-term teacher affiliate lead channel}\n \\resumeItemListEnd\n\n \\resumeSubHeadingListEnd\n\n\n%-----------SKILLS-----------\n\\section{SKILLS}\n\\begin{itemize}[leftmargin=0in, label={}]\n \\small{\\item{\n \\textbf{Product Management}{: Product Strategy, Roadmap Planning, 0$\\to$1 Development, GTM Strategy, Feature Prioritization, PRD Writing, User Stories, Acceptance Criteria, Product Documentation}\\vspace{2pt} \\\\\n \\textbf{Execution \\& Delivery}{: Agile, Scrum, Sprint Ceremonies, Stakeholder Management, Cross-functional Collaboration, Release Management, Jira, Notion}\\vspace{2pt} \\\\\n \\textbf{Growth \\& Analytics}{: Funnel Optimization, A/B Testing, Cohort Analysis, User Journey Mapping, UX/User Research, KPI \\& Metrics Design, CRO, Data Interpretation}\\vspace{2pt} \\\\\n \\textbf{Design \\& Discovery}{: Wireframing, Prototyping, User Flows, Customer Interviews, Product Discovery, Usability Testing}\\vspace{2pt} \\\\\n \\textbf{AI \\& Automation}{: LLMs, Conversational AI, OCR/OMR, Process Automation, API Integration, Vibe Coding / AI-assisted Dev}\\vspace{2pt} \\\\\n \\textbf{Tools}{: CRM Systems, WhatsApp Business API, WebEngage, Zoom Events, Google Ads, Adobe Creative Suite, Analytics Platforms}\\vspace{2pt} \\\\\n \\textbf{Languages}{: English (Native), Telugu (Native), Hindi (Advanced)}\n }}\n\\end{itemize}\n\n\n%-----------EDUCATION-----------\n\\section{EDUCATION}\n \\resumeSubHeadingListStart\n \\resumeSubheading\n {IIM Rohtak}{Mar. 2023 -- Sep. 2023}\n {Diploma -- Product \\& Brand Management}{}\n \\resumeSubheading\n {Osmania University}{Aug. 2015 -- Jul. 2019}\n {Diploma in Business Management}{Hyderabad, India}\n \\resumeSubheading\n {JNTU Hyderabad}{Aug. 2011 -- Sep. 2016}\n {Bachelor of Engineering -- Civil Engineering}{Hyderabad, India}\n \\resumeSubHeadingListEnd\n\n%-------------------------------------------\n\\end{document}\n";
extension/popup/popup.js CHANGED
@@ -874,13 +874,13 @@ document.getElementById('dl-docx').addEventListener('click', () => {
874
  document.getElementById('dl-pdf').addEventListener('click', () => {
875
  if (!generatedResult?.pdf_b64) return;
876
  const company = extractedData?.company || restoredMeta?.company || 'job';
877
- const filename = `resume_${company.replace(/\s+/g, '_')}.pdf`;
878
  downloadB64(generatedResult.pdf_b64, 'application/pdf', filename);
879
  });
880
 
881
  document.getElementById('dl-tex').addEventListener('click', () => {
882
  if (!generatedResult?.tex_b64) return;
883
  const company = extractedData?.company || restoredMeta?.company || 'job';
884
- const filename = `resume_${company.replace(/\s+/g, '_')}.tex`;
885
  downloadB64(generatedResult.tex_b64, 'application/x-tex', filename);
886
  });
 
874
  document.getElementById('dl-pdf').addEventListener('click', () => {
875
  if (!generatedResult?.pdf_b64) return;
876
  const company = extractedData?.company || restoredMeta?.company || 'job';
877
+ const filename = `Saiteja_Tirunagari_${company.replace(/\s+/g, '_')}_Resume.pdf`;
878
  downloadB64(generatedResult.pdf_b64, 'application/pdf', filename);
879
  });
880
 
881
  document.getElementById('dl-tex').addEventListener('click', () => {
882
  if (!generatedResult?.tex_b64) return;
883
  const company = extractedData?.company || restoredMeta?.company || 'job';
884
+ const filename = `Saiteja_Tirunagari_${company.replace(/\s+/g, '_')}_Resume.tex`;
885
  downloadB64(generatedResult.tex_b64, 'application/x-tex', filename);
886
  });
relay/cloudflare-worker.js CHANGED
@@ -157,10 +157,10 @@ async function handle(update, env) {
157
  const cov = res.external_coverage_pct != null ? res.external_coverage_pct
158
  : (res.scores && res.scores.jd_match);
159
  if (res.pdf_b64) {
160
- await sendDoc(env, chatId, res.pdf_b64, "resume.pdf", "application/pdf",
161
  `✅ Tailored resume — ~${cov ?? "?"}% JD keyword coverage.`);
162
  } else if (res.tex_b64) {
163
- await sendDoc(env, chatId, res.tex_b64, "resume.tex", "application/x-tex",
164
  "⚠️ PDF compile failed — here's the .tex (compile at overleaf.com).");
165
  } else {
166
  await tg(env, "sendMessage", { chat_id: chatId, text: "❌ Generation produced no file. Try again." });
 
157
  const cov = res.external_coverage_pct != null ? res.external_coverage_pct
158
  : (res.scores && res.scores.jd_match);
159
  if (res.pdf_b64) {
160
+ await sendDoc(env, chatId, res.pdf_b64, "Saiteja_Tirunagari_Resume.pdf", "application/pdf",
161
  `✅ Tailored resume — ~${cov ?? "?"}% JD keyword coverage.`);
162
  } else if (res.tex_b64) {
163
+ await sendDoc(env, chatId, res.tex_b64, "Saiteja_Tirunagari_Resume.tex", "application/x-tex",
164
  "⚠️ PDF compile failed — here's the .tex (compile at overleaf.com).");
165
  } else {
166
  await tg(env, "sendMessage", { chat_id: chatId, text: "❌ Generation produced no file. Try again." });
src/default_resume.py CHANGED
@@ -153,7 +153,7 @@ DEFAULT_RESUME_LATEX = r'''%-------------------------
153
 
154
  \resumeSubheading
155
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
156
- {Internal Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
157
  \resumeItemListStart
158
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
159
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
 
153
 
154
  \resumeSubheading
155
  {NxtWave Disruptive Technologies Pvt. Ltd.}{Jan. 2023 -- Present}
156
+ {Associate Product Manager \quad \small(6+ products $\cdot$ 560K+ leads $\cdot$ multi-crore pipeline)}{Hyderabad, India}
157
  \resumeItemListStart
158
  \resumeItem{Led end-to-end revamp of the \textbf{NIAT Application Portal} into a single automated funnel (landing $\to$ OTP $\to$ payment $\to$ slot $\to$ exam $\to$ report $\to$ sales), integrating CRM, WebEngage, payments, and the exam engine; scaled to \textbf{560,308 leads and 346,447 OTP-verified users} with \textbf{97.7\% personal-details completion} and 90.1\% exam attendance}
159
  \resumeItem{Built a coupon-based urgency engine that lifted 0--60 min payment completion from \textbf{27.37\% $\to$ 63.24\% (+35.87 pp)} and overall funnel payment conversion by +6.98 pp, driving \textbf{$\sim$\rs{}57.9 L incremental revenue} at near-zero acquisition cost}
src/latex_resume.py CHANGED
@@ -372,7 +372,7 @@ def place_keywords_structured(latex_src: str,
372
  add_item("Asst. Product Success Manager", psm_terms, exp_start)
373
  add_item("Product Specialist", ps_terms, exp_start)
374
  add_item("ML Edutech", ml_terms, exp_start)
375
- add_item("Internal Product Manager", nxtwave_terms, exp_start)
376
 
377
  # Project slots (search within PROJECTS section, in the owner's order).
378
  for k in proj_order:
@@ -859,7 +859,8 @@ def optimize_latex_resume(
859
 
860
  if compile_pdf:
861
  out_dir = out_dir or tempfile.mkdtemp(prefix="latex_resume_")
862
- jobname = _safe_jobname(job_title) or "resume"
 
863
  # 420s timeout: a cold-start Tectonic on HF Spaces may download ~50
864
  # packages before the first compile. The Dockerfile pre-warm caches the
865
  # common resume packages so this is normally ~3s, but the generous
 
372
  add_item("Asst. Product Success Manager", psm_terms, exp_start)
373
  add_item("Product Specialist", ps_terms, exp_start)
374
  add_item("ML Edutech", ml_terms, exp_start)
375
+ add_item("Associate Product Manager", nxtwave_terms, exp_start)
376
 
377
  # Project slots (search within PROJECTS section, in the owner's order).
378
  for k in proj_order:
 
859
 
860
  if compile_pdf:
861
  out_dir = out_dir or tempfile.mkdtemp(prefix="latex_resume_")
862
+ _company_slug = _safe_jobname(job_title)
863
+ jobname = f"Saiteja_Tirunagari_{_company_slug}_Resume" if _company_slug else "Saiteja_Tirunagari_Resume"
864
  # 420s timeout: a cold-start Tectonic on HF Spaces may download ~50
865
  # packages before the first compile. The Dockerfile pre-warm caches the
866
  # common resume packages so this is normally ~3s, but the generous
src/resume_customizer.py CHANGED
@@ -1741,7 +1741,7 @@ class ResumeCustomizer:
1741
  for base_role in base_resume.roles:
1742
  base_title_key = base_role.title.lower().strip()
1743
  # Check if this role is already in tailored (substring match
1744
- # handles "Internal Product Manager" vs "Product Manager")
1745
  already_present = any(
1746
  base_title_key in t or t in base_title_key
1747
  for t in tailored_titles
 
1741
  for base_role in base_resume.roles:
1742
  base_title_key = base_role.title.lower().strip()
1743
  # Check if this role is already in tailored (substring match
1744
+ # handles "Associate Product Manager" vs "Product Manager")
1745
  already_present = any(
1746
  base_title_key in t or t in base_title_key
1747
  for t in tailored_titles
src/resume_v2_natural.py CHANGED
@@ -77,7 +77,7 @@ stakeholder management, data-driven product decisions
77
  * Product Specialist: product specs, feature launches, A/B testing, user research, \
78
  cross-functional collaboration with engineering and design
79
  - ML Edutech (Founder): AI/ML education product, generative AI, product strategy, MVP
80
- - NxtWave (Internal Product Manager): ed-tech platform CCBP 4.0, learner engagement, \
81
  curriculum product management
82
 
83
  RULES:
@@ -261,7 +261,7 @@ def _place_sentences_structured(
261
  add_items("ML Edutech",
262
  _ensure_list(sentences.get("ml_edutech")),
263
  allocations.get("ml_edutech", []), exp_start)
264
- add_items("Internal Product Manager",
265
  _ensure_list(sentences.get("nxtwave")),
266
  allocations.get("nxtwave", []), exp_start)
267
 
@@ -525,7 +525,9 @@ def generate_v2(
525
  comp: dict = {"compiled": False, "engine": None, "pdf_path": None}
526
  if compile_pdf and out_dir:
527
  try:
528
- comp = compile_latex_to_pdf(new_src, out_dir, jobname="resume_v2",
 
 
529
  timeout=420)
530
  except Exception as exc:
531
  log.warning("V2 compile failed: %s", exc)
 
77
  * Product Specialist: product specs, feature launches, A/B testing, user research, \
78
  cross-functional collaboration with engineering and design
79
  - ML Edutech (Founder): AI/ML education product, generative AI, product strategy, MVP
80
+ - NxtWave (Associate Product Manager): ed-tech platform CCBP 4.0, learner engagement, \
81
  curriculum product management
82
 
83
  RULES:
 
261
  add_items("ML Edutech",
262
  _ensure_list(sentences.get("ml_edutech")),
263
  allocations.get("ml_edutech", []), exp_start)
264
+ add_items("Associate Product Manager",
265
  _ensure_list(sentences.get("nxtwave")),
266
  allocations.get("nxtwave", []), exp_start)
267
 
 
525
  comp: dict = {"compiled": False, "engine": None, "pdf_path": None}
526
  if compile_pdf and out_dir:
527
  try:
528
+ _slug = re.sub(r"[^A-Za-z0-9_-]+", "_", (company or job_title or "").strip()).strip("_")[:48]
529
+ _jn = f"Saiteja_Tirunagari_{_slug}_Resume" if _slug else "Saiteja_Tirunagari_Resume"
530
+ comp = compile_latex_to_pdf(new_src, out_dir, jobname=_jn,
531
  timeout=420)
532
  except Exception as exc:
533
  log.warning("V2 compile failed: %s", exc)