Download OpenAPI specification:
An API for a person's resume-shaped data — profile, work experience, education, skills, certifications, hobbies, and goals — served back as JSON or Markdown.
Every route is scoped to the caller's own identity: there is no person
ID anywhere in a URL or request body. The caller's Clerk user is derived
from the verified JWT on every request, so /me/... always means
"the signed-in user," never anyone else's data.
Authenticate with a Clerk session token, issued against the resume-api
JWT template (audience https://api.peteshepley.com), sent as
Authorization: Bearer <token>.
{- "name": "string",
- "headline": "string",
- "summary": "string",
- "location": "string",
- "email": "string",
- "links": {
- "property1": "string",
- "property2": "string"
}, - "goals_summary": "string",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Upsert — always succeeds, no 404.
| name required | string |
| headline | string or null |
| summary | string or null |
| location | string or null |
string or null | |
object e.g. | |
| goals_summary | string or null |
{- "name": "string",
- "headline": "string",
- "summary": "string",
- "location": "string",
- "email": "string",
- "links": {
- "property1": "string",
- "property2": "string"
}, - "goals_summary": "string"
}{- "name": "string",
- "headline": "string",
- "summary": "string",
- "location": "string",
- "email": "string",
- "links": {
- "property1": "string",
- "property2": "string"
}, - "goals_summary": "string",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| organization required | string |
| title required | string |
| location | string or null |
| employment_type | string (EmploymentType) Enum: "full-time" "part-time" "contract" "internship" "self-employed" |
| start_date required | string <date> |
| end_date | string or null <date> Omit/null for the current role. |
| responsibilities | Array of strings |
| accomplishments | Array of strings |
{- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
]
}{- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| organization required | string |
| title required | string |
| location | string or null |
| employment_type | string (EmploymentType) Enum: "full-time" "part-time" "contract" "internship" "self-employed" |
| start_date required | string <date> |
| end_date | string or null <date> Omit/null for the current role. |
| responsibilities | Array of strings |
| accomplishments | Array of strings |
{- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
]
}{- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| institution required | string |
| degree required | string |
| field_of_study | string or null |
| location | string or null |
| start_date required | string <date> |
| end_date | string or null <date> |
| gpa | string or null |
| honors | string or null |
| activities | string or null |
{- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string"
}{- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| institution required | string |
| degree required | string |
| field_of_study | string or null |
| location | string or null |
| start_date required | string <date> |
| end_date | string or null <date> |
| gpa | string or null |
| honors | string or null |
| activities | string or null |
{- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string"
}{- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| name required | string |
| category required | string (SkillCategory) Enum: "language" "framework" "tool" "soft-skill" |
| proficiency | string (Proficiency) Enum: "beginner" "intermediate" "advanced" "expert" |
| years_experience | number or null |
{- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0
}{- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| name required | string |
| category required | string (SkillCategory) Enum: "language" "framework" "tool" "soft-skill" |
| proficiency | string (Proficiency) Enum: "beginner" "intermediate" "advanced" "expert" |
| years_experience | number or null |
{- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0
}{- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| name required | string |
| issuing_organization required | string |
| issue_date required | string <date> |
| expiration_date | string or null <date> |
| credential_id | string or null |
| credential_url | string or null |
| type | string (CertificationType) Enum: "professional" "personal" |
{- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional"
}{- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| name required | string |
| issuing_organization required | string |
| issue_date required | string <date> |
| expiration_date | string or null <date> |
| credential_id | string or null |
| credential_url | string or null |
| type | string (CertificationType) Enum: "professional" "personal" |
{- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional"
}{- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| name required | string |
| description | string or null |
{- "name": "string",
- "description": "string"
}{- "name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| name required | string |
| description | string or null |
{- "name": "string",
- "description": "string"
}{- "name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}{- "items": [
- {
- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| description required | string |
| category required | string (GoalCategory) Enum: "career" "personal" "learning" |
| target_date | string or null <date> |
| status | string (GoalStatus) Enum: "active" "achieved" "abandoned" |
{- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active"
}{- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
{- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}| id required | string <uuid> The entry's |
| description required | string |
| category required | string (GoalCategory) Enum: "career" "personal" "learning" |
| target_date | string or null <date> |
| status | string (GoalStatus) Enum: "active" "achieved" "abandoned" |
{- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active"
}{- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}Assembles the profile plus all six collections in a single query. format=markdown returns a rendered Markdown resume instead of JSON.
| format | string Default: "json" Enum: "json" "markdown" |
{- "profile": {
- "name": "string",
- "headline": "string",
- "summary": "string",
- "location": "string",
- "email": "string",
- "links": {
- "property1": "string",
- "property2": "string"
}, - "goals_summary": "string",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}, - "experience": [
- {
- "organization": "string",
- "title": "string",
- "location": "string",
- "employment_type": "full-time",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "responsibilities": [
- "string"
], - "accomplishments": [
- "string"
], - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "education": [
- {
- "institution": "string",
- "degree": "string",
- "field_of_study": "string",
- "location": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "gpa": "string",
- "honors": "string",
- "activities": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "skills": [
- {
- "name": "string",
- "category": "language",
- "proficiency": "beginner",
- "years_experience": 0,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "certifications": [
- {
- "name": "string",
- "issuing_organization": "string",
- "issue_date": "2019-08-24",
- "expiration_date": "2019-08-24",
- "credential_id": "string",
- "credential_url": "string",
- "type": "professional",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "hobbies": [
- {
- "name": "string",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "goals": [
- {
- "description": "string",
- "category": "career",
- "target_date": "2019-08-24",
- "status": "active",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "entity_type": "string",
- "pk": "string",
- "sk": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}