Python SDK
A typed Python client for the Growth.Talent API, auto-generated from the OpenAPI 3.1 spec. Async + sync variants on every endpoint, attrs-dataclass models, ships with httpx. Python 3.9+.
Install
pip install growthtalent
# or: uv add growthtalent
# or: poetry add growthtalentQuickstart — public read
No API key needed for the public read endpoints (jobs, talent, companies).
from growthtalent import Client
from growthtalent.api.default import get_jobs
with Client(base_url="https://www.growthtalent.org/api/v1") as client:
response = get_jobs.sync_detailed(
client=client,
q="head of growth",
market="usa",
limit=5,
)
print(response.parsed) # full response with data + pagination + metaAuthenticated — apply, post, profile
from growthtalent import AuthenticatedClient
from growthtalent.api.default import get_me, post_applications
from growthtalent.models import PostApplicationsBody
with AuthenticatedClient(
base_url="https://www.growthtalent.org/api/v1",
token="gt_live_...", # mint at /settings/api-keys
) as client:
me = get_me.sync(client=client)
print(f"Signed in as {me.candidate.name}")
result = post_applications.sync(
client=client,
body=PostApplicationsBody(
job_slug_or_id="head-of-growth-the-mobile-first-company",
message="Hi — built growth at Spendesk #4 to unicorn.",
via="magic",
),
)
print(result)Async
Every endpoint also exposes .asyncio and .asyncio_detailed variants for non-blocking use.
import asyncio
from growthtalent import Client
from growthtalent.api.default import get_jobs
async def main():
async with Client(base_url="https://www.growthtalent.org/api/v1") as client:
jobs = await get_jobs.asyncio(client=client, q="growth", limit=5)
print(jobs)
asyncio.run(main())What you get
- Every endpoint as a typed function (
get_jobs,patch_me,post_applications, …) with sync + async variants - Full request/response models as
attrsdataclasses (Candidate,JobShort,JobFull, …) - httpx under the hood — supports custom transports, retries, proxy, mTLS
- Works in Python 3.9+ including PyPy
- Strict type-checking via
py.typedmarker
Looking for the TypeScript version? See /docs/sdk. Same OpenAPI spec, regenerated for both languages — they stay in sync as the API evolves.
Regenerate from the latest spec
The client is auto-generated. To rebuild against the latest API:
uvx --from openapi-python-client openapi-python-client generate \
--url https://www.growthtalent.org/api/v1/openapi.json \
--output-path . \
--overwrite