Profile management
Practical guides to install and use the app effectively.
Profile Management — Multi-Profile Architecture
HielJobs Ultimate's Multi-Profile System is its core architectural differentiator. This guide explains the isolation model, use cases, and advanced profile management strategies.
Understanding Profile Isolation
┌─────────────────────────────────────────────────────────────────┐
│ HIELJOBS MULTI-PROFILE ARCHITECTURE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ APPLICATION LAYER │ │
│ │ │ │
│ │ Header: ▼ Senior Python Engineer 2024 (Active) │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │Profile A │ │Profile B │ │Profile C │ │ │
│ │ │ (CVs) │ │ (CVs) │ │ (CVs) │ │ │
│ │ │ (Drafts)│ │ (Drafts)│ │ (Drafts)│ │ │
│ │ │ (Outbox) │ │ (Outbox) │ │ (Outbox) │ │ │
│ │ │ (History)│ │ (History)│ │ (History)│ │ │
│ │ │ (Email) │ │ (Email) │ │ (Email) │ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │
│ │ │ │ │ │ │
│ │ └────────────┼────────────┘ │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ ┌─────────────────────────────────────────┐ │ │
│ │ │ PROFILE SWITCHER (Header) │ │ │
│ │ │ - Instant context switching │ │ │
│ │ │ - Isolation enforcement │ │ │
│ │ │ - Per-profile settings │ │ │
│ │ └─────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ DATA LAYER │ │
│ │ │ │
│ │ SQLite Database: │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ profiles table │ │ │
│ │ │ ├── id (PK) │ │ │
│ │ │ ├── name │ │ │
│ │ │ ├── created_at │ │ │
│ │ │ └── settings │ │ │
│ │ │ │ │ │
│ │ │ cvs table (FK: profile_id) │ │ │
│ │ │ drafts table (FK: profile_id) │ │ │
│ │ │ applications table (FK: profile_id) │ │ │
│ │ │ outbox table (FK: profile_id) │ │ │
│ │ │ email_configs table (FK: profile_id) │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ System Keyring: │ │
│ │ ├── profile_a_smtp_password │ │
│ │ ├── profile_b_smtp_password │ │
│ │ └── profile_c_api_keys │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
What is a Profile?
A Profile is a completely isolated workspace within HielJobs Ultimate. Think of it as separate "user accounts" for different career identities.
Data Isolation Model
Each profile maintains independent:
| Data Type | Isolation Level | Storage |
|---|---|---|
| CV Library | 100% separate | SQLite (per-profile rows) |
| Draft Emails | 100% separate | SQLite (per-profile rows) |
| Application History | 100% separate | SQLite (per-profile rows) |
| Outbox Queue | 100% separate | SQLite (per-profile rows) |
| Email Settings | 100% separate | System keyring (per-profile keys) |
| AI Provider Keys | Optional shared | System keyring |
| Search Preferences | 100% separate | SQLite (per-profile rows) |
| Analytics Data | 100% separate | SQLite (per-profile rows) |
| Templates | 100% separate | SQLite (per-profile rows) |
What is Shared Across Profiles?
- Application settings (theme, language)
- Global AI provider keys (optional, can be per-profile)
- Software updates (single codebase)
Why Use Multiple Profiles?
Use Case 1: Career Track Separation
Scenario: Software Engineer exploring Product Management
| Profile | CV Focus | Email Account | Strategy |
|---|---|---|---|
SWE-2024 | Python, Backend, System Design | tech@email.com | Technical depth |
PM-Transition | Leadership, Metrics, Strategy | work@email.com | Business impact |
Benefit: SWE applications emphasize coding skills; PM applications emphasize stakeholder management. Never mix messaging.
Use Case 2: Geographic Markets
Scenario: Seeking roles in both France and Morocco
| Profile | Language | CV Style | Job Sources |
|---|---|---|---|
France-Tech | French | Europass format | LinkedIn FR, Indeed FR |
Maroc-Tech | French/Arabic | CV Marocain | ReKrute, Emploi.ma |
Benefit: Location-appropriate CV formats, language-specific drafts, regional job board optimization.
Use Case 3: Identity Segmentation
Scenario: Freelance consultant with multiple specialties
| Profile | Specialty | Rate Range | Client Type |
|---|---|---|---|
Data-Consulting | Analytics, ML | $150-200/hr | Enterprise |
WebDev-Freelance | React, Node.js | $80-120/hr | SMB/Startup |
Training-Workshops | Python Training | $2000/day | Corporate |
Benefit: Different pricing, different positioning, different client communications — completely separated.
Use Case 4: Job Search Phases
Scenario: Active search with different urgency levels
| Profile | Approach | Volume | Quality Focus |
|---|---|---|---|
Dream-Companies | Highly customized | Low (2-3/week) | Perfect fit only |
Active-Search | Template-based | Medium (5-10/week) | Good matches |
Spray-And-Pray | Minimal customization | High (20+/week) | Volume play |
Benefit: Different strategies don't pollute each other's analytics or workflow.
Creating and Managing Profiles
Creating a New Profile
Settings → Profiles → New Profile
1. Enter Profile Name (max 50 chars)
Examples:
✅ "Senior Backend Engineer 2024"
✅ "Freelance Data Consulting"
✅ "Product Manager - Tech Industry"
❌ "Profile 1"
❌ "Test"
❌ "New"
2. (Optional) Add Description
- Career goals for this profile
- Target companies/industries
- Geographic focus
3. Configure Email (SMTP/IMAP)
- Host: smtp.gmail.com / smtp.outlook.com
- Port: 587 (TLS) or 465 (SSL)
- Username: profile-specific email
- Password: App-specific password (stored in keyring)
4. Import CVs
- Upload PDF/DOCX
- Review extraction
- Tag skills and categories
5. Set Defaults
- Default CV for drafts
- Preferred AI provider
- Default tone setting
Profile Switching
Methods to Switch:
- Header Dropdown — Click active profile name → Select new profile
- Keyboard Shortcut —
Ctrl+P/Cmd+P→ Quick switch dialog - Settings Menu — Settings → Profiles → Click to activate
What Happens on Switch:
┌─────────────────────────────────────────┐
│ PROFILE SWITCH SEQUENCE │
├─────────────────────────────────────────┤
│ 1. Save current view state │
│ 2. Flush pending operations │
│ 3. Load new profile data from SQLite │
│ 4. Update UI (CVs, Drafts, History) │
│ 5. Refresh email configuration │
│ 6. Load profile-specific settings │
│ 7. Update header indicator │
└─────────────────────────────────────────┘
Switching is instant (< 100ms) and complete — no data leaks between profiles.
Profile Data Export/Import
Export Profile:
Settings → Profiles → [Profile] → Export
Exports:
- CVs (PDF/DOCX files)
- Draft templates (JSON)
- Application history (CSV)
- Analytics data (CSV)
- Configuration (JSON, no passwords)
Import Profile:
Settings → Profiles → Import Profile
Supports:
- HielJobs export bundles (.hjp)
- Individual CV files
- CSV application history
Best Practices
Naming Conventions
| Pattern | Example | Use When |
|---|---|---|
Role-Year | SeniorDev-2024 | Time-bound searches |
Role-Market | Engineer-Europe | Geographic focus |
Identity-Type | Freelance-Data | Identity-based separation |
Company-Target | FAANG-Prep | Target company focus |
Email Configuration Strategy
Option A: One Email per Profile
tech-career@email.com→ SWE profileproduct-lead@email.com→ PM profile- Benefit: Complete separation, professional appearance
Option B: Shared Email with Filters
- One email, set up filters in your email client
- HielJobs can tag outgoing emails by profile
- Benefit: Simpler management
CV Organization
Per-Profile CV Strategy:
Profile: "Senior Backend Engineer 2024"
├── CVs/
│ ├── Full-Backend-CV.pdf (3 pages)
│ ├── Concise-Backend-CV.pdf (1 page)
│ ├── Python-Specialist-CV.pdf
│ └── DevOps-Focused-CV.pdf
Tagging System:
- By technology:
python,golang,kubernetes - By level:
senior,lead,staff - By format:
full,short,specialized
Security Considerations
Credential Storage:
| Credential | Storage | Encryption |
|---|---|---|
| SMTP Password | OS Keyring | AES-256 (platform-specific) |
| IMAP Password | OS Keyring | AES-256 (platform-specific) |
| API Keys | OS Keyring | AES-256 (platform-specific) |
| OAuth Tokens | OS Keyring | AES-256 (platform-specific) |
Profile Isolation Security:
- Foreign key constraints in SQLite prevent cross-profile data access
- Application-level filtering on all queries
- No shared memory caches between profiles
- Separate keyring entries per profile
Advanced Profile Management
Profile Templates
Create standardized starting points:
Settings → Profiles → New from Template
Templates Available:
├── Software Engineer
│ └── Pre-configured: tech CV, GitHub email, code-focused tone
├── Product Manager
│ └── Pre-configured: business CV, professional email, formal tone
├── Data Scientist
│ └── Pre-configured: research CV, academic tone, Jupyter mentions
└── Freelance Consultant
└── Pre-configured: project CV, personal email, friendly tone
Automated Profile Switching
Context-Aware Switching (Future Feature):
IF job_description contains "Python" AND profile == "PM-Transition"
THEN suggest_switch TO "SWE-2024"
Current Workaround:
- Use descriptive job search saved searches per profile
- Switch profile before starting search session
Profile Analytics Comparison
Compare performance across profiles:
Analytics → Compare Profiles
Metrics:
├── Response Rate by Profile
├── Applications per Week
├── Source Performance
├── Time to First Response
└── Best Performing Templates
Use this to identify which career track is gaining traction.
Troubleshooting
Profile Won't Switch
- Check if unsaved changes exist (save or discard)
- Verify profile exists in database
- Restart application
- Check SQLite database integrity
Data Appears in Wrong Profile
This should never happen — if it does:
- Report as critical bug
- Export affected data
- Delete incorrect entries
- Verify foreign key constraints are enabled
Email Not Sending After Switch
- Verify email config in current profile
- Test connection in Settings → Email
- Check keyring has correct password
- Confirm profile-specific SMTP settings
Profile Data Corruption
Recovery Steps:
- Export all other profiles as backup
- Use Settings → Advanced → Repair Database
- If unsuccessful, restore from export
- Contact support with database file
Integration with Other Features
→ Smart Draft
-
Auto-selects CVs from current profile only
-
Company name badges in results
-
Quick lookup button on each job card
-
Company rating overlay (if available)
-
Saved company tracking across searches
With Analytics
- Track response rates by company type
- Identify best-performing company stages
- Optimize targeting by industry
- Compare salary offers by company size
Practical Workflows
Target Company Workflow
graph LR
A[Identify 10-15 dream companies] -->|Create dedicated "Dream-Companies" profile|> B
B -->|Set up job alerts for each company|> C
C -->|Deep research on each (Company Lookup)|> D
D -->|Create tailored templates per company type|> E
E -->|Apply within 24 hours of new posting|> F
F -->|Track responses in Analytics|> G
Batch Research Workflow
graph LR
A[Run broad job search (50+ results)] -->|Star promising roles|> B
B -->|Weekend: Batch company research|> C
C -->|Prioritize by:|> D
D -->|Company quality (4.0+ rating)|> E
D -->|Role fit (80%+ match)|> E
D -->|Application freshness (< 3 days)|> E
E -->|Generate drafts for top 5|> F
F -->|Queue for Monday morning send|> G
Data Sources & Limitations
Available Data Sources
| Source | Data Type | Coverage | Reliability |
|---|---|---|---|
| Size, industry, employees | High | High | |
| Glassdoor | Ratings, reviews, salaries | Medium | Medium |
| Crunchbase | Funding, investors, founding | Medium | High |
| Company Website | Mission, products, team | High | High |
| News APIs | Recent events | Variable | Medium |
| Job Boards | Hiring velocity | High | High |
Known Limitations
- Small companies: Limited data availability
- Stealth mode: No public information
- International: Varying data coverage by region
- Real-time: Some data delayed by 24-48 hours
Privacy & Ethics
- Only uses publicly available data
- Respects robots.txt and rate limits
- No employee personal information
- Aggregated data only for ratings
Company Lookup works best when combined with Smart Draft for personalized applications and Profile Management for organized job searches.