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: PENDINGSTARTEDSUCCESS | FAILURE

Dashboard

GET /api/dashboard/
Authorization: Bearer <token>

Returns summary statistics and recent activity feed.