Skip to main content

A spaced-repetition CLI for LeetCode practice problems

Project description

Jobbernaut Sensei Logo

Jobbernaut Sensei

Navigate the vast space of the job market.

Jobbernaut is a cloud-native, event-driven open core intelligence platform designed to automate the most tedious parts of the job search: data extraction, resume tailoring, and document management. It transforms a scattered manual process into a streamlined, intelligent pipeline.

Jobbernaut Sensei is the LeetCode practice & spaced-repetition CLI tool within the ecosystem โ€” helping you sharpen your algorithmic skills with a structured review system.


๐Ÿš€ The Ecosystem at a Glance

The ecosystem is composed of 5 decoupled micro-repositories working in harmony, plus this CLI tool.

Repository Role Technology Stack
jobbernaut-infra Foundation Terraform (HCL), AWS IAM, S3, DynamoDB
jobbernaut-tabs Frontend Next.js, React, Tailwind CSS
jobbernaut-backend Control Python (AWS Lambda), Boto3, Pydantic
jobbernaut-tailor Intelligence Docker, Python, LangChain (AI), TeXLive (LaTeX)
jobbernaut-extract Collection Chrome Extension (Manifest V3), JavaScript
jobbernaut-sensei CLI Practice Python (setuptools)

๐Ÿ“˜ Documentation: For deep dives into the architecture, data flows, and setup guides, visit jobbernaut-docs.


โšก๏ธ Key Features

  • Spaced Repetition: Never forget a solution โ€” the CLI schedules reviews based on your difficulty rating.
  • One-Command Scaffolding: Create new problem files with pre-filled metadata in seconds.
  • ATS-Ready Tracking: Export your progress to CSV or Markdown.
  • Context-Aware Fuzzy Matching: Open or mark problems by number, slug, or title words.
  • Zsh Completions: Tab-complete problem names and categories.

๐Ÿ“ฆ Setup

pip install jobbernaut-sensei

Initialize a problems/ directory:

sensei init

๐Ÿ” Daily Loop

1. Morning โ€” see what's due

sensei revisit

2. Start a problem โ€” scaffold it

sensei new 217 contains-duplicate 1-arrays-and-hashing -d easy -t arrays hash-set

3. Open a problem โ€” jump back in

sensei open 217

4. After solving โ€” mark it

sensei mark 217

You'll be prompted with one question:

  How did it go?

    [e]  easy      โ†’ 90 days
    [g]  good      โ†’ 30 days
    [h]  hard      โ†’ 7 days
    [s]  struggled โ†’ 3 days

Press one key. last_solved and revisit_in_days are updated automatically.


๐Ÿ“– Commands

sensei revisit โ€” daily review runner

sensei revisit

Example output:

๐Ÿ“…  Jobbernaut Sensei Revisit โ€” Tuesday, May 26 2026

๐ŸŸข  UPCOMING (7 days)
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  in 3d          [hard  ]   124. Binary Tree Maximum Path Sum      (trees)
  in 4d          [medium]   853. Car Fleet                         (stack, monotonic-stack)

โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  0 problem(s) need attention today.  Total tracked: 22
Flag What it does
(none) Overdue + due today + upcoming 7 days
--all Everything, including far-future problems
--topic arrays Filter by topic tag (partial match)
--export Export all problems to export.csv
--export-md Export all problems to export.md

sensei new โ€” scaffold a new problem

sensei new 217 contains-duplicate 1-arrays-and-hashing
sensei new 217 contains-duplicate 1-arrays-and-hashing -d easy -t arrays hash-set --open
Argument Description
number LeetCode problem number
slug LeetCode URL slug, e.g. contains-duplicate
category Topic folder, e.g. 1-arrays-and-hashing
-d / --difficulty easy / medium / hard (default: medium)
-t / --tags One or more topic tags
--open Open the file in $EDITOR / code immediately

sensei open โ€” open a problem

sensei open 217
sensei open contains-duplicate
sensei open 217 --no-browser   # editor only

Accepts problem number, slug, or title words โ€” same fuzzy matching as mark.

sensei mark โ€” mark a problem as reviewed

sensei mark 217
sensei mark contains-duplicate

Updates last_solved to today and sets revisit_in_days based on your rating.


๐Ÿ”ง Zsh Shell Completions

Tab-complete sensei subcommands, problem numbers/names, and category names.

Add to ~/.zshrc:

fpath=(/path/to/jobbernaut-sensei/src/completions $fpath)
autoload -Uz compinit && compinit

Then reload: source ~/.zshrc


โš–๏ธ License

Unless otherwise noted, all repositories within the Jobbernaut organization are licensed under the PolyForm Noncommercial License 1.0.0.

If a repository lacks a specific LICENSE file, the license located at Jobbernaut/LICENSE.md applies by default.

You are free to use, modify, and learn from this code for personal or non-commercial purposes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jobbernaut_sensei-0.3.0.tar.gz (22.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jobbernaut_sensei-0.3.0-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file jobbernaut_sensei-0.3.0.tar.gz.

File metadata

  • Download URL: jobbernaut_sensei-0.3.0.tar.gz
  • Upload date:
  • Size: 22.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for jobbernaut_sensei-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b1c799842edff5c760a1d512e171ad9c993afad1bc0a5993c8ac272ce38903ff
MD5 8e1ebfe797f3c2ff8a4804a82efe6514
BLAKE2b-256 fbb73078d230924d892f492500316a1088ce537f6672ab1654ea8e1f62bebe36

See more details on using hashes here.

File details

Details for the file jobbernaut_sensei-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jobbernaut_sensei-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c5c885820e75b82cb42662e56755d8810d5b035384da0f7e9d55873f69597956
MD5 8ebe643623b9b3c5933fdcbc38ec89c1
BLAKE2b-256 4deef70526d12753a97f62d6c6d89007922a682c67ab2b9344f15daccd2cf225

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page