How aridawoodi/local-ai-job-search-assistant-app works
Job Search Assistant is a local-first Electron desktop app whose main workflow is opening a persistent browser, searching job sources, matching listings, notifying the user, and optionally filling applications under safety controls; applications can then be tracked. Separate capabilities cover profile/resume import, AI writing assistance through local Ollama, and preferences/onboarding. The sampled main-process and renderer files establish the IPC-driven workflow; several subsystem details are documented in the README but not sampled, so those links rely on that documentation.
Main entry points: main/index.ts Main coordinator · App.tsx Desktop UI · PipelinePanel.tsx Pipeline controls · preload/index.ts Desktop API
Components 23
Desktop Shell
- Desktop UI
src/renderer/App.tsx - Pipeline controls
src/renderer/components/PipelinePanel.tsx - Desktop API
electron/preload/index.ts - Main coordinator
electron/main/index.ts - Browser controller
electron/main/browser-controller.ts
Job Discovery
- Multi-source search
src/modules/search/index.ts - Search adapters
src/modules/search - Job matching
src/modules/match/engine.ts - Notifications
src/modules/notify/index.ts
Application Flow
- Application automation
src/modules/apply/index.ts - Form filling
src/modules/apply/fill.ts - Application tracker
src/modules/tracker/index.ts
Profile and AI
- Profile and resume UI
src/renderer/components/ProfilePanel.tsx - Resume import
src/modules/resume/import.ts - AI assistance UI
src/renderer/components/AiAssistPanel.tsx - AI writing assists
src/modules/ai/cover.ts - Ollama client
src/modules/ai/ollama-client.ts
Local State
- Preferences store
electron/main/preferences-store.ts - Profile store
electron/main/profile-store.ts - Profile import/export
src/modules/import/index.ts
Other components
- Job seeker
- Chrome or Edge
- Local Ollama
Connections 22
- Job seeker → Desktop UI: uses
README.md - Desktop UI → Pipeline controls: renders
src/renderer/App.tsx - Pipeline controls → Desktop API: requests actions
src/renderer/components/PipelinePanel.tsx - Desktop API → Main coordinator: forwards IPC
electron/main/index.ts - Main coordinator → Browser controller: controls browser
electron/main/index.ts - Browser controller → Chrome or Edge: drives
README.md - Main coordinator → Multi-source search: runs search
electron/main/index.ts - Multi-source search → Search adapters: dispatches searches
src/modules/search/index.ts - Main coordinator → Job matching: runs matching
electron/main/index.ts - Main coordinator → Notifications: sends notifications
electron/main/index.ts - Main coordinator → Application automation: runs apply
electron/main/index.ts - Application automation → Form filling: fills forms
src/modules/apply/index.ts - Main coordinator → Application tracker: updates tracker
electron/main/index.ts - Desktop UI → Profile and resume UI: renders
src/renderer/App.tsx - Profile and resume UI → Resume import: imports resume
README.md - Desktop UI → AI assistance UI: renders
src/renderer/App.tsx - AI assistance UI → AI writing assists: requests AI assists
README.md - AI writing assists → Ollama client: calls
src/modules/ai/cover.ts - Ollama client → Local Ollama: sends prompts
README.md - Main coordinator → Preferences store: loads and saves
electron/main/index.ts - Main coordinator → Profile store: loads and saves
electron/main/index.ts - Main coordinator → Profile import/export: imports profiles
electron/main/index.ts