No description
- Rust 42%
- TeX 36.2%
- Typst 10.9%
- Nix 9.9%
- Just 0.9%
- Other 0.1%
| .git-crypt | ||
| .vscode | ||
| nix | ||
| rust | ||
| typst | ||
| v1 | ||
| .envrc | ||
| .envrc.private | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| flake.lock | ||
| flake.nix | ||
| Justfile | ||
| README.md | ||
| rust-toolchain.toml | ||
Stefan Junker's CV
Current Iteration
- Use linkedin-member-portability-cli's
downloadcommand to download my data from LinkedIn via the Membership API. (CAVEAT: stated to only be available for individuals with EU/Switzerland residency, not sure if or how they verify this.)
You can enable the Member portability APIs and create an OAuth2 token.
2. Use linkedin-member-portability-cli's convert command the data into a JSONResume compatible format.
3. Render it into a PDF using a custom typst template.
Usage
Requesites:
LINKEDIN_ACCESS_TOKENis set with a valid OAuth2 token.- This can retrieved
- FIXME: requires
typst/.secrets.typdefining an email:#let secret_email = "name@your.tld"
- Optional, highly recommended: load the nix shell (i.e. `nix develop .#rust)
just generatejust view
$ just generate
cargo run -p linkedin-member-portability-cli -- download --all-domains --page-all --output target/linkedin-profile.json
Compiling linkedin-member-portability-api v0.1.0 (/home/steveej/src/steveej/cv/rust/linkedin-member-portability-api)
Compiling linkedin-member-portability-cli v0.1.0 (/home/steveej/src/steveej/cv/rust/linkedin-member-portability-cli)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.38s
Running `target/debug/linkedin-member-portability-cli download --all-domains --page-all --output target/linkedin-profile.json`
2026-01-10T15:16:40.768942Z INFO linkedin_member_portability_cli: requesting member snapshot domains=["PROFILE", "POSITIONS", "EDUCATION", "VOLUNTEERING_EXPERIENCES", "SKILLS"] start=None count=None page_all=true
cargo run -p linkedin-member-portability-cli -- json-resume --input target/linkedin-profile.json --output target/resume.json
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s
Running `target/debug/linkedin-member-portability-cli json-resume --input target/linkedin-profile.json --output target/resume.json`
just _typst compile
# typst expects all paths to be relative to its root.
# pragmatic solution: recreate the path.
mkdir -p typst/target
cp target/resume.json typst/target/
typst compile --input today="$(date '+%b %d, %Y')" --input jsonresume="target/resume.json" typst/resume.typ target/resume.pdf
steveej@steveej-fw13 ✓ ~/src/steveej/cv 🐚 main
$ just view
just _typst compile
# typst expects all paths to be relative to its root.
# pragmatic solution: recreate the path.
mkdir -p typst/target
cp target/resume.json typst/target/
typst compile --input today="$(date '+%b %d, %Y')" --input jsonresume="target/resume.json" typst/resume.typ target/resume.pdf
xdg-open target/resume.pdf
(objectpath '/org/freedesktop/portal/desktop/request/1_78/t',)
Previous Iterations
- Static Site generated with Leptos. (untracked, abandoned early)
- v1 based on LaTeX