Updated pricing, financial disclaimer in retirement planner
All checks were successful
ci/woodpecker/manual/woodpecker Pipeline was successful

This commit is contained in:
Josh 2025-10-15 18:15:06 +00:00
parent 8ac77b6ae1
commit 696d23dfad
12 changed files with 2006 additions and 45 deletions

View File

@ -1 +1 @@
960faad1696b81c0f004065ea713edaef64ab816-372bcf506971f56c4911b429b9f5de5bc37ed008-e9eccd451b778829eb2f2c9752c670b707e1268b 506c4d11372627a92e39ee44d85a809d000a0840-006fe5ea7fd8cb46290bcd0cf210f88f2ec04061-e9eccd451b778829eb2f2c9752c670b707e1268b

1
.gitignore vendored
View File

@ -27,3 +27,4 @@ uploads/.env
.env.* .env.*
scan-env.sh scan-env.sh
.aptiva-test-user.json .aptiva-test-user.json
APTIVA_AI_FEATURES_DOCUMENTATION.md

View File

@ -1 +1 @@
98f674eca26e366aee0b41f250978982060105f0 ad5628b638213a971abbea4f95362eca8672be7b

View File

@ -1 +1 @@
98f674eca26e366aee0b41f250978982060105f0 ad5628b638213a971abbea4f95362eca8672be7b

View File

@ -0,0 +1,859 @@
# AptivaAI Application - Comprehensive Feature Documentation
**Date:** 2025-10-15
**Purpose:** Marketing and content creation reference
---
## OVERVIEW
AptivaAI is a career guidance and financial planning platform that helps users discover careers, plan their education, enhance their career trajectory, and prepare for retirement. The platform uses AI-powered tools, O*NET career data, Bureau of Labor Statistics salary information, and financial projection algorithms.
---
## TIER STRUCTURE
### FREE TIER
Users without a premium subscription get access to:
1. **Career Discovery Tools**
- Interest Inventory (60-question RIASEC assessment from O*NET)
- Career Explorer with career suggestions based on inventory results
- Career comparison tool with ratings across 6 dimensions (interests, meaning, stability, growth, balance, recognition)
- Career search functionality
- Access to 800+ career profiles with:
- Job descriptions and tasks (from O*NET)
- Regional and national salary data (from BLS)
- Economic projections by state and nationally
- AI automation risk assessment
- Job zone (education/preparation level)
- Educational pathways (CIP codes)
2. **Educational Planning**
- Educational Programs search by career/CIP code
- School and program suggestions
- Distance calculations to schools
- Tuition cost estimates (using IPEDS data)
- Education loan repayment calculator
3. **Account Management**
- User profile with location, contact info
- Email verification
- Password reset functionality
4. **Support**
- Basic support chatbot (GPT-4o-mini powered)
- Support ticket system via email
### PREMIUM TIER ($4.99/month or $49/year)
All FREE features PLUS:
1. **AI Career Coach**
- GPT-4o powered conversational career planning assistant
- Personalized milestone recommendations
- Context-aware advice based on your career profile
2. **Career Roadmap & Planning**
- Create multiple career scenarios
- Track milestones with dates, descriptions, and tasks
- Financial impact modeling for milestones (salary changes, expense changes)
- Visual timeline with milestone markers
- Milestone completion tracking
3. **Financial Projections**
- 20+ year financial simulations
- Tracks emergency savings, retirement savings, total savings, loan balances
- Monthly granularity projections
- Salary growth modeling
- Expense tracking and planning
- Debt payment modeling
- College cost integration (tuition, financial aid)
- Student loan amortization and payoff tracking
- Surplus allocation strategies (emergency vs retirement)
4. **Career & College Profiles**
- Multiple career profile management
- College/education profile tracking per career
- Scenario comparison tools
5. **Resume Optimization**
- **2 resume optimizations per week**
- Upload PDF or DOCX resume
- AI-powered resume rewriting tailored to specific job descriptions
- Uses GPT-4o
6. **Premium Onboarding**
- Guided setup wizard for career and college profiles
- School selection with program matching
### PRO PREMIUM TIER ($7.99/month or $79/year)
All PREMIUM features PLUS:
1. **Enhanced AI Access**
- Priority GPT-4o usage
- Higher rate limits on AI features
2. **More Resume Optimizations**
- **5 resume optimizations per week** (vs 2 in regular Premium)
### RETIREMENT PLANNER (Beta - Premium Feature)
1. **Scenario Comparison**
- Create and compare up to 2 retirement scenarios side-by-side
- Clone scenarios for what-if analysis
- Edit scenario assumptions independently
2. **Retirement Projections**
- Uses same financial projection engine as Career Roadmap
- Tracks retirement savings growth over time
- Models different contribution strategies
- Shows loan payoff timelines
- Adjustable simulation length
3. **AI Retirement Advisor** (Beta)
- Conversational retirement planning assistant
- Can suggest scenario modifications
- Provides retirement strategy advice
---
## KEY FUNCTIONALITY BREAKDOWN
### Career Explorer
**Purpose:** Help users discover and compare careers based on their interests and priorities.
**How It Works:**
1. User completes 60-question Interest Inventory (RIASEC model)
2. System queries O*NET API with answers
3. Filters results to higher-education careers only
4. Enriches each career with:
- Job zone (preparation level 1-5)
- CIP codes (educational program codes)
- Economic projections (state and national)
- Salary data (percentiles 10/25/50/75/90)
- "Limited data" flag if key info is missing
5. Displays careers sorted by "fit" (Best/Great/Good)
6. Users can filter by job zone and fit level
7. Users add careers to comparison matrix
8. Comparison calculates weighted match score based on user's stated priorities
**Career Priorities:**
Users weight importance of 6 factors:
- Interests (based on inventory)
- Meaning/purpose
- Job stability
- Career growth potential
- Work-life balance
- Recognition/advancement
**Match Score Calculation:**
- Each career gets 1-5 rating in each dimension
- User priorities (Very important=5, Somewhat=3, Not as=1)
- Weighted average produces 0-100% match score
### Career Roadmap
**Purpose:** Plan and visualize career progression with financial impact.
**How It Works:**
1. Users create career scenarios (one per target career)
2. Each scenario has:
- Career name, start date, status (planned/active/completed)
- Expected salary progression
- Monthly expense assumptions
- Debt payment plans
- Retirement/emergency contribution goals
- College enrollment status and details
3. Users add milestones to timeline:
- Promotion
- Relocation
- Degree completion
- Career change
- Major purchase
- Each with date, description, tasks
4. Milestones can have financial impacts:
- Salary change (absolute or %)
- Expense change (absolute or %)
- One-time costs
5. Financial simulator projects month-by-month:
- Emergency fund balance
- Retirement savings balance
- Total savings
- Student loan balance (if applicable)
- Net monthly savings
6. Chart displays projections with milestone markers
7. Loan payoff date shown if applicable
**Financial Projection Engine:**
- Starts with current financial situation
- Models monthly cash flow: income - expenses - debt - contributions
- Applies surplus allocation rules (% to emergency vs retirement)
- Processes milestone impacts at specified dates
- Handles college costs during enrollment periods
- Models student loan interest and payments
- Supports loan deferral during school
- Projects growth (flat rate, random, or none)
- Auto-extends simulation horizon to cover furthest milestone
### Interest Inventory
**Purpose:** Assess user interests using validated RIASEC model.
**What It Assesses:**
60 work activities scored on 5-point scale (Strongly Dislike to Strongly Like)
**Output:**
- RIASEC scores across 6 dimensions:
- Realistic (hands-on, practical work)
- Investigative (analytical, research)
- Artistic (creative, expressive)
- Social (helping, teaching)
- Enterprising (leading, persuading)
- Conventional (organizing, clerical)
- Used to match careers via O*NET scoring
- Stored in user profile for ongoing use
### Retirement Planner
**Purpose:** Model different retirement scenarios and financial outcomes.
**How It Works:**
1. Uses same financial profile as Career Roadmap
2. Creates separate scenarios with different assumptions:
- Retirement age
- Contribution amounts
- Expense levels
- Additional income sources
3. Projects savings growth to retirement
4. Compares scenarios side-by-side
5. Shows which scenario reaches retirement goals
### Resume Optimizer
**Purpose:** Tailor resumes to specific job postings using AI.
**How It Works:**
1. User uploads resume (PDF or DOCX, max 5MB)
2. System extracts text using pdf-parse or mammoth
3. User provides job title and job description
4. GPT-4o analyzes resume against job requirements
5. AI rewrites resume to:
- Highlight relevant experience
- Match keywords from job description
- Optimize for ATS (Applicant Tracking Systems)
- Maintain truthfulness (no fabrication)
6. Returns optimized resume text
7. Rate-limited: 2/week (Premium) or 5/week (Pro)
---
## DATA SOURCES
### Career Database - COMPETITIVE ADVANTAGE ✨
**Primary Source:** Bureau of Labor Statistics Standard Occupational Classification (SOC) system
**Coverage:** Complete BLS SOC database - THE federal standard for career classification (824 unique careers, filtered to professional/higher-education careers from full SOC)
**Unique Positioning:** No competing U.S. career database is larger - SOC is the authoritative source that all other systems (O*NET, Career OneStop, etc.) derive from
**Data Enhancement:** O*NET data used to enrich career listings with:
- Interest Inventory questions and scoring (RIASEC model)
- Detailed career descriptions and tasks
- Skills requirements
- Job zones (education/preparation levels)
**Note:** Not all careers have associated CIP codes for educational pathways
**MARKETING LANGUAGE TO USE:**
- "800+ professional careers - the most comprehensive government career database"
- "Complete career database from the U.S. Bureau of Labor Statistics"
- "Based on the federal standard for career classification"
- "Every professional career tracked by the U.S. government"
- "Access to the SOURCE career data, not a derivative or subset"
### Bureau of Labor Statistics (BLS)
**Source:** U.S. Department of Labor
**Usage:**
- Salary data (percentiles 10/25/50/75/90)
- Regional salary breakdowns
- National salary benchmarks
**Storage:** Local SQLite database (salary_info.db)
**Coverage:** SOC code based, regional (by area) and national
### Economic Projections
**Source:** State labor market information agencies
**Usage:**
- Employment growth projections
- Base year and projected year job counts
- Annual openings estimates
**Storage:** Local JSON file (economicproj.json)
**Coverage:** State-level and national projections by SOC code
### College/Education Database
**Primary:** Classification of Instructional Programs (CIP) codes from IPEDS (Integrated Postsecondary Education Data System)
**Coverage:** Complete CIP code listing - comprehensive educational programs database
**Includes:**
- Tuition costs (in-state, out-of-state, in-district)
- Program types and credentials
- Institution information
- CIP to SOC career pathway mappings
### Google Maps API
**Usage:**
- Geocoding user ZIP codes
- Calculating distances to schools
- Provides driving distance and duration
**Access:** Live API calls (requires API key)
### AI Services
**INTERNAL USE ONLY - DO NOT SHARE IN MARKETING**
**Provider:** OpenAI
**Models:** GPT-4o, GPT-4o-mini
**Usage:** Career coaching, resume optimization, support chatbot
**Marketing Language:** "AI-powered career coach", "powered by advanced AI", "intelligent career guidance"
### Stripe
**Usage:**
- Payment processing for Premium/Pro subscriptions
- Checkout sessions
- Customer portal
- Webhook handling for subscription events
**Features:**
- Monthly and annual billing
- Subscription management
- Cancellation handling
---
## LIMITATIONS (What AptivaAI Does NOT Do)
### Career Discovery
- Does NOT guarantee job placement
- Does NOT provide direct connections to employers
- Does NOT include jobs requiring only high school education or less (filtered out)
- Covers all careers in BLS SOC database (1000+ careers)
- Does NOT provide real-time job market data (projections are historical)
- Does NOT assess personality beyond work interests
- Does NOT provide aptitude/skills testing beyond self-reported interests
### Financial Planning
- Does NOT provide SEC-registered investment advice
- Does NOT connect to bank accounts or investment accounts
- Does NOT automatically track actual spending or income
- DOES model federal and state taxes (single filer, standard deduction, 2023 brackets)
- Does NOT include FICA (Social Security/Medicare taxes)
- Does NOT model local/city taxes, itemized deductions, credits, AMT, capital gains
- Does NOT account for inflation automatically (can be modeled via milestones)
- Does NOT model complex investment returns (flat rate or random range only)
- Social Security benefits modeling: PLANNED FEATURE (coming to Retirement Planner)
- Does NOT model pension plans
- Does NOT model early withdrawal penalties or RMD rules
- Does NOT provide insurance recommendations
- **IMPORTANT:** All projections are simulations based on assumptions - actual results will vary
### Education Planning
- Does NOT apply to schools on user's behalf
- Does NOT guarantee admission or financial aid
- Does NOT provide official FAFSA guidance
- Does NOT track application deadlines
- Does NOT verify program accreditation
- Does NOT guarantee tuition accuracy (uses historical IPEDS data)
- Does NOT model scholarship or grant opportunities beyond user input
### Resume Services
- Does NOT write resumes from scratch
- Does NOT fabricate experience or qualifications
- Does NOT guarantee interview callbacks
- Does NOT provide cover letter writing
- Does NOT submit applications on user's behalf
- Rate limited: NOT unlimited optimizations
- Does NOT support formats other than PDF and DOCX
### AI Features
- Does NOT replace human judgment
- Does NOT guarantee accuracy of advice
- Rate-limited: NOT unlimited queries
- Does NOT provide real-time web search
- Does NOT store comprehensive conversation history
- AI can hallucinate or provide incorrect information
- Does NOT have access to user's email, calendar, or external accounts
### Retirement Planning
- Does NOT provide fiduciary financial advice
- Does NOT recommend specific investments or funds
- Does NOT model complex retirement accounts (401k matching, Roth conversions, etc.)
- Does NOT account for healthcare costs in retirement
- Does NOT model Medicare or long-term care insurance
- Does NOT provide estate planning advice
- Social Security benefits: PLANNED FEATURE (in development)
- Currently in BETA - features may change
### Data & Privacy
- Does NOT sell user data to third parties
- Does NOT share career information with employers without permission
- Does NOT verify employment status
- Does NOT perform background checks
- User data encrypted at rest in production
### Integration
- Does NOT integrate with LinkedIn
- Does NOT integrate with Indeed, Glassdoor, or other job sites
- Does NOT integrate with educational institution application systems
- Does NOT sync with calendar apps
- Does NOT have mobile apps (web-only)
---
## TECHNICAL ARCHITECTURE NOTES
### Frontend
- React 18.2
- React Router for navigation
- Chart.js for financial visualizations
- Tailwind CSS for styling
- Axios for API calls
### Backend
- Node.js with Express
- Three separate servers (server1: auth/user, server2: career data, server3: premium features)
- MySQL database (production)
- SQLite databases (salary data, some local dev)
- Encrypted data at rest (Google Cloud KMS)
- Cookie-based session authentication (HttpOnly, Secure)
- Rate limiting on AI endpoints
### Security
- Helmet for security headers
- CORS with strict origin allowlist
- Input validation and sanitization
- HPP (HTTP Parameter Pollution) protection
- No credentials in client-side code
- Encrypted database fields for sensitive data
- Request logging and audit trails
---
## KEY USER FLOWS
### New User Onboarding (Free)
1. Sign up with email/password
2. Email verification required
3. Complete user profile (location, contact info)
4. Optional: Complete Interest Inventory
5. Access Career Explorer and free tools
### Premium Upgrade Flow
1. Click "Upgrade to Premium" CTA
2. Choose Premium ($4.99/mo) or Pro Premium ($7.99/mo)
3. Stripe checkout (monthly or annual billing)
4. Immediate access to premium features
5. Optional: Complete Premium Onboarding wizard
### Premium Onboarding (First Career Roadmap)
1. Select or search for target career
2. System pre-fills career data (salary, projections)
3. Optional: Select school and program
4. System calculates tuition and program details
5. Review and confirm
6. Creates first career scenario
7. Redirects to Career Roadmap
### Career Planning (Premium)
1. Navigate to Career Roadmap
2. Edit scenario details (salary, expenses, contributions)
3. Add milestones with dates and financial impacts
4. View financial projection chart
5. Ask AI Career Coach for milestone suggestions
6. Adjust and refine plan
7. Track progress over time
### Resume Optimization (Premium)
1. Navigate to Resume Optimizer
2. Upload resume file (PDF/DOCX)
3. Enter job title and paste job description
4. Submit for optimization
5. View optimized resume text
6. Copy or download (user must manually save)
7. Limited to 2/week (Premium) or 5/week (Pro)
---
## DISCLAIMERS USED IN THE APP
### Financial Disclaimer (displayed on projection pages):
"This financial projection is for educational and planning purposes only and should not be considered professional financial advice. Projections are based on assumptions you provide and historical data. Actual results will vary based on market conditions, individual circumstances, and unforeseeable events. AptivaAI is not a registered investment advisor. Consult with a qualified financial professional before making investment decisions."
### AI Coach Disclaimer:
"AI-generated suggestions are for informational purposes only and may not be accurate or suitable for your specific situation. Always verify information independently and consult qualified professionals for important decisions."
### Salary Data:
"Salary data sourced from the Bureau of Labor Statistics and may not reflect current market conditions in all areas."
---
## SUBSCRIPTION MANAGEMENT
### Premium Subscription
- **Price:** $4.99/month or $49/year
- **Billing:** Automated via Stripe
- **Cancellation:** Anytime via Stripe customer portal
- **Access:** Immediate upon payment
- **Renewal:** Auto-renews unless cancelled
- **Refunds:** Handled via Stripe refund policies
### Pro Premium Subscription
- **Price:** $7.99/month or $79/year
- **Same billing/cancellation as Premium**
- **Upgrade:** Can upgrade from Premium anytime
- **Downgrade:** Can downgrade to Premium
### Feature Access Control
- Frontend: Routes wrapped in `<PremiumRoute>` component
- Backend: Endpoints check `is_premium` or `is_pro_premium` flags
- Resume limit enforcement: Tracks usage in database per user per week
---
## SUPPORT & HELP
### Free Users
- AI chatbot (GPT-4o-mini) for basic questions
- Rate-limited support ticket system
- Documentation via in-app info tooltips
- No direct human support
### Premium Users
- Same AI chatbot
- Higher rate limits on support tickets
- Priority consideration (implied)
- Dedicated career coach AI for career questions
### Support Ticket System
- Email-based (via SendGrid)
- Categories: general, billing, technical, data, UX
- Rate limits: 1 per 30 seconds, 3 per day per user
- Deduplication prevents spam
- Replies go to user's email on file
---
## DATA ACCURACY & FRESHNESS
### Career Data (O*NET)
- Updated: Periodically by O*NET Center
- AptivaAI: Live API calls get latest O*NET data
- Lag: Minimal (real-time from O*NET)
### Salary Data (BLS)
- Updated: Annually by BLS (May survey data)
- AptivaAI: Database updated manually when new BLS data released
- Lag: 6-12 months behind current year
### Economic Projections
- Updated: Every 2 years by state agencies
- AptivaAI: JSON file updated when new projections available
- Lag: Up to 2 years
### College/Tuition Data (IPEDS)
- Updated: Annually by NCES
- AptivaAI: Datasets updated manually when new IPEDS data released
- Lag: 1-2 years
### AI Models
- GPT-4o: Knowledge cutoff per OpenAI (typically ~6 months behind)
- GPT-4o-mini: Same limitations
- Does NOT have real-time web access
---
## MOBILE SUPPORT
- Responsive web design
- Works on mobile browsers (iOS Safari, Android Chrome)
- Touch-friendly interface
- Mobile navigation drawer
- Charts optimized for mobile viewing
- NO native mobile apps (iOS/Android)
---
## BROWSER SUPPORT
### Supported Browsers
- Chrome (last 2 versions)
- Firefox (last 2 versions)
- Safari (last 2 versions)
- Edge (last 2 versions)
### Not Officially Supported
- Internet Explorer
- Opera Mini
- Older mobile browsers
---
## ACCESSIBILITY
- Semantic HTML structure
- Keyboard navigation support
- ARIA labels on interactive elements
- Focus indicators
- Color contrast meets WCAG AA guidelines (in most areas)
- No formal WCAG audit conducted
- Screen reader support: partial
---
## PERFORMANCE
### Data Loading
- Career suggestions: 30-60 seconds (parallel API calls to O*NET, BLS, projections)
- Resume optimization: 10-30 seconds (depends on OpenAI response time)
- AI chat responses: 5-15 seconds streaming
- Financial projections: Instant (client-side calculation)
### Caching
- Career suggestions cached in localStorage
- Salary queries cached in memory (server-side, 512 entries)
- O*NET descriptions cached in database after first fetch
### Rate Limits
- Resume optimization: 2-5 per week per user
- AI chat: 20 messages per hour per user
- Support tickets: 3 per day per user
- Interest Inventory submissions: No hard limit (but typically once)
---
## FUTURE LIMITATIONS (Not Currently Built)
These are things users might expect but are NOT available:
1. Job application tracking
2. Interview preparation tools
3. Networking features
4. Mentorship matching
5. Certification tracking
6. Skills gap analysis (beyond career-to-education mapping)
7. Salary negotiation guidance
8. Performance review tracking
9. Professional development plan templates
10. Team/org features (currently individual-only)
11. Export to Excel/PDF (charts and reports)
12. Calendar integration
13. Email reminders for milestones
14. Mobile push notifications
15. Social sharing features
16. Public profiles or career pages
17. API access for third-party integrations
18. Bulk user management (for schools/organizations)
---
## COMPETITIVE POSITIONING
### What Makes AptivaAI Different
**vs. LinkedIn:**
- More detailed career planning and financial modeling
- Evidence-based interest assessment (O*NET RIASEC)
- No job listings or networking features
- Focused on planning, not job searching
**vs. Career Counselors:**
- 24/7 availability
- AI-powered suggestions
- Detailed financial projections
- Much lower cost
- But lacks human judgment and personalization
**vs. Financial Advisors:**
- Focused on career-related financial decisions
- Integrated career and financial planning
- Lower cost
- But not SEC-registered, no fiduciary duty
**vs. O*NET OnLine (free government site):**
- Easier interface
- Financial planning integration
- AI-powered career coach
- Milestone tracking
- But O*NET OnLine is free and comprehensive
**vs. MyNextMove (O*NET consumer site):**
- Similar interest inventory
- More detailed financial planning
- Premium AI features
- But MyNextMove is free
---
## IDEAL USER PROFILES
### High School Students (Free tier)
- Discovering career options
- Taking interest inventory
- Researching education requirements
- Exploring salary potential
### College Students (Free or Premium)
- Confirming career choice
- Finding relevant programs
- Planning finances with student loans
- Estimating post-grad salary
### Career Changers (Premium recommended)
- Exploring new career paths
- Financial modeling for career transition
- Education/reskilling planning
- Milestone tracking for transition
### Early Career Professionals (Premium recommended)
- Career advancement planning
- Financial goal setting
- Resume optimization for promotions
- Long-term career trajectory
### Mid-Career Professionals (Premium/Pro)
- Retirement planning
- Multiple scenario comparison
- Career pivot exploration
- Executive advancement planning
---
## MARKETING KEY POINTS
### Value Propositions
**For Free Users:**
- "Discover your ideal career path with science-backed interest assessment"
- "Compare careers side-by-side with real salary and growth data"
- "Find schools and programs that match your career goals"
- "Free career guidance powered by government labor data"
**For Premium Users:**
- "Plan your entire career trajectory with AI-powered insights"
- "See exactly how career decisions impact your financial future"
- "Get personalized milestone recommendations from your AI career coach"
- "Optimize your resume for any job in minutes"
- "Only $4.99/month - less than a cup of coffee per week"
**For Pro Premium Users:**
- "Unlock unlimited access to GPT-4o career coaching"
- "Optimize up to 5 resumes per week"
- "Priority AI response times"
- "Advanced retirement planning tools"
### Unique Selling Points
1. **Evidence-Based:** Uses validated O*NET RIASEC model and official government data
2. **Integrated:** Career + Education + Financial planning in one platform
3. **AI-Powered:** GPT-4o career coach provides personalized guidance
4. **Transparent:** Real salary data from BLS, economic projections from state agencies
5. **Affordable:** Premium features at less than $5/month
6. **Visual:** Interactive charts show financial impact of career decisions
7. **Flexible:** Model different scenarios and what-if situations
8. **Privacy-Focused:** No data selling, encrypted storage
### Objections & Responses
**"Why not just use O*NET for free?"**
→ AptivaAI adds financial planning, AI coaching, milestone tracking, and an integrated experience. O*NET is a reference tool; AptivaAI is a career management platform.
**"How accurate are the salary projections?"**
→ Salary ranges come directly from BLS official data. Projections model YOUR specific situation based on assumptions you control. They're as accurate as any financial planning tool.
**"Can't I plan my career in Excel?"**
→ You could, but AptivaAI does the heavy lifting: pulls in career data, calculates complex financial models, provides AI guidance, and visualizes everything beautifully.
**"Why pay when LinkedIn is free?"**
→ LinkedIn is for networking and job hunting. AptivaAI is for career planning and financial modeling. Different tools for different purposes.
**"Is this just another chatbot?"**
→ No, the AI coach is one feature among many. Core value is integrated career/education/financial planning with real government data.
---
## TERMINOLOGY GUIDE
**SOC Code:** Standard Occupational Classification code - government system for categorizing careers
**CIP Code:** Classification of Instructional Programs code - categorizes educational programs
**RIASEC:** Holland's theory of career choice (Realistic, Investigative, Artistic, Social, Enterprising, Conventional)
**Job Zone:** O*NET's 1-5 scale for education/preparation needed
**Milestone:** Career event or goal with a date and optional financial impact
**Scenario:** A complete career plan including career choice, financial assumptions, and milestones
**Financial Profile:** User's current financial situation (income, expenses, savings, debts)
**Career Profile:** Details about a specific career path the user is considering or pursuing
**College Profile:** Educational institution and program details associated with a career profile
**Projection:** Month-by-month financial forecast based on scenario assumptions
**O*NET:** Occupational Information Network - comprehensive database of occupational info
**BLS:** Bureau of Labor Statistics - provides wage and employment data
**IPEDS:** Integrated Postsecondary Education Data System - college/university data
---
## LEGAL & COMPLIANCE
### Licenses & Attributions
- O*NET data: CC BY 4.0 (attributed in Career Explorer)
- OpenAI: Commercial license (paid API usage)
- Stripe: Payment processor agreement
- Google Maps: Commercial license
### Privacy
- Privacy Policy: https://aptivaai.com/privacy
- Terms of Service: https://aptivaai.com/terms
- Email verification required
- Encrypted data storage
- No data selling
### Financial Disclaimers
- Not investment advice
- Not a registered investment advisor
- Projections are educational only
- Users should consult professionals
### Trademark
- AptivaAI™ is a trademark of AptivaAI LLC
- O*NET® is a trademark of USDOL/ETA
---
## CONCLUSION
AptivaAI is a comprehensive career guidance platform that combines evidence-based career assessment, real government labor market data, financial modeling, and AI-powered coaching. The free tier provides robust career discovery tools, while Premium tiers add advanced planning, AI guidance, and resume optimization for under $5-8/month.
**Core Strengths:**
- Integration of career, education, and financial planning
- Evidence-based (O*NET, BLS data)
- Affordable premium features
- AI-powered personalization
**Key Limitations:**
- No job search or networking features
- No direct employer connections
- Financial projections are simulations, not guarantees
- AI can make mistakes
- Rate limits on premium features
**Target Market:**
- Students exploring careers
- Early-career professionals planning advancement
- Career changers modeling transitions
- Mid-career professionals planning retirement
---
*This document is for internal use only to guide marketing and content creation. Do not share publicly without review.*

View File

@ -1747,7 +1747,7 @@ app.post('/api/chat/threads', authenticateUser, async (req, res) => {
); );
// Seed a first assistant message so the drawer never appears blank // Seed a first assistant message so the drawer never appears blank
const intro = const intro =
'Hi — Aptiva Support here. I can help with CareerExplorer, account/billing, or technical issues. What do you need?'; 'Hi — Aptiva Support here. I can help with how to use AptivaAI, account/billing, or technical issues. What do you need?';
await pool.query( await pool.query(
'INSERT INTO ai_chat_messages (thread_id,user_id,role,content) VALUES (?,?, "assistant", ?)', 'INSERT INTO ai_chat_messages (thread_id,user_id,role,content) VALUES (?,?, "assistant", ?)',
[id, userId, intro] [id, userId, intro]

View File

@ -94,7 +94,8 @@ http {
return 302 /signin$is_args$args; return 302 /signin$is_args$args;
} }
location / { location / {
try_files $uri $uri/ /index.html; # First try the exact file, then directory with index.html, then directory/, then fallback
try_files $uri $uri/index.html $uri/ /index.html;
} }
location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg)$ { location ~* \.(?:ico|css|js|gif|jpe?g|png|woff2?|eot|ttf|svg)$ {
expires 6M; expires 6M;

1043
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -73,10 +73,29 @@
"lint": "eslint .", "lint": "eslint .",
"lint:fix": "eslint . --fix", "lint:fix": "eslint . --fix",
"start": "react-scripts start --host 0.0.0.0", "start": "react-scripts start --host 0.0.0.0",
"build": "react-scripts build", "build": "react-scripts build && react-snap",
"test": "react-scripts test", "test": "react-scripts test",
"eject": "react-scripts eject" "eject": "react-scripts eject"
}, },
"reactSnap": {
"include": [
"/signin",
"/signup",
"/forgot-password",
"/privacy",
"/terms"
],
"skipThirdPartyRequests": true,
"cacheAjaxRequests": false,
"puppeteerArgs": [
"--no-sandbox",
"--disable-setuid-sandbox"
],
"minifyHtml": {
"collapseWhitespace": true,
"removeComments": true
}
},
"eslintConfig": { "eslintConfig": {
"extends": [ "extends": [
"react-app", "react-app",
@ -117,6 +136,7 @@
"glob": "^11.0.3", "glob": "^11.0.3",
"globals": "^16.3.0", "globals": "^16.3.0",
"postcss": "^8.5.3", "postcss": "^8.5.3",
"react-snap": "^1.23.0",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
"typescript-eslint": "^8.38.0" "typescript-eslint": "^8.38.0"
} }

View File

@ -90,45 +90,69 @@ export default function Paywall() {
// No active sub => pricing // No active sub => pricing
return ( return (
<div className="max-w-lg mx-auto p-6 space-y-8"> <div className="max-w-lg mx-auto p-6 space-y-6">
<header className="text-center"> <header className="text-center space-y-2">
<h2 className="text-2xl font-semibold">Upgrade to AptivaAI</h2> <h2 className="text-2xl font-semibold">Upgrade to Premium</h2>
<p className="text-sm text-gray-600">Choose the plan that fits your needs cancel anytime.</p> <p className="text-sm text-gray-600">Unlock AI-enhanced career planning and financial projections</p>
</header> </header>
{/* Premium */} {/* Single Premium Tier */}
<section className="border rounded-lg p-4 space-y-4"> <section className="border-2 border-aptiva rounded-xl p-6 space-y-4 bg-gradient-to-br from-white to-blue-50">
<h3 className="text-lg font-medium">Premium</h3> <div className="text-center">
<ul className="text-sm list-disc list-inside space-y-1"> <h3 className="text-xl font-semibold text-aptiva">AptivaAI Premium</h3>
<li>Career milestone planning</li> <p className="text-xs text-gray-600 mt-1">Everything you need for career planning</p>
<li>Financial projections &amp; benchmarks</li> </div>
<li>2 × resume optimizations / week</li>
<ul className="text-sm space-y-2">
<li className="flex items-start gap-2">
<span className="text-green-600 font-bold mt-0.5"></span>
<span><strong>AI Career Coach</strong> Unlimited conversations with personalized guidance</span>
</li>
<li className="flex items-start gap-2">
<span className="text-green-600 font-bold mt-0.5"></span>
<span><strong>Career Roadmap</strong> Milestone tracking with financial impact modeling</span>
</li>
<li className="flex items-start gap-2">
<span className="text-green-600 font-bold mt-0.5"></span>
<span><strong>20-Year Financial Projections</strong> Model multiple career scenarios</span>
</li>
<li className="flex items-start gap-2">
<span className="text-green-600 font-bold mt-0.5"></span>
<span><strong>Resume Optimizer</strong> 3 AI-enhanced optimizations per week</span>
</li>
<li className="flex items-start gap-2">
<span className="text-green-600 font-bold mt-0.5"></span>
<span><strong>Retirement Planner</strong> Beta access to retirement scenario modeling</span>
</li>
</ul> </ul>
<div className="grid grid-cols-2 gap-3"> <div className="pt-4 space-y-3 flex flex-col items-center">
<Button onClick={() => checkout('premium', 'monthly')}>$4.99&nbsp;/ mo</Button> <Button
<Button onClick={() => checkout('premium', 'annual')}>$49&nbsp;/ yr</Button> onClick={() => checkout('premium', 'monthly')}
</div> className="w-full max-w-xs h-12 text-base"
</section> size="lg"
>
{/* Pro */} $24 / month
<section className="border rounded-lg p-4 space-y-4">
<h3 className="text-lg font-medium">Pro Premium</h3>
<ul className="text-sm list-disc list-inside space-y-1">
<li>Everything in Premium</li>
<li>Priority GPT-4o usage &amp; higher rate limits</li>
<li>5 × resume optimizations / week</li>
</ul>
<div className="grid grid-cols-2 gap-3">
<Button onClick={() => checkout('pro', 'monthly')}>$7.99&nbsp;/ mo</Button>
<Button onClick={() => checkout('pro', 'annual')}>$79&nbsp;/ yr</Button>
</div>
</section>
<Button variant="secondary" onClick={() => nav(-1)} className="w-full">
Cancel / Go back
</Button> </Button>
<Button
onClick={() => checkout('premium', 'annual')}
variant="outline"
className="w-full max-w-xs h-14 text-base border-2 border-aptiva text-aptiva hover:bg-aptiva hover:text-white flex flex-col items-center justify-center"
size="lg"
>
<span>$199 / year</span>
<span className="text-xs font-normal mt-0.5">Save $89 Best Value!</span>
</Button>
</div>
<p className="text-xs text-center text-gray-500 pt-2">Cancel anytime No long-term commitment</p>
</section>
<div className="flex justify-center">
<Button variant="secondary" onClick={() => nav(-1)} className="w-full max-w-xs">
Maybe later
</Button>
</div>
</div> </div>
); );
} }

View File

@ -6,6 +6,7 @@ import { Button } from './ui/button.js';
import RetirementChatBar from './RetirementChatBar.js'; import RetirementChatBar from './RetirementChatBar.js';
import ScenarioDiffDrawer from './ScenarioDiffDrawer.js'; import ScenarioDiffDrawer from './ScenarioDiffDrawer.js';
import ChatCtx from '../contexts/ChatCtx.js'; import ChatCtx from '../contexts/ChatCtx.js';
import FinancialDisclaimer from './FinancialDisclaimer.js';
/* ------------------------------------------------------------------ /* ------------------------------------------------------------------
* tiny classname helper * tiny classname helper
@ -133,9 +134,14 @@ export default function RetirementPlanner () {
const baselineYears = simYearsMap[baselineId] ?? null; // renamed const baselineYears = simYearsMap[baselineId] ?? null; // renamed
return ( return (
<div className="flex flex-col md:flex-row h-full relative"> <div className="flex flex-col md:flex-row h-full relative">
{/* ================= MAIN COLUMN =========================== */} {/* ================= MAIN COLUMN =========================== */}
<main className="flex-1 p-4 overflow-y-auto"> <main className="flex-1 p-4 overflow-y-auto">
{/* Disclaimer spans above both columns */}
<div className="mx-auto max-w-screen-lg mb-3">
<FinancialDisclaimer />
</div>
{/* desktop add */} {/* desktop add */}
{!isMobile && ( {!isMobile && (
<Button onClick={handleAddScenario} className="mb-4"> <Button onClick={handleAddScenario} className="mb-4">

View File

@ -9,8 +9,8 @@ import { installStorageGuard } from './utils/storageGuard.js';
installStorageGuard(); // Initialize storage guard installStorageGuard(); // Initialize storage guard
const root = ReactDOM.createRoot(document.getElementById('root')); const rootElement = document.getElementById('root');
root.render( const appContent = (
<BrowserRouter> <BrowserRouter>
<PageFlagsProvider> <PageFlagsProvider>
<App /> <App />
@ -18,6 +18,15 @@ root.render(
</BrowserRouter> </BrowserRouter>
); );
// Use hydration if there's pre-rendered content (from react-snap)
// Otherwise use normal rendering (development mode)
if (rootElement.hasChildNodes()) {
ReactDOM.hydrateRoot(rootElement, appContent);
} else {
const root = ReactDOM.createRoot(rootElement);
root.render(appContent);
}
// If you want to start measuring performance in your app, pass a function // If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log)) // to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals