Metadata-Version: 2.4
Name: careerstudiomax-transformer
Version: 1.0.0
Summary: Official Python SDK for the Transformer API — career-graph and career intelligence over raw text
Home-page: https://transformer.careerstudiomax.com
Author: CloudooAI Solution
Author-email: api@careerstudiomax.com
Project-URL: Documentation, https://transformer.careerstudiomax.com/docs
Project-URL: Source, https://github.com/owolat4real/career-studio
Project-URL: Bug Tracker, https://github.com/owolat4real/career-studio/issues
Keywords: career,ai,career-graph,job-matching,api,transformer
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

# Transformer API Python SDK

Official Python client for the [Transformer API](https://transformer.careerstudiomax.com) — career-graph extraction, job matching, and career intelligence over raw text, with real provenance on every derived fact.

## Install

```bash
pip install careerstudiomax-transformer
```

## Quickstart

```python
from transformer import TransformerClient

client = TransformerClient(api_key="csk_live_your_key_here")

result = client.extract("Led backend team at Acme, hired by a recruiter for a Senior Engineer role, $145k")
print(result["data"]["entities"])
```

## What you can do

| Method | Description |
|---|---|
| `client.extract(text)` | Extract career entities and relationships from raw text |
| `client.career_graph(text=...)` | Build a knowledge graph, with real provenance on every node/edge |
| `client.career_graph_diff(text_a=..., text_b=...)` | Structured diff between two career-graph snapshots over time |
| `client.job_match(job_description, candidate_text=...)` | Score a candidate against a job description |
| `client.job_match_delta(candidate_text_a=..., candidate_text_b=..., job_description_a=...)` | Why a match score moved between two calls |
| `client.talent_pool_search(target_skills)` | Search your own tracked candidates for a target skill set |
| `client.team_fit(team_members=..., candidate_skills=...)` | How a candidate complements an existing team |
| `client.embeddings(texts)` | Real embedding vectors |
| `client.org_chart_infer(postings)` | Infer likely reporting structure from job postings you provide |
| `client.trajectory_predict(candidate_text)` | Common next job titles for a role/seniority level |
| `client.negotiation_leverage(skills, target_role)` | Negotiation-leverage read plus a counter-offer script |
| `client.skills_freshness(skills)` | Per-skill current-vs-aging judgment |
| `client.attrition_risk(candidate_text=...)` | Observable tenure/role-change pattern signal (a weak heuristic, not a behavioral prediction) |
| `client.synthetic_profile(seed=42)` | Realistic-but-fake candidate profile for prototyping, no key required |
| `client.ontology()` | The published entity/relationship taxonomy, no key required |
| `client.chat(model, messages)` | Call an exact model by name |
| `client.chat_stream(on_event, model, messages)` | Same as `chat()`, streamed |
| `client.usage()` | Your key's real usage |

## Example: career graph + webhook tracking

```python
graph = client.career_graph(text=resume_text, candidate_id="cand-123")
print(graph["data"]["careerScore"])
```

## Webhooks (account access token, not an API key)

```python
hook = client.create_webhook(
    "https://your-app.example.com/hooks/transformer",
    access_token="your_account_access_token",
    candidate_id="cand-123",
)
print(hook["secret"])  # shown once
```

## Errors

```python
from transformer import TransformerClient, TransformerError

try:
    client.job_match("...", candidate_text="...")
except TransformerError as e:
    print(e.status, str(e))
```

## Context manager

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

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