feat: expanded first-run wizard — complete implementation
13-task implementation covering: - UserProfile wizard fields (wizard_complete, wizard_step, tier, dev_tier_override, dismissed_banners, effective_tier) + params column in background_tasks - Tier system: FEATURES gate, can_use(), tier_label() (app/wizard/tiers.py) - Six pure validate() step modules (hardware, tier, identity, resume, inference, search) - Resume parser: PDF (pdfplumber) + DOCX (python-docx) extraction + LLM structuring - Integration base class + auto-discovery registry (scripts/integrations/) - 13 integration drivers (Notion, Google Sheets, Airtable, Google Drive, Dropbox, OneDrive, MEGA, Nextcloud, Google Calendar, Apple Calendar, Slack, Discord, Home Assistant) + config/integrations/*.yaml.example files - wizard_generate task type with 8 LLM generation sections + iterative refinement (previous_result + feedback support) - step_integrations module: validate(), get_available(), is_connected() - Wizard orchestrator rewrite (0_Setup.py): 7 steps, crash recovery, LLM polling - app.py gate: checks wizard_complete flag in addition to file existence - Home page: 13 dismissible contextual setup banners (wizard_complete-gated) - Settings: Developer tab — tier override selectbox + wizard reset button 219 tests passing.
This commit is contained in:
parent
6db04b0455
commit
bc56b50696
2 changed files with 118 additions and 37 deletions
|
|
@ -3,48 +3,48 @@ backends:
|
||||||
api_key_env: ANTHROPIC_API_KEY
|
api_key_env: ANTHROPIC_API_KEY
|
||||||
enabled: false
|
enabled: false
|
||||||
model: claude-sonnet-4-6
|
model: claude-sonnet-4-6
|
||||||
type: anthropic
|
|
||||||
supports_images: true
|
supports_images: true
|
||||||
|
type: anthropic
|
||||||
claude_code:
|
claude_code:
|
||||||
api_key: any
|
api_key: any
|
||||||
base_url: http://localhost:3009/v1
|
base_url: http://localhost:3009/v1
|
||||||
enabled: false
|
enabled: false
|
||||||
model: claude-code-terminal
|
model: claude-code-terminal
|
||||||
type: openai_compat
|
|
||||||
supports_images: true
|
supports_images: true
|
||||||
|
type: openai_compat
|
||||||
github_copilot:
|
github_copilot:
|
||||||
api_key: any
|
api_key: any
|
||||||
base_url: http://localhost:3010/v1
|
base_url: http://localhost:3010/v1
|
||||||
enabled: false
|
enabled: false
|
||||||
model: gpt-4o
|
model: gpt-4o
|
||||||
type: openai_compat
|
|
||||||
supports_images: false
|
supports_images: false
|
||||||
|
type: openai_compat
|
||||||
ollama:
|
ollama:
|
||||||
api_key: ollama
|
api_key: ollama
|
||||||
base_url: http://localhost:11434/v1
|
base_url: http://localhost:11434/v1
|
||||||
enabled: true
|
enabled: true
|
||||||
model: llama3.2:3b # replace with your fine-tuned cover letter model if you have one
|
model: alex-cover-writer:latest
|
||||||
type: openai_compat
|
|
||||||
supports_images: false
|
supports_images: false
|
||||||
|
type: openai_compat
|
||||||
ollama_research:
|
ollama_research:
|
||||||
api_key: ollama
|
api_key: ollama
|
||||||
base_url: http://localhost:11434/v1
|
base_url: http://localhost:11434/v1
|
||||||
enabled: true
|
enabled: true
|
||||||
model: llama3.1:8b
|
model: llama3.1:8b
|
||||||
type: openai_compat
|
|
||||||
supports_images: false
|
supports_images: false
|
||||||
|
type: openai_compat
|
||||||
|
vision_service:
|
||||||
|
base_url: http://localhost:8002
|
||||||
|
enabled: true
|
||||||
|
supports_images: true
|
||||||
|
type: vision_service
|
||||||
vllm:
|
vllm:
|
||||||
api_key: ''
|
api_key: ''
|
||||||
base_url: http://localhost:8000/v1
|
base_url: http://localhost:8000/v1
|
||||||
enabled: true
|
enabled: true
|
||||||
model: __auto__
|
model: __auto__
|
||||||
type: openai_compat
|
|
||||||
supports_images: false
|
supports_images: false
|
||||||
vision_service:
|
type: openai_compat
|
||||||
base_url: http://localhost:8002
|
|
||||||
enabled: false
|
|
||||||
type: vision_service
|
|
||||||
supports_images: true
|
|
||||||
fallback_order:
|
fallback_order:
|
||||||
- ollama
|
- ollama
|
||||||
- claude_code
|
- claude_code
|
||||||
|
|
@ -61,6 +61,3 @@ vision_fallback_order:
|
||||||
- vision_service
|
- vision_service
|
||||||
- claude_code
|
- claude_code
|
||||||
- anthropic
|
- anthropic
|
||||||
# Note: 'ollama' intentionally excluded from research order — research
|
|
||||||
# must never use the cover letter model, and this also avoids evicting
|
|
||||||
# the writer from GPU memory while a cover letter task is in flight.
|
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,5 @@
|
||||||
# Search profiles — define one or more named profiles with different
|
|
||||||
# job titles, locations, boards, and keyword filters.
|
|
||||||
# The first profile is used by default in the Job Review and Discovery pages.
|
|
||||||
#
|
|
||||||
# Each profile supports:
|
|
||||||
# name — identifier shown in the UI
|
|
||||||
# titles — job titles to search (exact phrases)
|
|
||||||
# locations — "Remote" or city/metro strings
|
|
||||||
# boards — standard boards: linkedin, indeed, glassdoor, zip_recruiter, google
|
|
||||||
# custom_boards — extra boards: adzuna, theladders, craigslist
|
|
||||||
# exclude_keywords — filter out postings containing these phrases
|
|
||||||
# hours_old — only return jobs posted within this many hours
|
|
||||||
# results_per_board — max results per board per run
|
|
||||||
# mission_tags — optional tags that influence cover-letter mission alignment
|
|
||||||
# (must match a key in mission_preferences in user.yaml)
|
|
||||||
|
|
||||||
profiles:
|
profiles:
|
||||||
- name: primary
|
- boards:
|
||||||
boards:
|
|
||||||
- linkedin
|
- linkedin
|
||||||
- indeed
|
- indeed
|
||||||
- glassdoor
|
- glassdoor
|
||||||
|
|
@ -24,16 +7,117 @@ profiles:
|
||||||
- google
|
- google
|
||||||
custom_boards:
|
custom_boards:
|
||||||
- adzuna
|
- adzuna
|
||||||
|
- theladders
|
||||||
- craigslist
|
- craigslist
|
||||||
titles:
|
exclude_keywords:
|
||||||
- "Your Target Title"
|
- sales
|
||||||
- "Alternative Title"
|
- account executive
|
||||||
|
- sales engineer
|
||||||
|
- SDR
|
||||||
|
- BDR
|
||||||
|
- business development
|
||||||
|
- sales development
|
||||||
|
- sales manager
|
||||||
|
- sales representative
|
||||||
|
- sales rep
|
||||||
|
hours_old: 240
|
||||||
locations:
|
locations:
|
||||||
- Remote
|
- Remote
|
||||||
|
- San Francisco Bay Area, CA
|
||||||
|
name: cs_leadership
|
||||||
|
results_per_board: 75
|
||||||
|
titles:
|
||||||
|
- Customer Success Manager
|
||||||
|
- Customer Engagement Manager
|
||||||
|
- Director of Customer Success
|
||||||
|
- VP Customer Success
|
||||||
|
- Head of Customer Success
|
||||||
|
- Technical Account Manager
|
||||||
|
- TAM
|
||||||
|
- Customer Experience Lead
|
||||||
|
- CSM
|
||||||
|
- CX
|
||||||
|
- Customer Success Consultant
|
||||||
|
- boards:
|
||||||
|
- linkedin
|
||||||
|
- indeed
|
||||||
|
custom_boards:
|
||||||
|
- adzuna
|
||||||
|
- craigslist
|
||||||
exclude_keywords:
|
exclude_keywords:
|
||||||
- sales
|
- sales
|
||||||
- account executive
|
- account executive
|
||||||
- SDR
|
- SDR
|
||||||
- BDR
|
- BDR
|
||||||
hours_old: 240
|
- sales development
|
||||||
|
hours_old: 336
|
||||||
|
locations:
|
||||||
|
- Remote
|
||||||
|
- San Francisco Bay Area, CA
|
||||||
|
mission_tags:
|
||||||
|
- music
|
||||||
|
name: music_industry
|
||||||
results_per_board: 50
|
results_per_board: 50
|
||||||
|
titles:
|
||||||
|
- Customer Success Manager
|
||||||
|
- Partner Success Manager
|
||||||
|
- Artist Success Manager
|
||||||
|
- Creator Success Manager
|
||||||
|
- Technical Account Manager
|
||||||
|
- Community Manager
|
||||||
|
- Account Manager
|
||||||
|
- Label Relations Manager
|
||||||
|
- boards:
|
||||||
|
- linkedin
|
||||||
|
- indeed
|
||||||
|
custom_boards:
|
||||||
|
- adzuna
|
||||||
|
- craigslist
|
||||||
|
exclude_keywords:
|
||||||
|
- sales
|
||||||
|
- account executive
|
||||||
|
- SDR
|
||||||
|
- BDR
|
||||||
|
hours_old: 336
|
||||||
|
locations:
|
||||||
|
- Remote
|
||||||
|
- San Francisco Bay Area, CA
|
||||||
|
mission_tags:
|
||||||
|
- animal_welfare
|
||||||
|
name: animal_welfare
|
||||||
|
results_per_board: 50
|
||||||
|
titles:
|
||||||
|
- Customer Success Manager
|
||||||
|
- Program Manager
|
||||||
|
- Community Engagement Manager
|
||||||
|
- Operations Manager
|
||||||
|
- Partner Success Manager
|
||||||
|
- Account Manager
|
||||||
|
- Development Manager
|
||||||
|
- boards:
|
||||||
|
- linkedin
|
||||||
|
- indeed
|
||||||
|
custom_boards:
|
||||||
|
- adzuna
|
||||||
|
- craigslist
|
||||||
|
exclude_keywords:
|
||||||
|
- sales
|
||||||
|
- account executive
|
||||||
|
- SDR
|
||||||
|
- BDR
|
||||||
|
hours_old: 336
|
||||||
|
locations:
|
||||||
|
- Remote
|
||||||
|
- San Francisco Bay Area, CA
|
||||||
|
mission_tags:
|
||||||
|
- education
|
||||||
|
name: education
|
||||||
|
results_per_board: 50
|
||||||
|
titles:
|
||||||
|
- Customer Success Manager
|
||||||
|
- District Success Manager
|
||||||
|
- Implementation Specialist
|
||||||
|
- Partner Success Manager
|
||||||
|
- Account Manager
|
||||||
|
- School Success Manager
|
||||||
|
- Customer Experience Manager
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue