Skip to content

Glossary

Chazona Baum edited this page Jun 24, 2026 · 1 revision

Relevant source files

This page defines codebase-specific terms, abbreviations, and domain concepts used throughout Lodestar.

Core Entities & Concepts

Vault

The user's local directory (typically an Obsidian vault) where all persistent data is stored as Markdown files with YAML frontmatter src-tauri/src/lib.rs#30-40 The app does not use a primary database for entity storage; it treats the file system as the source of truth src-tauri/src/note.rs#1-15

Check (Run)

A durable record of a pipeline execution, stored in <vault>/checks/<id>.mdsrc-tauri/src/check.rs#138-143 A "Check" (or "Run") represents a single logical operation, such as discovering jobs for a company (job_check) or fetching details for a specific role (job_detail) src-tauri/src/check.rs#44-58

Slug

A URL-safe, filesystem-safe unique identifier derived from an entity's name (e.g., google for a company, senior-software-engineer-google-123 for a job) src-tauri/src/job.rs#181-182 Slugs serve as filenames and primary keys in the system.


Pipeline & Automation

Task Queue

A SQLite-backed durable queue (queue.db) located in the app's data directory (not the vault) src-tauri/src/lib.rs#31-33 It manages the execution of pipeline steps, ensuring retries and state persistence across app restarts src-tauri/src/pipeline/queue.rs#1-10

Scraping

The process of fetching HTML from job boards or career pages.

LLM Integration

Lodestar uses OpenRouter to interface with various Large Language Models src-tauri/src/llm.rs#1-10

  • Prompt Caching: Uses OpenRouter's cached_prefix to reduce costs for repetitive prompts (like the candidate dossier used in alignment) src-tauri/src/llm.rs#120-130
  • Structured Output: The app uses defensive parsing to extract JSON arrays or objects from LLM responses, even if wrapped in prose src-tauri/src/prompts.rs#53-81

Gap Detection

A pipeline stage (gap-detect) that inspects a Job struct to see which RESEARCHABLE_FIELDS (like comp_low or tech_stack) are missing, triggering a conditional research-gaps step src-tauri/src/pipeline/steps.rs#137-142


Domain Concepts (The "Fit" Model)

Fit Breakdown

The result of the scoring engine, containing five dimensions and any "Flags" src-tauri/src/fit.rs#55-63

Dimension Description Code Reference
Seniority Match between Job level and User target_levels, adjusted by YOE. src-tauri/src/fit.rs#94-158
Skills Coverage of required_skills and preferred_skills against the user's profile. src-tauri/src/fit.rs#165-184
Comp Alignment of job salary range with the user's comp_floor and comp_target. src-tauri/src/fit.rs#191-200
Arrangement Match for Remote/Hybrid/Onsite preferences. src-tauri/src/fit.rs#205-215
Domain Preference for specific industries or functional domains. src-tauri/src/fit.rs#220-230

Flags

Qualitative markers that indicate concerns or dealbreakers src-tauri/src/fit.rs#21-32

Seniority Tracks

The system divides seniority into two tracks to prevent "IC vs Manager" mismatches:

  1. IC Track: junior (0), mid (1), senior (2).
  2. Management Track: front-line-mgmt (0), middle-mgmt (1), dept-head (2), vp (3), c-suite (4). src-tauri/src/fit.rs#74-86

Technical Architecture Diagrams

Data Flow: Natural Language to Code Entity

This diagram illustrates how a raw Job Description is transformed into a structured Job entity in the codebase.

flowchart TD
    subgraph subGraph2 ["Persistence (Vault)"]
        G["jobs/slug.md"]
    end
    subgraph subGraph1 ["Code Entity Space (Rust)"]
        B["scraper::run_scrape_step"]
        C["sanitize::sanitize"]
        D["prompts::build_structure_jd_prompt"]
        E["prompts::StructuredJd (Struct)"]
        F["job::Job (Struct)"]
    end
    subgraph subGraph0 ["Natural Language Space"]
        A["HTML/Text JD"]
    end
    A --> B
    B --> C
    C --> D
    D --> E
    E --> F
    F --> G
Loading

Sources:src-tauri/src/pipeline/steps.rs#40-50src-tauri/src/job.rs#59-111src-tauri/src/prompts.rs#86-141

Pipeline Execution: Step & Event Mapping

This diagram maps the logical pipeline stages to the internal event system used by the Svelte frontend.

flowchart LR
    subgraph subGraph2 ["Frontend State (Svelte)"]
        F1["onRunStep (Listener)"]
        F2["phaseLabel (UI Helper)"]
    end
    subgraph subGraph1 ["Event System (Tauri IPC)"]
        E1["EventSink::step_started"]
        E2["EventSink::step_done"]
    end
    subgraph subGraph0 ["Pipeline Runner (Rust)"]
        S1["careers-scrape"]
        S2["structure-listings"]
        S3["finalize"]
    end
    S1 --> E1
    E1 --> F1
    F1 --> F2
    S1 --> E2
    E2 --> F1
Loading

Sources:src-tauri/src/pipeline/steps.rs#62-70src/lib/pipeline.ts#62-79src/lib/pipeline.ts#92-114


Common Abbreviations

Sources:

  • src-tauri/src/pipeline/steps.rs
  • src-tauri/src/job.rs
  • src-tauri/src/fit.rs
  • src-tauri/src/check.rs
  • src-tauri/src/prompts.rs
  • src-tauri/src/lib.rs
  • src/lib/pipeline.ts

Clone this wiki locally