arrow_backAI Prototypesmenu_bookTech Stuff & Docs

Profile Optimization Documentation

Product requirements, architecture, and technical design for the Profile Optimization Tool - resume and LinkedIn matching built as a modular AI product on Firebase and Gemini.

rocket_launchTry the live tool

1. Executive summary

Profile Optimization Tool is an AI product that helps job seekers tailor their resume and LinkedIn profile to a specific role before they apply.

Users paste materials and a target job description. The system returns a visual match report: alignment score, keyword gaps, section checklist, and a prioritized action plan. No account required. Data is processed in-session only.

2

Tabs (Resume + LinkedIn)

<60s

Typical analysis

0

User data stored

Give every job seeker recruiter-grade profile feedback in under 60 seconds - grounded in their actual materials and the job they're targeting.

2. Problem statement

PainReality
One resume, many jobsSame document reused; role-specific keywords missed
LinkedIn ≠ resumePublic profile is static; each application needs different emphasis
No feedback loopJob boards don't explain why you weren't shortlisted
ATS opacitySystems filter on structure and keywords before a human reads
Time costTailoring per role takes 30-60 min; most people skip it

Who feels this most

  • Active job seekers applying to 5-20 roles/month
  • Career switchers reframing experience for a new domain
  • Senior candidates signaling scope and outcomes in the first scan

3. Vision & design principles

  1. Role-specific, not generic - Every suggestion ties to the pasted JD
  2. Scan-first UX - Score → gaps → quick wins → action plan
  3. Session-only privacy - No storage of resumes or profiles
  4. Evidence over hallucination - LLM guardrails forbid inventing facts
  5. Shippable prompts - CMS-editable without frontend redeploy
  6. Modular under one roof - One product; separate pipelines per input type

4. Product requirements (PRD)

Scope

In scope (v1)Out of scope (v1)
Resume ↔ JD match; LinkedIn ↔ JD alignment; visual reports; print; admin CMS; usage analyticsAuto-apply; PDF upload; user accounts; saved history; paid tiers; LinkedIn OAuth

Key user stories

IDStory
R1Paste resume + JD → see match % before applying
R2Get keyword gaps and quantified bullet rewrites
L1Link LinkedIn + target jobs → alignment scan
L2Section audit: headline, about, experience, photo, banner
H1Switch Resume | LinkedIn in one hub
A1Admin edits prompts and loading tips in CMS

Success metrics

MetricTarget
Analyze completion rate> 85%
Time to report (p50)< 60 seconds
Tab engagementResume vs LinkedIn mix

5. User experience & flows

Figure 1 - Information architecture & user flows
AI Prototypes HubProfile Optimization HubResume TabLinkedIn TabPaste Resume + JDTailoring progressMatch Report + PrintProfile URL + overridesTarget JD(s)Alignment Report + Print

Report structure (shared visual language)

SectionResumeLinkedIn
Hero scoreMatch % + per-JD chipsAlignment % + per-JD chips
SummaryTop gaps + quick wins+ cross-role themes
KeywordsSkill matrix tableSkill matrix table
SectionsExperience + ATS checklistBasics + experience + skills
ActionsPrioritized recommendations+ role conflicts
ExportPrint → Save as PDFPrint → Save as PDF

6. High-level design (HLD)

Architecture pattern: Product monolith (one URL, one brand) + modular implementation (separate analyze pipelines, CMS configs, Cloud Functions).

Figure 2 - System context diagram
Job SeekerNext.js FrontendProfile Opt. HubResume OptimizerLinkedIn OptimizerAdmin CMSFirebase / GCPFirebase HostingFirestore CMSresumeOptimizerAnalyzeroleAlignAnalyzeroleAlignFetchProfilerecordToolUsageGemini APIProxycurl
Figure 3 - Analyze pipeline (2-step LLM + deterministic scoring)
ValidateNormalizekeywordsExtractGemini 1AnalyzeGemini 2Score45/35/20ReportSSE → UI
LayerTechnology
FrontendNext.js 16, static export, Tailwind
HostingFirebase Hosting
APIFirebase Cloud Functions v2 (us-central1)
LLMGemini 3.1 Flash Lite (configurable via CMS)
CMSFirestore site_content + *_config/active
Admin authFirebase Auth (email allowlist)

7. Low-level design (LLD)

Scoring formula (deterministic)

alignment_score = round(
  0.45 × keyword_overlap_score +
  0.35 × checklist_pass_rate +
  0.20 × section_audit_score
)

Fit band:  ≥75% → strong  |  45-74% → moderate  |  <45% → needs_work

API endpoints

FunctionMethodPurpose
resumeOptimizerAnalyzePOST (SSE)Resume + JD → Match report
roleAlignAnalyzePOST (SSE)Profile + JD(s) → Alignment report
roleAlignFetchProfilePOSTLinkedIn URL → profile via Proxycurl
recordToolUsagePOSTAnalytics events → Firestore

Firestore CMS model

PathPurpose
site_content/profile_optimization_hubHub hero, tab labels
site_content/resume_optimizer_uiResume copy, loading tips
site_content/role_align_uiLinkedIn copy, loading tips
resume_optimizer_config/activeResume prompts, models, limits
role_align_config/activeLinkedIn prompts, models, limits
tool_usage_daily/{YYYY-MM-DD}Usage counters

LLM guardrails

  • Never invent employers, titles, skills, or JD requirements
  • If uncertain, omit the recommendation
  • Output valid JSON only
  • On parse failure: retry at temperature 0, then deterministic fallback

8. Outputs & reports

Figure 4 - Match report layout (Resume & LinkedIn)
Report NavPrint72%Match SummaryAcme Corp · Senior PMKeyword MatchSkill · Your profile · JDREWRITEAdd quantified outcomes to bullets

Each recommendation includes section, action (add/rewrite/emphasize/keep), impact, effort, issue, suggestion, JD evidence, and optional current snippet. Capped at 12 items, ranked by impact then effort.

9. Impact & outcomes

BeforeAfter
Guess if resume "fits"See match % grounded in keywords + structure
Generic advice blogsRole-specific fixes with JD evidence
30+ min manual tailoring< 60s first pass; edit from action plan
Resume and LinkedIn tuned separatelyOne hub for both assets

Portfolio signals demonstrated

  • 0→1 AI product thinking - problem, scoped MVP, shippable UX
  • Full-stack delivery - UI, serverless API, CMS, analytics
  • Responsible AI - guardrails, fallbacks, session-only privacy
  • Operable AI - prompts editable without redeploy
  • Systems design - modular services under unified product surface

10. Privacy, trust & safety

CommitmentImplementation
No account requiredAnonymous session
No storage of contentAnalyze in memory only
Rate limiting10 analyses/hour/IP
Honest AIDisclaimer on every report
Admin-only analyticsFirestore rules restrict reads

11. Limitations & roadmap

ItemStatus
Resume scan E2Echeck_circleLive
LinkedIn analyze (manual profile)check_circleLive
LinkedIn auto-fetch (Proxycurl)warningInfra pending
Usage analytics functionwarningDeploy pending
PDF resume uploadv2
Eval harness for promptsv2
fluid

Ankit's AI Assistant

Ask anything about Ankit

Hey! I'm Ankit's AI Assistant, ask me anything about his work, experience, or skills. How can I help?