Metadata-Version: 2.4
Name: careerlm
Version: 1.0.0
Summary: Official Python SDK for the CareerLM API — world's first career intelligence API
Home-page: https://careerstudiomax.com/api/docs
Author: Career Studio
Author-email: api@careerstudiomax.com
Project-URL: Documentation, https://careerstudiomax.com/api/docs
Project-URL: Source, https://github.com/owolat4real/career-studio
Project-URL: Bug Tracker, https://github.com/owolat4real/career-studio/issues
Keywords: career,ai,cv,resume,salary,api,careerlm
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.24.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: project-url
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# CareerLM Python SDK

Official Python client for the [CareerLM API](https://careerstudiomax.com/api/docs) â€” world's first career intelligence API.

## Install

```bash
pip install careerlm
```

## Quickstart

```python
from careerlm import CareerLM

client = CareerLM(api_key="csk_live_v1_your_key_here")

score = client.cv.score(cv_text, job_description)
print(score["ats_score"])   # 87
print(score["grade"])       # "B+"
```

## What you can do

| Method | Description |
|---|---|
| `client.cv.score(cv_text, job_description)` | Score a CV against a job description |
| `client.cv.optimise(cv_text, job_description)` | Rewrite and optimise a CV for a target role |
| `client.salary.benchmark(role, country)` | Salary benchmarking across 196 countries, PPP-adjusted |
| `client.cover_letter.generate(cv_text, job_description, mode=1)` | Generate a cover letter in one of 15 professional modes |
| `client.job.match(candidate, job)` | Score how well a candidate matches a job |
| `client.interview.questions(role)` | Tailored interview questions with model answers |
| `client.skills.gap(current_skills, target_role)` | Skill-gap analysis with learning ROI and timeline |
| `client.chat.completions.create(messages)` | OpenAI-compatible career chat completions |
| `client.context.save(profile)` / `.get(id)` / `.delete(id)` | Persistent career context across calls |

## Example: salary benchmark

```python
salary = client.salary.benchmark("Data Engineer", "NG", city="Lagos", currency="NGN")
print(salary["salary_range"]["median"])   # 6800000
```

## Example: cover letter

```python
letter = client.cover_letter.generate(
    cv_text, job_description,
    mode=5, company_name="Paystack", tone="confident",
)
print(letter["content"])
```

## Errors

```python
from careerlm import CareerLM, CareerLMError

try:
    client.cv.score(cv_text, job_description)
except CareerLMError as e:
    print(e.code, e.status, str(e))
```

## Context manager

```python
with CareerLM(api_key="...") as client:
    ...
```

Full endpoint reference: [careerstudiomax.com/api/docs](https://careerstudiomax.com/api/docs)
