Metadata-Version: 2.2
Name: cv-creator-ats
Version: 1.0.0
Summary: Generate professionally designed, ATS-optimized PDF CVs
Home-page: https://github.com/yourusername/cv-creator
Author: Alejandro Cuartas
License: MIT
Project-URL: Homepage, https://github.com/yourusername/cv-creator
Project-URL: Repository, https://github.com/yourusername/cv-creator
Keywords: cv,resume,pdf,ats,job-search,career
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Office/Business
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: reportlab>=4.0.0
Dynamic: home-page
Dynamic: requires-python

# CV Creator

Generate professionally designed, ATS-optimized PDF CVs from structured data.

## Features

- **ATS-Optimized**: Single-column layout that applicant tracking systems can parse
- **Professional Design**: F-pattern eye-tracking layout with proper typographic hierarchy
- **Customizable**: Choose accent colors and page size (Letter/A4)
- **Pure Python**: No system dependencies, works everywhere

## Installation

```bash
pip install cv-creator-ats
```

## Quick Start

```python
from cv_creator import CVData, ContactInfo, ExperienceEntry, generate_cv

# Create contact information
contact = ContactInfo(
    name="Jane Doe",
    email="jane.doe@email.com",
    phone="+1-555-0123",
    city="San Francisco, CA",
    linkedin="linkedin.com/in/janedoe",
    portfolio="janedoe.com"
)

# Create experience entries
experience = [
    ExperienceEntry(
        company="Tech Corp",
        title="Senior Software Engineer",
        start_date="Jan 2020",
        end_date="Present",
        bullets=[
            "Led team of 5 engineers building microservices architecture",
            "Reduced API latency by 40% through optimization",
            "Mentored 3 junior developers"
        ]
    )
]

# Build CV data
cv_data = CVData(
    contact=contact,
    summary="Experienced software engineer with 5+ years building scalable systems",
    experience=experience,
    skills=["Python", "JavaScript", "AWS", "Docker", "React"],
    accent_color="#1a2e5a",  # Navy blue
    page_size="letter"        # or "a4"
)

# Generate PDF
pdf_path = generate_cv(cv_data, output_dir="/tmp")
print(f"CV generated: {pdf_path}")
```

## Usage with Claude Web

Claude can install this package and generate CVs directly:

```python
# Claude will do this automatically:
pip install cv-creator-ats

from cv_creator import CVData, ContactInfo, generate_cv

# ... collect CV data from conversation ...

pdf_path = generate_cv(cv_data, output_dir="/mnt/user-data/outputs")
present_files(pdf_path)  # Shows PDF as artifact
```

## Data Models

### CVData

Main container for all CV information.

**Fields:**
- `contact` (ContactInfo, required)
- `summary` (str, optional)
- `experience` (list[ExperienceEntry], optional)
- `skills` (list[str], optional)
- `education` (list[EducationEntry], optional)
- `certifications` (list[CertificationEntry], optional)
- `projects` (list[ProjectEntry], optional)
- `languages` (list[LanguageEntry], optional)
- `accent_color` (str, default: "#1a2e5a") - Hex color code
- `page_size` (str, default: "letter") - "letter" or "a4"

### ContactInfo

**Fields:**
- `name` (str, required)
- `email` (str, required)
- `phone` (str, required)
- `city` (str, required)
- `linkedin` (str, optional)
- `portfolio` (str, optional)

### ExperienceEntry

**Fields:**
- `company` (str, required)
- `title` (str, required)
- `start_date` (str, required) - e.g., "Jan 2020"
- `end_date` (str, required) - e.g., "Present"
- `bullets` (list[str], max 5)

### EducationEntry

**Fields:**
- `institution` (str, required)
- `degree` (str, required)
- `field` (str, required)
- `end_date` (str, required)
- `gpa` (str, optional)

### Other Models

See [models.py](cv_creator/models.py) for complete model definitions:
- `LanguageEntry`
- `CertificationEntry`
- `ProjectEntry`

## Design Principles

The CV follows research-backed design principles:

1. **F-Pattern Layout**: Important information in the top-left "hot zone"
2. **Single Column**: ATS-friendly, no tables or columns that confuse parsers
3. **Typographic Hierarchy**: Clear visual distinction between sections
4. **Professional Fonts**: Inter (if available) with Helvetica fallback
5. **Optimal Margins**: 0.75 inch margins for readability

## Font Support

The package works with system fonts (Helvetica) by default. For the best appearance, you can optionally place Inter font files in the `assets/` directory:

- `Inter-Regular.ttf`
- `Inter-Bold.ttf`

Download from: https://fonts.google.com/specimen/Inter

## Requirements

- Python >= 3.10
- reportlab >= 4.0.0

## License

MIT License - see LICENSE file for details

## Author

Alejandro Cuartas

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
