{
  "opencollection": "1.0.0",
  "info": {
    "name": "Compresr Platform Admin Careers API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "Careers",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Admin List Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              },
              {
                "name": "department",
                "value": "",
                "type": "query",
                "description": "Filter by department"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search in title"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all jobs (includes drafts and closed). Requires Support or Admin."
        },
        {
          "info": {
            "name": "Admin Create Job",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/jobs/admin",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new job posting. Requires Admin."
        },
        {
          "info": {
            "name": "Admin List Applications",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "query",
                "description": "Filter by job"
              },
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by status"
              },
              {
                "name": "search",
                "value": "",
                "type": "query",
                "description": "Search in name or email"
              },
              {
                "name": "date_from",
                "value": "",
                "type": "query",
                "description": "ISO datetime lower bound"
              },
              {
                "name": "date_to",
                "value": "",
                "type": "query",
                "description": "ISO datetime upper bound"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List job applications with filters. Requires Support or Admin."
        },
        {
          "info": {
            "name": "Admin Download Cv",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications/:application_id/cv/download",
            "params": [
              {
                "name": "application_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Stream the CV file for admin download. Requires Support or Admin."
        },
        {
          "info": {
            "name": "Admin Cv Signed Url",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications/:application_id/cv/signed-url",
            "params": [
              {
                "name": "application_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "ttl_seconds",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Return a short-lived Storage signed URL — for inline PDF preview."
        },
        {
          "info": {
            "name": "Admin Purge Applications",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/jobs/admin/applications/purge",
            "params": [
              {
                "name": "retention_days",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete rejected/withdrawn applications older than `retention_days` days.\n\nCV files in Storage are removed first so no orphans are left behind.\nRate-limited to admin (not support) since it's destructive."
        },
        {
          "info": {
            "name": "Admin Export Applications Xlsx",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications/export/xlsx",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query"
              },
              {
                "name": "date_from",
                "value": "",
                "type": "query"
              },
              {
                "name": "date_to",
                "value": "",
                "type": "query"
              },
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "Comma-separated application UUIDs"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Download an XLSX workbook — one sheet per job."
        },
        {
          "info": {
            "name": "Admin Export Applications Zip",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications/export/zip",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "query"
              },
              {
                "name": "status",
                "value": "",
                "type": "query"
              },
              {
                "name": "search",
                "value": "",
                "type": "query"
              },
              {
                "name": "date_from",
                "value": "",
                "type": "query"
              },
              {
                "name": "date_to",
                "value": "",
                "type": "query"
              },
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "Comma-separated application UUIDs"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Download a ZIP: applications.xlsx + cvs/<candidate>_<id>.<ext>."
        },
        {
          "info": {
            "name": "Admin Get Application",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/applications/:application_id",
            "params": [
              {
                "name": "application_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a single application. Requires Support or Admin."
        },
        {
          "info": {
            "name": "Admin Update Application",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "{{baseUrl}}/api/jobs/admin/applications/:application_id",
            "params": [
              {
                "name": "application_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update application status or admin notes. Requires Admin."
        },
        {
          "info": {
            "name": "Admin Delete Application",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/jobs/admin/applications/:application_id",
            "params": [
              {
                "name": "application_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete an application (also removes its CV from Storage). Requires Admin."
        },
        {
          "info": {
            "name": "Admin Get Job",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/admin/:job_id",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a job by id (any status). Requires Support or Admin."
        },
        {
          "info": {
            "name": "Admin Update Job",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "{{baseUrl}}/api/jobs/admin/:job_id",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a job (partial). Requires Admin."
        },
        {
          "info": {
            "name": "Admin Delete Job",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/jobs/admin/:job_id",
            "params": [
              {
                "name": "job_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Delete a job (cascades to applications and their CVs). Requires Admin."
        },
        {
          "info": {
            "name": "List Public Jobs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs"
          },
          "docs": "List published jobs. Public — no authentication required."
        },
        {
          "info": {
            "name": "Get Public Job",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/jobs/:slug",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get a single published job by slug. Public — no authentication required."
        },
        {
          "info": {
            "name": "Apply To Job",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/jobs/:slug/apply",
            "params": [
              {
                "name": "slug",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "multipart-form",
              "data": []
            }
          },
          "docs": "Public application endpoint. Multipart form: fields + CV file.\n\n- Rate-limited per IP: 5/hour + 20/day (prod only, no auth required)\n- CV must be a PDF, max 10 MB\n- Duplicate applications (same email + non-withdrawn) are rejected"
        }
      ]
    }
  ],
  "bundled": true
}