An LLM-powered CLI that simulates job interviews based on your resume.
Project description
Smithers
An LLM-powered CLI that simulates job interviews based on your resume.
Example
pipx run smithers-llm [RESUME_PATH] --role=[ROLE]
Installation
With pip:
pip install -g smithers-llm
With pipx (automatically adds smithers to PATH):
pipx install smithers-llm
Please notice that the user is expected to run the model separately as well.
So far the only model supported is Llama3.1
You can easily self-host it with Ollama. After installing it, pull the model and keep it running on the background with the command below:
ollama run llama3.1
Usage
With smithers installed on the current env:
python -m smithers-llm [RESUME_PATH] --role=[ROLE]
With smithers installed globally and defined on PATH:
smithers-llm [RESUME_PATH] --role=[ROLE]
With pipx:
pipx run smithers-llm [RESUME_PATH] --role=[ROLE]
Learnings
- LangChain
- Structured Outputs
- LangGraph
- Human in the Loop
- Checkpointer
- Python packaging with SetupTools and Build
- Differences between project configurations files such as the modern pyproject.toml and the battle-tested setup.py and setup.cfg
- Publishing to PyPI and TestPyPI with Twine
- Creating CLIs with Click
- Handling different kinds of options: parameters and arguments
- Experimenting with Jupyter Notebooks
- Research whether it was worth commiting the notebooks, although they might be reasonable for documentation purposes, they weren't for the way I used them in this project, to scratch the general ideas up right in the beginning
- Self-reflection if RAG was necessary here, the answer I came to was NO. The files are too small.
- Creating a GitHub Pages workflow to publish project to PyPI on pushing tagged commits to GH.
Fun fact
The repo was named after a character from the show "The Simpsons".
Smithers conducts a job interview with Homer on the episode "I Married Marge".
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file smithers_llm-1.0.10.tar.gz.
File metadata
- Download URL: smithers_llm-1.0.10.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70b7a1d128a0c4addea21c32d1b6f663ea0af263a87b8b2277084434a455857a
|
|
| MD5 |
eb55953caf255a1b6687b4188bf166e2
|
|
| BLAKE2b-256 |
b42360f498cdbd44c964b148232ff9498d720f0be7d0b3f83b0551d66d234c94
|
Provenance
The following attestation bundles were made for smithers_llm-1.0.10.tar.gz:
Publisher:
publish-to-pypi.yml on Wenceslauu/smithers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smithers_llm-1.0.10.tar.gz -
Subject digest:
70b7a1d128a0c4addea21c32d1b6f663ea0af263a87b8b2277084434a455857a - Sigstore transparency entry: 162787131
- Sigstore integration time:
-
Permalink:
Wenceslauu/smithers@8fe7711bd0e318988ebaac13fbd1a7bb268ee2f0 -
Branch / Tag:
refs/tags/v1.0.10 - Owner: https://github.com/Wenceslauu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@8fe7711bd0e318988ebaac13fbd1a7bb268ee2f0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file smithers_llm-1.0.10-py3-none-any.whl.
File metadata
- Download URL: smithers_llm-1.0.10-py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.0.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ef2c18b8e0b742e72a76ba4b34365caa791bfeb0539413ecc68177894e3e32b
|
|
| MD5 |
214c2ab07c4612f6256027c3b5531216
|
|
| BLAKE2b-256 |
4296bf5dba309bfb7a653b6912e366ca93825611955f8cbf7cb6d5ef7ca97b51
|
Provenance
The following attestation bundles were made for smithers_llm-1.0.10-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on Wenceslauu/smithers
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
smithers_llm-1.0.10-py3-none-any.whl -
Subject digest:
3ef2c18b8e0b742e72a76ba4b34365caa791bfeb0539413ecc68177894e3e32b - Sigstore transparency entry: 162787132
- Sigstore integration time:
-
Permalink:
Wenceslauu/smithers@8fe7711bd0e318988ebaac13fbd1a7bb268ee2f0 -
Branch / Tag:
refs/tags/v1.0.10 - Owner: https://github.com/Wenceslauu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@8fe7711bd0e318988ebaac13fbd1a7bb268ee2f0 -
Trigger Event:
push
-
Statement type: