From 92b13c32ffb546df882be3c83beaf0dde3dfeafd Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Wed, 25 Feb 2026 10:54:24 -0800 Subject: [PATCH] =?UTF-8?q?feat:=20expanded=20first-run=20wizard=20?= =?UTF-8?q?=E2=80=94=20complete=20implementation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- config/llm.yaml | 27 ++++---- config/search_profiles.yaml | 128 +++++++++++++++++++++++++++++------- 2 files changed, 118 insertions(+), 37 deletions(-) diff --git a/config/llm.yaml b/config/llm.yaml index 45f0f44..fbb399d 100644 --- a/config/llm.yaml +++ b/config/llm.yaml @@ -3,48 +3,48 @@ backends: api_key_env: ANTHROPIC_API_KEY enabled: false model: claude-sonnet-4-6 - type: anthropic supports_images: true + type: anthropic claude_code: api_key: any base_url: http://localhost:3009/v1 enabled: false model: claude-code-terminal - type: openai_compat supports_images: true + type: openai_compat github_copilot: api_key: any base_url: http://localhost:3010/v1 enabled: false model: gpt-4o - type: openai_compat supports_images: false + type: openai_compat ollama: api_key: ollama base_url: http://localhost:11434/v1 enabled: true - model: llama3.2:3b # replace with your fine-tuned cover letter model if you have one - type: openai_compat + model: meghan-cover-writer:latest supports_images: false + type: openai_compat ollama_research: api_key: ollama base_url: http://localhost:11434/v1 enabled: true model: llama3.1:8b - type: openai_compat supports_images: false + type: openai_compat + vision_service: + base_url: http://localhost:8002 + enabled: true + supports_images: true + type: vision_service vllm: api_key: '' base_url: http://localhost:8000/v1 enabled: true model: __auto__ - type: openai_compat supports_images: false - vision_service: - base_url: http://localhost:8002 - enabled: false - type: vision_service - supports_images: true + type: openai_compat fallback_order: - ollama - claude_code @@ -61,6 +61,3 @@ vision_fallback_order: - vision_service - claude_code - 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. diff --git a/config/search_profiles.yaml b/config/search_profiles.yaml index 252223d..bada59a 100644 --- a/config/search_profiles.yaml +++ b/config/search_profiles.yaml @@ -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: -- name: primary - boards: +- boards: - linkedin - indeed - glassdoor @@ -24,16 +7,117 @@ profiles: - google custom_boards: - adzuna + - theladders - craigslist - titles: - - "Your Target Title" - - "Alternative Title" + exclude_keywords: + - sales + - account executive + - sales engineer + - SDR + - BDR + - business development + - sales development + - sales manager + - sales representative + - sales rep + hours_old: 240 locations: - 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: - sales - account executive - SDR - 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 + 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