Skip to content

Commit e70cd2c

Browse files
Updated readme
1 parent ee510f9 commit e70cd2c

1 file changed

Lines changed: 63 additions & 21 deletions

File tree

README.md

Lines changed: 63 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,32 @@
44
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
55
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
66

7+
## Important update (Nov 2025)
8+
9+
- Single source of truth: the experience log at `data/experiences.json` now drives resume generation. The old `data/master_resume.json` is still supported for compatibility, but generation/tailoring should prefer the experience log path.
10+
- One-command tailoring from a job URL (recommended):
11+
12+
```bash
13+
pip install -r requirements.txt
14+
python src/tailor_from_url.py \
15+
--url "https://example.com/job-posting" \
16+
--out out/tailored.html \
17+
--docx \
18+
--theme modern
19+
```
20+
21+
What this does:
22+
- Fetches and saves the job listing, updating `data/job_listings/index.json`
23+
- Builds a fresh resume from the experience log
24+
- Tailors bullets to the job (optionally with RAG and LLM rewriting)
25+
- Generates HTML (and DOCX if requested)
26+
- Saves the tailored resume to `data/resumes/` and links it to the job listing
27+
28+
Key changes and guardrails:
29+
- Unique resume names are enforced across the system to protect data integrity; attempts to create duplicates will return a clear error. See docs/UNIQUE_RESUME_NAMES.md.
30+
- The agent and the web UI are integrated; you can now select which AI provider/model to use in the browser. See docs/AGENT_SELECTION.md and docs/AGENT_WEB_INTEGRATION.md.
31+
- For a deep dive into the new pipeline, see docs/EXPERIENCE_LOG_AS_SOURCE_OF_TRUTH.md and docs/TAILOR_FROM_URL_INTEGRATION.md.
32+
733
AI‑assisted tooling to customize your resume to a target job description (Phase 1).
834

935
## Features (Phase 1)
@@ -12,7 +38,7 @@ AI‑assisted tooling to customize your resume to a target job description (Phas
1238
- Select and rewrite the strongest bullets using STAR‑style phrasing.
1339
- Render a tailored resume using a Jinja2 template to Markdown, HTML, and DOCX.
1440
- **NEW:** Hybrid HTML/CSS resume generation with multiple professional themes.
15-
- **NEW:** Web-based resume editor for managing master_resume.json ([Issue #2](https://github.com/BPMSoftwareSolutions/agentic-resume-tailor/issues/2))
41+
- **NEW:** Web-based resume editor for managing resumes ([Issue #2](https://github.com/BPMSoftwareSolutions/agentic-resume-tailor/issues/2))
1642
- **NEW:** Multi-resume support with job listing management and automated tailoring ([Issue #6](https://github.com/BPMSoftwareSolutions/agentic-resume-tailor/issues/6))
1743
- **NEW:** Local AI Agent for interactive automation and command execution ([Issue #8](https://github.com/BPMSoftwareSolutions/agentic-resume-tailor/issues/8))
1844
- **NEW:** AI Agent Web Integration - Chat with the agent directly from your browser ([Issue #12](https://github.com/BPMSoftwareSolutions/agentic-resume-tailor/issues/12))
@@ -266,7 +292,7 @@ See [Auto-Verification & Token Management Documentation](docs/AUTO_VERIFICATION_
266292
# Duplicate by resume name
267293
python src/duplicate_resume.py --resume "Ford" --new-name "Sidney_Jones_Engineering_Manager_Subscription_Billing"
268294

269-
# Duplicate master resume
295+
# Legacy: duplicate the old master resume (optional)
270296
python src/duplicate_resume.py --resume "Master Resume" --new-name "Sidney_Jones_Senior_Engineer_NewCo"
271297

272298
# Duplicate with description
@@ -291,14 +317,20 @@ run: python src/duplicate_resume.py --resume "Ford" --new-name "Sidney_Jones_Eng
291317
New Resume ID: a04640bf-d6bb-4d7f-a949-69026acdb212
292318
New Resume Name: Sidney_Jones_Engineering_Manager_Subscription_Billing
293319
294-
💬 > Duplicate the Master Resume
295-
🤖 run: python src/duplicate_resume.py --resume "Master Resume" --new-name "Sidney_Jones_Senior_Engineer_Copy"
320+
💬 > Duplicate the Ford resume
321+
🤖 run: python src/duplicate_resume.py --resume "Ford" --new-name "Sidney_Jones_Senior_Engineer_Copy"
296322
```
297323

298-
**Typical Workflow:**
299-
1. Duplicate an existing resume (Master Resume or company-specific)
300-
2. Update specific sections using CRUD scripts (optional)
301-
3. Tailor to job description using `tailor.py` (optional)
324+
**Recommended Workflow (Experience Log + From-URL):**
325+
1. Use `src/tailor_from_url.py` with a job URL to build from `data/experiences.json` and generate HTML/DOCX.
326+
2. Optionally duplicate an existing resume for manual tweaks.
327+
3. Optionally use CRUD scripts for precise edits or via the AI agent.
328+
329+
See [Experience Log as Source of Truth](docs/EXPERIENCE_LOG_AS_SOURCE_OF_TRUTH.md) and [Tailor from URL Integration](docs/TAILOR_FROM_URL_INTEGRATION.md).
330+
331+
**Legacy Workflow (JSON-first):**
332+
1. Duplicate the old master resume or pick an existing resume JSON.
333+
2. Use `src/tailor.py` or `src/generate_hybrid_resume.py` to render HTML/DOCX.
302334

303335
See [CRUD Operations Documentation](docs/CRUD_OPERATIONS.md) for details.
304336

@@ -307,19 +339,19 @@ See [CRUD Operations Documentation](docs/CRUD_OPERATIONS.md) for details.
307339
# Manage resume data with specialized scripts
308340

309341
# Update basic info
310-
python src/crud/basic_info.py --resume "Master Resume" --update-title "Principal Software Architect"
342+
python src/crud/basic_info.py --resume "Ford" --update-title "Principal Software Architect"
311343

312344
# Add technical skills
313-
python src/crud/technical_skills.py --resume "Master Resume" --append-to-category "languages" "Python, Rust"
345+
python src/crud/technical_skills.py --resume "Ford" --append-to-category "languages" "Python, Rust"
314346

315347
# Add expertise area
316-
python src/crud/expertise.py --resume "Master Resume" --add "Cloud-Native Architecture"
348+
python src/crud/expertise.py --resume "Ford" --add "Cloud-Native Architecture"
317349

318350
# Add certification
319-
python src/crud/certifications.py --resume "Master Resume" --add --name "AWS Solutions Architect" --issuer "Amazon" --date "Nov 2025"
351+
python src/crud/certifications.py --resume "Ford" --add --name "AWS Solutions Architect" --issuer "Amazon" --date "Nov 2025"
320352

321353
# List all operations
322-
python src/crud/expertise.py --resume "Master Resume" --list
354+
python src/crud/expertise.py --resume "Ford" --list
323355
```
324356

325357
**Features:**
@@ -342,13 +374,13 @@ python src/crud/expertise.py --resume "Master Resume" --list
342374
**Natural Language Examples (via AI Agent):**
343375
```
344376
💬 > Add Python to my technical skills
345-
🤖 run: python src/crud/technical_skills.py --resume "Master Resume" --append-to-category "languages" "Python"
377+
🤖 run: python src/crud/technical_skills.py --resume "Ford" --append-to-category "languages" "Python"
346378
347379
💬 > Update my title to Principal Architect
348-
🤖 run: python src/crud/basic_info.py --resume "Master Resume" --update-title "Principal Architect"
380+
🤖 run: python src/crud/basic_info.py --resume "Ford" --update-title "Principal Architect"
349381
350382
💬 > List my certifications
351-
🤖 run: python src/crud/certifications.py --resume "Master Resume" --list
383+
🤖 run: python src/crud/certifications.py --resume "Ford" --list
352384
```
353385

354386
See [CRUD Operations Documentation](docs/CRUD_OPERATIONS.md) for complete guide.
@@ -375,14 +407,22 @@ python src/api/app.py
375407

376408
See [Resume Editor Documentation](docs/RESUME_EDITOR_WEB_INTERFACE.md) for details.
377409

378-
### Generate Markdown Resume
410+
### Generate Markdown Resume (Legacy)
411+
Note: Prefer the one-command from-URL flow via tailor_from_url.py, which builds from the experience log.
412+
379413
```bash
380414
pip install -r requirements.txt
381415
python src/tailor.py --jd data/sample_jd.txt --out out/Sidney_Resume_DEVOPS.md
382416
python src/export_docx.py --md out/Sidney_Resume_DEVOPS.md --docx out/Sidney_Resume_DEVOPS.docx
383417
```
384418

385-
### Generate HTML Resume (NEW!)
419+
### Generate HTML Resume
420+
Recommended (experience log + from-URL):
421+
```bash
422+
python src/tailor_from_url.py --url "https://example.com/job" --out out/resume.html --theme professional --docx
423+
```
424+
425+
Legacy options (existing JSON/master_resume):
386426
```bash
387427
# Generate HTML resume with professional theme
388428
python src/tailor.py --jd data/sample_jd.txt --out out/Sidney_Resume_DEVOPS.html --format html --theme professional
@@ -407,7 +447,7 @@ python src/generate_hybrid_resume.py --input data/master_resume.json --output ou
407447

408448
**Convert to PDF:** Open the HTML file in your browser and use Print → Save as PDF
409449

410-
**DOCX Export:** Requires `pandoc` (preferred) or `pip install python-docx beautifulsoup4 lxml`
450+
**DOCX Export:** Install pandoc (preferred) or `pip install python-docx beautifulsoup4`. Note: weasyprint is supported for PDF generation only (not DOCX).
411451

412452
## Documentation
413453

@@ -418,10 +458,12 @@ python src/generate_hybrid_resume.py --input data/master_resume.json --output ou
418458
- **[Hybrid HTML Resume Generation](docs/HYBRID_HTML_RESUME_GENERATION.md)** - Complete guide to HTML resume generation
419459
- **[Quality Tests Summary](docs/QUALITY_TESTS_GREEN_SUMMARY.md)** - Test suite documentation
420460
- **[TDD Validation Summary](docs/TDD_VALIDATION_SUMMARY.md)** - TDD approach documentation
461+
- **[Experience Log as Source of Truth](docs/EXPERIENCE_LOG_AS_SOURCE_OF_TRUTH.md)** - Source-of-truth model and builder (NEW)
462+
- **[Tailor from URL - Integration Guide](docs/TAILOR_FROM_URL_INTEGRATION.md)** - One-command URL → tailored HTML/DOCX
421463

422464
## Test Suite
423465

424-
All 159 tests passing ✅
466+
All 421 tests passing ✅
425467

426468
```bash
427469
# Run all tests
@@ -441,7 +483,7 @@ python -m pytest tests/test_comprehensive_quality_suite.py -v
441483
This project uses GitHub Actions for continuous integration and deployment:
442484

443485
- **Automated Testing**: All tests run automatically on every push and pull request
444-
- **Multi-Python Support**: Tests run on Python 3.8, 3.9, 3.10, 3.11, and 3.12
486+
- **Multi-Python Support**: Tests run on Python 3.9, 3.10, 3.11, and 3.12
445487
- **Code Quality**: Automated linting with flake8, black, and isort
446488
- **Security Scanning**: Automated security checks with safety and bandit
447489
- **Coverage Reports**: Test coverage tracking with pytest-cov

0 commit comments

Comments
 (0)