cvgue 0.1.0
CVGue is a Python library for generating Curriculum Vitae (CV).
License: MIT
Requires Python: >=3.10
Keywords: cv curriculum-vitae pdf resume generator weasyprint

<div align="center">
  <img src="https://raw.githubusercontent.com/AryaWiratama26/cvgue/refs/heads/main/img/cvgue_logo_rounded.webp?token=GHSAT0AAAAAADPDYN6BQX4GFOT74AA6JUAK2KZJDYQ">
</div>


### Why the name CVGue?
CVGue is a portmanteau of "Curriculum Vitae" and "me" in Indonesian slang.


### Installation

```bash
pip install cvgue
```

### Available Templates

| Template | Description |
| --- | --- |
| ATS | ATS-friendly CV template (optimized for applicant tracking systems) |
| Creative | Creative CV template (modern & visually expressive) |


### Usage

#### Creative Template Usage
```python
from cvgue import create_cv


# Your Data
data = {
    "name": "your_name",
    "title": "your_title",
    "email": "your_email",
    "phone": "your_phone",
    "location": "your_location",
    "website": "your_website",
    "linkedin": "your_linkedin",
    "photo": "path_to_your_photo",
    
    "summary": "your_summary",
    
    "education": [
        {
            "degree": "your_degree",
            "institution": "your_institution",
            "period": "your_period",
            "location": "your_location",
            "gpa": "your_gpa"
        },
        {
            "degree": "your_degree",
            "institution": "your_institution",
            "period": "your_period",
            "location": "your_location",
            "gpa": "your_gpa"
        }
    ],
    
    "experience": [
        {
            "role": "your_role",
            "company": "your_company",
            "location": "your_location",
            "period": "your_period",
            "points": [
                "your_points",
                "your_points",
                "your_points",
                "your_points"
            ]
        },
        {
            "role": "your_role",
            "company": "your_company",
            "location": "your_location",
            "period": "your_period",
            "points": [
                "your_points",
                "your_points"
            ]
        },
        {
            "role": "your_role",
            "company": "your_company",
            "location": "your_location",
            "period": "your_period",
            "points": [
                "your_points"
            ]
        }
    ],
    
    "skills": {
        "hard": [
            "your_skills",
            "your_skills",
            "your_skills"
        ],
        "soft": [
            "your_skills",
            "your_skills",
            "your_skills"
        ]
    },
    
    "certifications": [
        "your_certifications",
        "your_certifications",
        "your_certifications"
    ],
    
    "languages": [
        "your_languages",
        "your_languages"
    ],
    
    "references": [
        {
            "name": "reference_name",
            "company": "reference_company",
            "position": "reference_position",
            "phone": "reference_phone",
            "email": "reference_email"
        },
        {
            "name": "reference_name",
            "company": "reference_company",
            "position": "reference_position",
            "phone": "reference_phone",
            "email": "reference_email"
        }
    ]
}

# Generate creative CV
create_cv(data, template_type="creative", output_path="cv_yourname_creative.pdf")

```

#### ATS Template Usage

```python
from cvgue import create_cv

# Your Data

data = {

    "name": "your_name",
    "location": "your_location",
    "phone": "your_phone",
    "email": "your_email",
    "linkedin": "your_linkedin",
    "website": "your_website",

    "summary": "your_summary",

    "education": [
        {
            "institution": "your_institution",
            "degree": "your_degree",
            "gpa": "your_gpa",
            "period": "your_period"
        }
    ],

    "experience": [
        {
            "role": "your_role",
            "company": "your_company",
            "period": "your_period",
            "points": [
                "your_points",
                "your_points"
            ]
        }
    ],

    "organizations": [
        {
            "role": "your_role",
            "organization": "your_organization",
            "period": "your_period",
            "points": [
                "your_points",
                "your_points"
            ]
        }
    ],

    "projects": [
        {
            "title": "your_project_title",
            "stack": "your_stack",
            "date": "your_date",
            "points": [
                "your_points",
                "your_points"
            ]
        },
        
    ],

    "skills": {
        "hard": ["your_skills"],
        "soft": ["your_skills"]
    },

    "certifications": [
        "your_certifications",
        "your_certifications",
        "your_certifications"
    ],

    "languages": [
        "your_language",
        "your_language"
    ]
}

# Generate ATS CV
create_cv(data, template_type="ats", output_path="cv_yourname_ats.pdf")
```

### Example Output

<div align="center">

| ATS Template | Creative Template |
|:---:|:---:|
| [Example ATS Template](https://github.com/AryaWiratama26/cvgue/blob/main/example/cv_budisantoso.pdf) | [Example Creative Template](https://github.com/AryaWiratama26/cvgue/blob/main/example/cv_putri_creative.pdf) |
| <img src="https://raw.githubusercontent.com/AryaWiratama26/cvgue/refs/heads/main/img/ats-example-cvgue.png?token=GHSAT0AAAAAADPDYN6A5V6IU7AOC4YME37G2KZJEIQ" alt="ATS CV Example" width="350px"> | <img src="https://raw.githubusercontent.com/AryaWiratama26/cvgue/refs/heads/main/img/creative-example-cvgue.png?token=GHSAT0AAAAAADPDYN6ADBVFS7NCIRDMMIN42KZJE4Q" alt="Creative CV Example" width="350px"> |
| *Clean & ATS-friendly CV optimized for applicant tracking systems* | *Modern & visually expressive CV with sidebar layout* |

</div>


### Contributing

Feel free to submit a pull request or open an issue if you find any bugs or have suggestions for new features.

### License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.