← Back to projects
CASE STUDY / 002 Active · V1

JobAssistant.

Let the tool organize repeated work. Keep the final decision with the applicant.

A local-first assistant for organizing job opportunities, evaluating fit, and keeping a traceable application record.

GitHub ↗
JOBASSISTANT01 / CAPTURE
Product screenshot reserved

Awaiting an approved capture of the real workspace

Screenshot not yet supplied · Not a product UI or live demo
Project type
Local job-application assistant
Environment
Local · Single user
My role
Product flow & implementation
01

Overview

JobAssistant brings job intake, rule-based scoring, greeting suggestions, progress tracking, and local backups into one local workflow.

  • It binds to 127.0.0.1 by default and has no hosted dependency.
  • The applicant reviews content on the recruiting platform and performs every final send or submission.
02

The problem

Job searching involves repeated organization, comparison, and follow-up. Important judgement can otherwise be scattered across pages and notes.

  • Keep structured job input and next actions together.
  • Make score reasons, feedback, and review records available later.
03

Key capabilities

Capabilities support a human-reviewed workflow; they do not simulate actions on a recruiting platform.

  • Import, deduplicate, and queue eight-column TSV job records.
  • Generate rule-based fit scores and editable greeting suggestions.
  • Track local lifecycle events including applied, contacted, interview, and offer; manage blacklists and company aliases.
04

Architecture & data

The browser UI calls a local Python HTTP API. The application service owns rules and transitions, while SQLite is the authoritative store.

  1. Web UI
  2. Local HTTP API
  3. Application service
  4. SQLite & local configuration
  • Writes are protected by a local session token.
  • Score, greeting, status-event, feedback, and JD records retain traceable history.
05

Boundaries

The tool helps users prepare and organize; it does not make external decisions for them.

  • No recruiting-platform login, automatic messages, or automatic resume submissions.
  • No local-data upload or third-party account credentials.
  • After opening a link or copying text, the user still completes the external action.
06

Validation

The release completed the full Python regression suite and isolated HTTP end-to-end verification.

  • 135 automated tests cover migration, scoring, intake, API behavior, UI contracts, and lifecycle features.
  • The full-flow harness uses a separate SQLite database and never touches normal local data.
OPEN SOURCEView source