- .mcp.json: both telegram servers now start via scripts/telegram-mcp.sh <usulsu|helper> instead of hardcoding session strings — config is now secret-free and safe to commit. - scripts/telegram-mcp.sh: sources .env, selects the per-account session string (TELEGRAM_SESSION_STRING / TELEGRAM_SESSION_STRING_HELPER), execs the telegram-mcp binary (path overridable via TELEGRAM_MCP_BIN). - scripts/regen_telegram_session.sh: rewritten — captures the generated string, saves it to .secrets/session_<account>.txt, and upserts it into .env. Fixes the broken /projects/... generator path. - package.json: tg:session:usulsu / tg:session:helper npm scripts. - .gitignore: ignore .secrets/. Root cause of the dead session: hardcoded strings lived in git, so laptop and VPS shared one auth_key across two IPs and Telegram revoked it. Strings now live only in local, gitignored files — one per device/account. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| base | ||
| docs | ||
| output/pdf | ||
| portfolio/temp | ||
| scripts | ||
| tailored | ||
| templates | ||
| tracking | ||
| .env.example | ||
| .gitignore | ||
| .mcp.json | ||
| CLAUDE.md | ||
| README.md | ||
| package.json | ||
| pnpm-lock.yaml | ||
README.md
CV-2026
Personal CV generation pipeline for Oleg Proskurin.
Pipeline
base/*.md -> output/html/*.html -> output/pdf/*.pdf
(Claude generates) (puppeteer renders)
Folder layout
| Path | Purpose |
|---|---|
base/ |
Master CV in Markdown (source of truth for content) |
base/reference/ |
Reference PDF that defines the visual style/format |
templates/ |
Shared HTML/CSS — used by every generated CV |
tailored/<company>/ |
Company-specific tailored versions (MD + HTML + PDF) |
tracking/ |
Applications, outreaches, communications log |
scripts/ |
Build tooling (PDF generator) |
output/html/ |
Generated HTML (transient, gitignored) |
output/pdf/ |
Generated PDFs (committed) |
Usage
Install once:
pnpm install
Generate PDF from an HTML file:
pnpm pdf output/html/oleg_proskurin_ai_engineer_fullstack_cv.html
# -> output/pdf/oleg_proskurin_ai_engineer_fullstack_cv.pdf
The HTML file should be generated by Claude from the Markdown source — see CLAUDE.md for the full flow and styling rules.
Workflows
- New base CV: drop a new
oleg_proskurin_<role>_cv.mdintobase/, ask Claude to generate the HTML, then runpnpm pdf. - Tailor for a company: ask Claude to create
tailored/<company>/cv.mdfrom the latest base, generate HTML, then PDF. - Track applications: append to
tracking/applications.mdandtracking/outreach.md.