API Reference
REST API reference for the WXRK platform.
The WXRK API is a REST API built on Django REST Framework. Interactive documentation is available at:
- Swagger UI —
/api/docs/swagger/ - ReDoc —
/api/docs/redoc/ - OpenAPI schema —
/api/schema/
Authentication
The API uses JWT Bearer tokens.
Obtain Token
POST /api/token/
Content-Type: application/json
{
"username": "your@email.com",
"password": "your-password"
}
Response:
{
"access": "<jwt-access-token>",
"refresh": "<jwt-refresh-token>"
}
Refresh Token
POST /api/token/refresh/
Content-Type: application/json
{
"refresh": "<jwt-refresh-token>"
}
Using the Token
Include the access token in all authenticated requests:
Authorization: Bearer <jwt-access-token>
Profile Management
Get Profile
GET /api/profile/
Authorization: Bearer <token>
Update Profile
PATCH /api/profile/
Authorization: Bearer <token>
Content-Type: application/json
{
"full_name": "Jane Doe",
"location": "Zurich, CH",
"linkedin_url": "https://linkedin.com/in/janedoe"
}
MBTI Profile
GET /api/profile/mbti/
POST /api/profile/mbti/
PATCH /api/profile/mbti/
Technical Review
List Experiences
GET /api/technical-review/experiences/
Authorization: Bearer <token>
Create Experience
POST /api/technical-review/experiences/
Authorization: Bearer <token>
Content-Type: application/json
{
"company_name": "Acme Corp",
"job_title": "Senior Backend Engineer",
"start_date": "2022-01",
"end_date": "2024-06"
}
Add Project to Experience
POST /api/technical-review/experiences/{id}/projects/
Authorization: Bearer <token>
Content-Type: application/json
{
"name": "Cache Optimization",
"description": "Reduced API latency by 40%",
"impact_metric": "40% latency reduction"
}
Applications
List Applications
GET /api/applications/
Authorization: Bearer <token>
Query parameters:
status— Filter by status (draft,generated,submitted,interview,offer,rejected)ordering— Sort by field (-created_at,company_name)
Create Application
POST /api/applications/
Authorization: Bearer <token>
Content-Type: application/json
{
"job_description": "We are looking for a backend engineer...",
"job_url": "https://company.com/jobs/123",
"personal_context": "I'm excited about this role because..."
}
Update Application Status
PATCH /api/applications/{id}/
Authorization: Bearer <token>
Content-Type: application/json
{
"status": "submitted"
}
AI Generation
Generate CV
POST /api/applications/{id}/generate-cv/
Authorization: Bearer <token>
Response:
{
"task_id": "abc-123",
"status": "PENDING"
}
Generate Cover Letter
POST /api/applications/{id}/generate-cover-letter/
Authorization: Bearer <token>
Requires MBTI profile to be set. Returns a task ID for polling.
Generate All
POST /api/applications/{id}/generate-all/
Authorization: Bearer <token>
Poll Task Status
GET /api/tasks/{task_id}/
Authorization: Bearer <token>
Response:
{
"task_id": "abc-123",
"status": "SUCCESS",
"result": {
"cv_artifact_id": "xyz-456"
}
}
Status values: PENDING → STARTED → SUCCESS | FAILURE
Dashboard
GET /api/dashboard/
Authorization: Bearer <token>
Returns summary statistics and recent activity feed.