A structured career profile that AI tools can query. Local-first vault with MCP server.
Project description
Traitprint
A structured career profile that AI tools can query.
Your resume is a lossy snapshot. Your Traitprint is a live, queryable record of your skills, experience, stories, and philosophy — kept on your laptop, shared on your terms.
Traitprint ships as two products:
- Traitprint Local (
pip install traitprint) — a local-first vault and MCP server. Zero accounts, zero network calls, MIT-licensed. - Traitprint Cloud (
pip install 'traitprint[cloud]') — opt-in cloud sync on top of Local: a public profile attraitprint.com/profile/you, a hosted MCP endpoint, and cross-device sync.
Traitprint Local
pip install traitprint
traitprint init
traitprint mcp-serve
Point Claude Desktop (or any MCP client) at traitprint mcp-serve and any AI
assistant you use can answer questions about your career: which projects used
Postgres, what your management philosophy is, the story behind a job change.
No account. No cloud. No vendor lock-in. Your vault is a file on your machine.
A fresh pip install traitprint ships with no networking dependency —
httpx is not even installed. The base CLI cannot make a network request.
Traitprint Cloud (opt-in)
When you want a public profile, job matching, or a chat-ready twin that recruiters can talk to, install the cloud extras:
pip install 'traitprint[cloud]'
traitprint login
traitprint push
…and you're live at traitprint.com/profile/you. Without the [cloud]
extras, traitprint login / logout / push / pull print:
Error: Cloud sync requires: pip install traitprint[cloud]
Who it's for
Traitprint is useful if you want your career data to be structured, portable, and queryable — not locked inside a PDF or a recruiter platform. Three concrete examples:
🎯 The job seeker
"I'm tired of rewriting my resume for every application, and I want recruiters who use AI tools to actually find me."
Build your vault once with traitprint init and vault add-*. Run
traitprint push to publish a profile at traitprint.com/profile/you.
Recruiters' agents query your structured profile directly — skills, dates,
stories — instead of guessing from keyword-matched PDFs.
🧑💻 The developer using Claude Desktop / Cursor / any MCP client
"I want my AI assistant to know my actual stack, projects, and decisions — not generic advice."
Run traitprint mcp-serve and add it to your MCP client config. Your assistant
can now call search_skills, find_story, and get_philosophy to ground its
suggestions in your real history. Ask "draft a cover letter for this role" and
it pulls from the vault, not a hallucinated resume.
🧭 The career coach
"I work with a dozen clients and I need their career data structured the same way so I can compare, advise, and produce portfolios."
Use traitprint import-resume (BYOK LLM) to pull each client's resume into
a structured vault. Edit, version, and export polished portfolios. Same
schema for every client means coaching workflows compose instead of starting
from scratch each time.
What's in the box
- Local vault — versioned, SQL-queryable storage on your laptop.
- MCP server (stdio) —
get_profile_summary,search_skills,find_story,get_philosophy. - CLI —
traitprint init,traitprint vault add-skill,add-experience,add-story,add-philosophy,add-education,remove,history,diff,rollback,export,import-resume. - Resume import with BYOK LLM (Anthropic, OpenAI, Ollama, OpenRouter) —
install with
pip install 'traitprint[import]'. - Optional cloud sync —
login,logout,push,pull. Install withpip install 'traitprint[cloud]'.
Local vs Cloud
Traitprint is local-first. Everything below runs on your laptop with no account, no network calls, and no paywall.
| Capability | Free forever, no account | Requires traitprint.com account |
|---|---|---|
Create + edit your vault (init, vault add-*, remove) |
✅ | — |
| Version history, diff, rollback | ✅ | — |
| MCP server for Claude Desktop / any MCP client (stdio) | ✅ | — |
| Resume import via BYOK LLM (Anthropic, OpenAI, Ollama, OpenRouter) | ✅ | — |
| SQL-queryable Dolt-backed storage | ✅ | — |
| MIT-licensed source, fork and self-host | ✅ | — |
Public profile at traitprint.com/profile/you |
— | ✅ |
| Hosted MCP endpoint reachable by recruiter agents | — | ✅ |
| Job matching against a shared job index | — | ✅ |
| Digital-twin chat | — | ✅ |
| Cross-device sync | — | ✅ |
A fresh install never talks to traitprint.com. Cloud features are opt-in via
traitprint login and traitprint push.
Full details and migration guide: docs/why-local.md
Privacy commitment (what leaves your machine on push, what we store,
what we don't do, how to delete everything): docs/privacy.md
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file traitprint-0.6.0.tar.gz.
File metadata
- Download URL: traitprint-0.6.0.tar.gz
- Upload date:
- Size: 78.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59cac1d9513e085b13c2e828143030e27a1980008bb21a0425e19d155ec8f862
|
|
| MD5 |
ce3052cf81c3c4b75e6696e95c05d8c4
|
|
| BLAKE2b-256 |
10f312d1679073d02552d612532f7241e4bd1bf11d5df64856b9cb3243a3ec3f
|
Provenance
The following attestation bundles were made for traitprint-0.6.0.tar.gz:
Publisher:
publish.yml on DataViking-Tech/traitprint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
traitprint-0.6.0.tar.gz -
Subject digest:
59cac1d9513e085b13c2e828143030e27a1980008bb21a0425e19d155ec8f862 - Sigstore transparency entry: 1345700963
- Sigstore integration time:
-
Permalink:
DataViking-Tech/traitprint@58e5be8ea7436b64d3d2aaf46d0232c5b1c142a0 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/DataViking-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@58e5be8ea7436b64d3d2aaf46d0232c5b1c142a0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file traitprint-0.6.0-py3-none-any.whl.
File metadata
- Download URL: traitprint-0.6.0-py3-none-any.whl
- Upload date:
- Size: 55.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76c9f65a788258ed4e89b5f22f7f1cbfbba3c2fd598c07dab58ee41cdd934ce1
|
|
| MD5 |
b6d7e757f78e97f18fad356e450d2815
|
|
| BLAKE2b-256 |
7b08fc4a0eb40a62f4bc8863f2c8332b1f63bdeedaf1c36a84fc8cc38a4d17d0
|
Provenance
The following attestation bundles were made for traitprint-0.6.0-py3-none-any.whl:
Publisher:
publish.yml on DataViking-Tech/traitprint
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
traitprint-0.6.0-py3-none-any.whl -
Subject digest:
76c9f65a788258ed4e89b5f22f7f1cbfbba3c2fd598c07dab58ee41cdd934ce1 - Sigstore transparency entry: 1345701243
- Sigstore integration time:
-
Permalink:
DataViking-Tech/traitprint@58e5be8ea7436b64d3d2aaf46d0232c5b1c142a0 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/DataViking-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@58e5be8ea7436b64d3d2aaf46d0232c5b1c142a0 -
Trigger Event:
push
-
Statement type: