> For the complete documentation index, see [llms.txt](https://docs.mulearn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mulearn.org/api-reference/company.md).

# Company

## GET /api/v1/dashboard/company/{company\_id}/

> Get details of a specific company by ID.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyDetail":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_user_name":{"type":"string","readOnly":true},"company_user_email":{"type":"string","readOnly":true},"district_name":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"slug":{"type":"string","maxLength":100},"status":{"type":"string","maxLength":30},"location":{"type":"string","nullable":true,"maxLength":150},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"verification_document_url":{"type":"string","nullable":true},"verification_requested_at":{"type":"string","format":"date-time","nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true},"verified_by":{"type":"string","nullable":true,"maxLength":36},"rejection_reason":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"deleted_at":{"type":"string","format":"date-time","nullable":true},"updated_by":{"type":"string","nullable":true,"maxLength":36},"deleted_by":{"type":"string","nullable":true,"maxLength":36},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true},"company_user":{"type":"string"},"district":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["company_user","company_user_email","company_user_name","created_at","description","district_name","name","slug","updated_at"]}}},"paths":{"/api/v1/dashboard/company/{company_id}/":{"get":{"operationId":"dashboard_company_retrieve","description":"Get details of a specific company by ID.","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyDetail"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/analytics/gigs/

> Retrieve analytics data for company gigs (creator or approved company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyGigAnalyticsResponse":{"type":"object","properties":{"total_gigs_posted":{"type":"integer"},"active_gigs":{"type":"integer"},"closed_gigs":{"type":"integer"},"average_hourly_rate":{"type":"number","format":"double"},"application_funnel":{"type":"object","additionalProperties":{}},"conversion_rate":{"type":"string"}},"required":["active_gigs","application_funnel","average_hourly_rate","closed_gigs","conversion_rate","total_gigs_posted"]}}},"paths":{"/api/v1/dashboard/company/analytics/gigs/":{"get":{"operationId":"dashboard_company_analytics_gigs_retrieve","description":"Retrieve analytics data for company gigs (creator or approved company mentor).","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyGigAnalyticsResponse"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/company/applications/{app\_id}/resubmit/

> Resubmit a rejected job application.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedUserApplicationResubmit":{"type":"object","properties":{"resume_link":{"type":"string","nullable":true},"cover_letter":{"type":"string","nullable":true}}}}},"paths":{"/api/v1/dashboard/company/applications/{app_id}/resubmit/":{"patch":{"operationId":"dashboard_company_applications_resubmit_partial_update","description":"Resubmit a rejected job application.","parameters":[{"in":"path","name":"app_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedUserApplicationResubmit"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedUserApplicationResubmit"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedUserApplicationResubmit"}}}},"responses":{"200":{"description":"No response body"}}}}}}
```

## PATCH /api/v1/dashboard/company/applications/{app\_id}/status/

> Update the status of a job application (creator or company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedApplicationTracking":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string","readOnly":true},"applicant_name":{"type":"string","readOnly":true},"applicant_email":{"type":"string","readOnly":true},"resume_link":{"type":"string","readOnly":true,"nullable":true},"cover_letter":{"type":"string","readOnly":true,"nullable":true},"status":{"type":"string","maxLength":20},"rejection_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","format":"date-time","readOnly":true}}},"ApplicationTracking":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string","readOnly":true},"applicant_name":{"type":"string","readOnly":true},"applicant_email":{"type":"string","readOnly":true},"resume_link":{"type":"string","readOnly":true,"nullable":true},"cover_letter":{"type":"string","readOnly":true,"nullable":true},"status":{"type":"string","maxLength":20},"rejection_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","format":"date-time","readOnly":true}},"required":["applicant_email","applicant_name","applied_at","cover_letter","id","job","resume_link"]}}},"paths":{"/api/v1/dashboard/company/applications/{app_id}/status/":{"patch":{"operationId":"dashboard_company_applications_status_partial_update","description":"Update the status of a job application (creator or company mentor).","parameters":[{"in":"path","name":"app_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedApplicationTracking"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedApplicationTracking"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedApplicationTracking"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/ApplicationTracking"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## DELETE /api/v1/dashboard/company/applications/{app\_id}/withdraw/

> Withdraw a submitted job application.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/applications/{app_id}/withdraw/":{"delete":{"operationId":"dashboard_company_applications_withdraw_destroy","description":"Withdraw a submitted job application.","parameters":[{"in":"path","name":"app_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"204":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/applications/me/

> List all jobs the user has applied to.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"UserAppliedJobs":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"job":{"allOf":[{"$ref":"#/components/schemas/JobList"}],"readOnly":true},"resume_link":{"type":"string","nullable":true},"cover_letter":{"type":"string","nullable":true},"status":{"type":"string","maxLength":20},"rejection_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","format":"date-time","readOnly":true}},"required":["applied_at","job"]},"JobList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_name":{"type":"string","readOnly":true},"company_logo":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["company_logo","company_name","created_at","job_type","rules","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/applications/me/":{"get":{"operationId":"dashboard_company_applications_me_list","description":"List all jobs the user has applied to.","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/UserAppliedJobs"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/home-summary/

> Retrieve dashboard summary statistics for the active company.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/home-summary/":{"get":{"operationId":"dashboard_company_home_summary_retrieve","description":"Retrieve dashboard summary statistics for the active company.","tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/jobs/

> List all jobs for the authenticated company (creator or company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_name":{"type":"string","readOnly":true},"company_logo":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["company_logo","company_name","created_at","job_type","rules","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/jobs/":{"get":{"operationId":"dashboard_company_jobs_list","description":"List all jobs for the authenticated company (creator or company mentor).","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/JobList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/jobs/

> Post a new job/gig. Jobs are always created with status='Draft' regardless of any status value sent in the request body. Use PATCH /jobs/{job\_id}/ to change the status to 'Active' (or any other value) after creation.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobCreate":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"}}},"required":["id","job_type","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/jobs/":{"post":{"operationId":"dashboard_company_jobs_create","description":"Post a new job/gig. Jobs are always created with status='Draft' regardless of any status value sent in the request body. Use PATCH /jobs/{job_id}/ to change the status to 'Active' (or any other value) after creation.","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/JobCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/JobCreate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/JobCreate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/jobs/{job\_id}/

> Retrieve details of a specific job.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_name":{"type":"string","readOnly":true},"company_logo":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["company_logo","company_name","created_at","job_type","rules","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/":{"get":{"operationId":"dashboard_company_jobs_retrieve","description":"Retrieve details of a specific job.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/JobList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## DELETE /api/v1/dashboard/company/jobs/{job\_id}/

> Delete a specific job.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/":{"delete":{"operationId":"dashboard_company_jobs_destroy","description":"Delete a specific job.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"204":{"description":"No response body"}}}}}}
```

## PATCH /api/v1/dashboard/company/jobs/{job\_id}/

> Update a specific job.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedJobUpdate":{"type":"object","properties":{"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"}}}},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]},"JobUpdate":{"type":"object","properties":{"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"}}},"required":["job_type","title"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/":{"patch":{"operationId":"dashboard_company_jobs_partial_update","description":"Update a specific job.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedJobUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedJobUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedJobUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/JobUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/jobs/{job\_id}/analytics/

> Fetches detailed view, application, and hired statistics for a specific job posting.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/analytics/":{"get":{"operationId":"dashboard_company_jobs_analytics_retrieve","description":"Fetches detailed view, application, and hired statistics for a specific job posting.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/jobs/{job\_id}/applications/

> List all applications for a specific job (creator or company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"ApplicationTracking":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string","readOnly":true},"applicant_name":{"type":"string","readOnly":true},"applicant_email":{"type":"string","readOnly":true},"resume_link":{"type":"string","readOnly":true,"nullable":true},"cover_letter":{"type":"string","readOnly":true,"nullable":true},"status":{"type":"string","maxLength":20},"rejection_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","format":"date-time","readOnly":true}},"required":["applicant_email","applicant_name","applied_at","cover_letter","id","job","resume_link"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/applications/":{"get":{"operationId":"dashboard_company_jobs_applications_list","description":"List all applications for a specific job (creator or company mentor).","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationTracking"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/jobs/{job\_id}/applications/

> Apply to a job.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobApplication":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string"},"resume_link":{"type":"string","nullable":true},"cover_letter":{"type":"string","nullable":true},"status":{"type":"string","readOnly":true}},"required":["id","job","status"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/applications/":{"post":{"operationId":"dashboard_company_jobs_applications_create","description":"Apply to a job.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobApplication"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/JobApplication"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/JobApplication"}}},"required":true},"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/jobs/{job\_id}/apply/

> List all applications for a specific job (creator or company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"ApplicationTracking":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string","readOnly":true},"applicant_name":{"type":"string","readOnly":true},"applicant_email":{"type":"string","readOnly":true},"resume_link":{"type":"string","readOnly":true,"nullable":true},"cover_letter":{"type":"string","readOnly":true,"nullable":true},"status":{"type":"string","maxLength":20},"rejection_reason":{"type":"string","nullable":true},"applied_at":{"type":"string","format":"date-time","readOnly":true}},"required":["applicant_email","applicant_name","applied_at","cover_letter","id","job","resume_link"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/apply/":{"get":{"operationId":"dashboard_company_jobs_apply_list","description":"List all applications for a specific job (creator or company mentor).","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/ApplicationTracking"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/jobs/{job\_id}/apply/

> Apply to a job.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobApplication":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"job":{"type":"string"},"resume_link":{"type":"string","nullable":true},"cover_letter":{"type":"string","nullable":true},"status":{"type":"string","readOnly":true}},"required":["id","job","status"]}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/apply/":{"post":{"operationId":"dashboard_company_jobs_apply_create","description":"Apply to a job.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobApplication"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/JobApplication"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/JobApplication"}}},"required":true},"responses":{"200":{"description":"No response body"}}}}}}
```

## POST /api/v1/dashboard/company/jobs/{job\_id}/view/

> Increment the view count for a specific job listing.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/jobs/{job_id}/view/":{"post":{"operationId":"dashboard_company_jobs_view_create","description":"Increment the view count for a specific job listing.","parameters":[{"in":"path","name":"job_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/jobs/all/

> Public endpoint to list all active jobs.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_name":{"type":"string","readOnly":true},"company_logo":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["company_logo","company_name","created_at","job_type","rules","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/jobs/all/":{"get":{"operationId":"dashboard_company_jobs_all_list","description":"Public endpoint to list all active jobs.","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/JobList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/list/

> List all companies with filtering.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"name":{"type":"string","maxLength":75},"slug":{"type":"string","maxLength":100},"status":{"type":"string","maxLength":30},"email":{"type":"string","nullable":true,"maxLength":100},"company_user_id":{"type":"string","readOnly":true},"company_user_name":{"type":"string","readOnly":true},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"company_size":{"type":"string","nullable":true,"maxLength":50},"location":{"type":"string","nullable":true,"maxLength":150},"district_name":{"type":"string","readOnly":true},"state_name":{"type":"string","readOnly":true},"country_name":{"type":"string","readOnly":true},"verification_requested_at":{"type":"string","format":"date-time","nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true}},"required":["company_user_id","company_user_name","country_name","district_name","name","slug","state_name"]}}},"paths":{"/api/v1/dashboard/company/list/":{"get":{"operationId":"dashboard_company_list_list","description":"List all companies with filtering.","parameters":[{"in":"query","name":"company_size","schema":{"type":"string"}},{"in":"query","name":"country_id","schema":{"type":"string","format":"uuid"},"description":"Filter by country UUID"},{"in":"query","name":"district_id","schema":{"type":"string","format":"uuid"},"description":"Filter by district UUID"},{"in":"query","name":"industry_sector","schema":{"type":"string"}},{"in":"query","name":"state_id","schema":{"type":"string","format":"uuid"},"description":"Filter by state UUID"},{"in":"query","name":"status","schema":{"type":"string"}}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/CompanyList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/mentor/list/

> List all Company Mentor nominations for the authenticated company.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyMentorList":{"type":"object","description":"Serializer for listing Company Mentor nominations.","properties":{"id":{"type":"string","maxLength":36},"user_id":{"type":"string","readOnly":true},"user_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"org_name":{"type":"string","readOnly":true},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"reason":{"type":"string","nullable":true,"maxLength":1000},"verification_note":{"type":"string","nullable":true,"maxLength":500},"verified_at":{"type":"string","format":"date-time","nullable":true}},"required":["org_name","user_email","user_id","user_name"]}}},"paths":{"/api/v1/dashboard/company/mentor/list/":{"get":{"operationId":"dashboard_company_mentor_list_list","description":"List all Company Mentor nominations for the authenticated company.","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/CompanyMentorList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/mentor/nominate/

> Nominate a platform user as a Company Mentor for your company. Provide the user's \*\*muid\*\* (e.g. \`john-doe\@mulearn\`). The user must already be a member of the company's organisation (i.e. they appear in \`UserOrganizationLink\` for this company). Only the verified company creator can nominate. The nomination enters PENDING state until an admin approves it.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyMentorNominate":{"type":"object","description":"Nominate an existing platform user as a Company Mentor for the company.\n\nThe nominated user is identified by their ``muid`` (e.g. john-doe@mulearn)\nand must already be linked to the company's Organisation record.","properties":{"muid":{"type":"string","description":"MuID of the platform user to nominate (e.g. john-doe@mulearn)."},"reason":{"type":"string","description":"Optional reason / note to pass with the nomination."}},"required":["muid"]},"CompanyMentorList":{"type":"object","description":"Serializer for listing Company Mentor nominations.","properties":{"id":{"type":"string","maxLength":36},"user_id":{"type":"string","readOnly":true},"user_name":{"type":"string","readOnly":true},"user_email":{"type":"string","readOnly":true},"org_name":{"type":"string","readOnly":true},"mentor_tier":{"enum":["IG_MENTOR","MENTOR","COMPANY_MENTOR","CAMPUS_MENTOR"],"type":"string","description":"* `IG_MENTOR` - IG Mentor\n* `MENTOR` - Mentor\n* `COMPANY_MENTOR` - Company Mentor\n* `CAMPUS_MENTOR` - Campus Mentor"},"status":{"enum":["PENDING","APPROVED","REJECTED"],"type":"string","description":"* `PENDING` - Pending\n* `APPROVED` - Approved\n* `REJECTED` - Rejected"},"reason":{"type":"string","nullable":true,"maxLength":1000},"verification_note":{"type":"string","nullable":true,"maxLength":500},"verified_at":{"type":"string","format":"date-time","nullable":true}},"required":["org_name","user_email","user_id","user_name"]}}},"paths":{"/api/v1/dashboard/company/mentor/nominate/":{"post":{"operationId":"dashboard_company_mentor_nominate_create","description":"Nominate a platform user as a Company Mentor for your company. Provide the user's **muid** (e.g. `john-doe@mulearn`). The user must already be a member of the company's organisation (i.e. they appear in `UserOrganizationLink` for this company). Only the verified company creator can nominate. The nomination enters PENDING state until an admin approves it.","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyMentorNominate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/CompanyMentorNominate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CompanyMentorNominate"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyMentorList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/mulearners/

> Directory of MuLearners available to companies (creator or company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"MulearnerDirectory":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"full_name":{"type":"string","maxLength":150},"muid":{"type":"string","maxLength":100},"email":{"type":"string","format":"email","maxLength":200},"karma":{"type":"string","readOnly":true},"level":{"type":"string","readOnly":true},"college":{"type":"string","readOnly":true},"department":{"type":"string","readOnly":true},"graduation_year":{"type":"string","readOnly":true}},"required":["college","department","email","full_name","graduation_year","karma","level","muid"]}}},"paths":{"/api/v1/dashboard/company/mulearners/":{"get":{"operationId":"dashboard_company_mulearners_list","description":"Directory of MuLearners available to companies (creator or company mentor).","parameters":[{"in":"query","name":"achievement","schema":{"type":"string"}},{"in":"query","name":"college","schema":{"type":"string"}},{"in":"query","name":"department","schema":{"type":"string"}},{"in":"query","name":"graduation_year","schema":{"type":"string"}},{"in":"query","name":"ig","schema":{"type":"string"}},{"in":"query","name":"level","schema":{"type":"integer"}},{"in":"query","name":"max_karma","schema":{"type":"integer"}},{"in":"query","name":"min_karma","schema":{"type":"integer"}},{"in":"query","name":"skill","schema":{"type":"string"}},{"in":"query","name":"task","schema":{"type":"string"}}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/MulearnerDirectory"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/profile/

> Retrieve the profile of the authenticated company (creator or approved company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyDetail":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_user_name":{"type":"string","readOnly":true},"company_user_email":{"type":"string","readOnly":true},"district_name":{"type":"string","readOnly":true},"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"slug":{"type":"string","maxLength":100},"status":{"type":"string","maxLength":30},"location":{"type":"string","nullable":true,"maxLength":150},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"verification_document_url":{"type":"string","nullable":true},"verification_requested_at":{"type":"string","format":"date-time","nullable":true},"verified_at":{"type":"string","format":"date-time","nullable":true},"verified_by":{"type":"string","nullable":true,"maxLength":36},"rejection_reason":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true},"deleted_at":{"type":"string","format":"date-time","nullable":true},"updated_by":{"type":"string","nullable":true,"maxLength":36},"deleted_by":{"type":"string","nullable":true,"maxLength":36},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true},"company_user":{"type":"string"},"district":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true}},"required":["company_user","company_user_email","company_user_name","created_at","description","district_name","name","slug","updated_at"]}}},"paths":{"/api/v1/dashboard/company/profile/":{"get":{"operationId":"dashboard_company_profile_retrieve","description":"Retrieve the profile of the authenticated company (creator or approved company mentor).","tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyDetail"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/company/profile/

> Update the profile of the authenticated company (creator or approved company mentor).

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedCompanyUpdate":{"type":"object","properties":{"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_id":{"type":"string","nullable":true},"state_id":{"type":"string","nullable":true},"country_id":{"type":"string","nullable":true},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}}},"CompanyUpdate":{"type":"object","properties":{"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_id":{"type":"string","nullable":true},"state_id":{"type":"string","nullable":true},"country_id":{"type":"string","nullable":true},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}},"required":["description","name"]}}},"paths":{"/api/v1/dashboard/company/profile/":{"patch":{"operationId":"dashboard_company_profile_partial_update","description":"Update the profile of the authenticated company (creator or approved company mentor).","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/profile/public/{slug}/

> Public endpoint to view a company's profile.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PublicCompanyProfile":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"name":{"type":"string","maxLength":75},"slug":{"type":"string","maxLength":100},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_name":{"type":"string","readOnly":true},"state_name":{"type":"string","readOnly":true},"country_name":{"type":"string","readOnly":true},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}},"required":["country_name","description","district_name","name","slug","state_name"]}}},"paths":{"/api/v1/dashboard/company/profile/public/{slug}/":{"get":{"operationId":"dashboard_company_profile_public_retrieve","description":"Public endpoint to view a company's profile.","parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/PublicCompanyProfile"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/profile/public/{slug}/jobs/

> Public endpoint to view all active jobs for a specific company.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"JobList":{"type":"object","properties":{"id":{"type":"string","maxLength":36},"company_name":{"type":"string","readOnly":true},"company_logo":{"type":"string","readOnly":true},"title":{"type":"string","maxLength":75},"experience":{"type":"string","nullable":true,"maxLength":20},"job_description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true,"maxLength":75},"salary_range":{"type":"string","nullable":true,"maxLength":36},"job_type":{"type":"string","maxLength":20},"status":{"type":"string","maxLength":20},"duration_value":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"duration_unit":{"type":"string","nullable":true,"maxLength":20},"hourly_rate":{"type":"string","format":"decimal","pattern":"^-?\\d{0,8}(?:\\.\\d{0,2})?$","nullable":true},"deliverables":{"nullable":true},"stipend":{"type":"string","nullable":true,"maxLength":75},"certificate_provided":{"type":"string","nullable":true,"maxLength":3},"rules":{"type":"array","items":{"$ref":"#/components/schemas/JobRule"},"readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true}},"required":["company_logo","company_name","created_at","job_type","rules","title"]},"JobRule":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"rule_type":{"type":"string","maxLength":50},"rule_value":{"type":"string","maxLength":150}},"required":["id","rule_type","rule_value"]}}},"paths":{"/api/v1/dashboard/company/profile/public/{slug}/jobs/":{"get":{"operationId":"dashboard_company_profile_public_jobs_list","description":"Public endpoint to view all active jobs for a specific company.","parameters":[{"in":"path","name":"slug","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"type":"array","items":{"$ref":"#/components/schemas/JobList"}}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/register/

> Submit a new company registration.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyRegister":{"type":"object","properties":{"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_id":{"type":"string","nullable":true},"state_id":{"type":"string","nullable":true},"country_id":{"type":"string","nullable":true},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}},"required":["description","name"]}}},"paths":{"/api/v1/dashboard/company/register/":{"post":{"operationId":"dashboard_company_register_create","description":"Submit a new company registration.","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyRegister"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/CompanyRegister"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CompanyRegister"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyRegister"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/company/register/

> Update or resubmit a pending/rejected company registration.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedCompanyUpdate":{"type":"object","properties":{"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_id":{"type":"string","nullable":true},"state_id":{"type":"string","nullable":true},"country_id":{"type":"string","nullable":true},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}}},"CompanyUpdate":{"type":"object","properties":{"name":{"type":"string","maxLength":75},"logo":{"type":"string","nullable":true},"description":{"type":"string"},"short_pitch":{"type":"string","nullable":true,"maxLength":900},"industry_sector":{"type":"string","nullable":true,"maxLength":75},"website_link":{"type":"string","nullable":true},"email":{"type":"string","nullable":true,"maxLength":100},"location":{"type":"string","nullable":true,"maxLength":150},"district_id":{"type":"string","nullable":true},"state_id":{"type":"string","nullable":true},"country_id":{"type":"string","nullable":true},"legal_name":{"type":"string","nullable":true,"maxLength":150},"registration_number":{"type":"string","nullable":true,"maxLength":100},"tax_id":{"type":"string","nullable":true,"maxLength":100},"company_size":{"type":"string","nullable":true,"maxLength":50},"linkedin_url":{"type":"string","nullable":true},"founded_year":{"type":"integer","maximum":65535,"minimum":0,"nullable":true},"remote_policy":{"type":"string","nullable":true,"maxLength":20},"culture_text":{"type":"string","nullable":true},"tech_stack":{"nullable":true},"perks":{"nullable":true},"testimonials":{"nullable":true},"gallery":{"nullable":true}},"required":["description","name"]}}},"paths":{"/api/v1/dashboard/company/register/":{"patch":{"operationId":"dashboard_company_register_partial_update","description":"Update or resubmit a pending/rejected company registration.","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedCompanyUpdate"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyUpdate"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## GET /api/v1/dashboard/company/status/

> Check the status of a company registration.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/status/":{"get":{"operationId":"dashboard_company_status_retrieve","description":"Check the status of a company registration.","tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/summary/

> Get summary stats for companies for the admin dashboard.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/summary/":{"get":{"operationId":"dashboard_company_summary_retrieve","description":"Get summary stats for companies for the admin dashboard.","tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/talent-pool/analytics/

> Retrieve analytics data for the talent pool.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/talent-pool/analytics/":{"get":{"operationId":"dashboard_company_talent_pool_analytics_retrieve","description":"Retrieve analytics data for the talent pool.","tags":["Company"],"responses":{"200":{"description":"No response body"}}}}}}
```

## GET /api/v1/dashboard/company/tasks/

> List all tasks submitted by the authenticated company user (creator or company mentor). Supports pagination, search, and sort.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyTaskListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":{}}},"pagination":{"type":"object","additionalProperties":{}}},"required":["data","pagination"]}}},"paths":{"/api/v1/dashboard/company/tasks/":{"get":{"operationId":"dashboard_company_tasks_retrieve","description":"List all tasks submitted by the authenticated company user (creator or company mentor). Supports pagination, search, and sort.","parameters":[{"in":"query","name":"approval_status","schema":{"type":"string"},"description":"Filter by approval_status: pending | approved | rejected"}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyTaskListResponse"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## POST /api/v1/dashboard/company/tasks/

> Create a new task for the company. The task is saved with approval\_status='pending' and active=False until an admin approves it. Accepts an optional skill\_ids list.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyTaskCreate":{"type":"object","description":"Serializer for company task creation.\nSimilar to mentor task creation but IG is optional and no IG validation.\nLocked fields (active, approval_status, requested_by, requested_at)\nare injected by the view via serializer.save(**overrides).","properties":{"hashtag":{"type":"string","maxLength":75},"title":{"type":"string","maxLength":75},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"description":{"type":"string","nullable":true},"type":{"type":"string"},"level":{"type":"string","nullable":true},"created_by":{"type":"string"},"updated_by":{"type":"string"}},"required":["created_by","hashtag","title","type","updated_by"]}}},"paths":{"/api/v1/dashboard/company/tasks/":{"post":{"operationId":"dashboard_company_tasks_create","description":"Create a new task for the company. The task is saved with approval_status='pending' and active=False until an admin approves it. Accepts an optional skill_ids list.","tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyTaskCreate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/CompanyTaskCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CompanyTaskCreate"}}},"required":true},"responses":{"200":{"description":"Task submitted for approval."}}}}}}
```

## GET /api/v1/dashboard/company/tasks/{task\_id}/

> Retrieve the detail of a specific task submitted by the company.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyTaskList":{"type":"object","description":"Read-only list/detail serializer for company tasks.","properties":{"id":{"type":"string","maxLength":36},"hashtag":{"type":"string","maxLength":75},"discord_link":{"type":"string","nullable":true,"maxLength":200},"title":{"type":"string","maxLength":75},"description":{"type":"string","nullable":true},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"channel":{"type":"string"},"type":{"type":"string"},"active":{"type":"boolean"},"variable_karma":{"type":"boolean"},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"level":{"type":"string"},"org":{"type":"string"},"ig":{"type":"string"},"event":{"type":"string","nullable":true,"maxLength":50},"bonus_karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"bonus_time":{"type":"string","format":"date-time","nullable":true},"approval_status":{"enum":["approved","pending","rejected"],"type":"string","description":"* `approved` - Approved\n* `pending` - Pending\n* `rejected` - Rejected"},"rejection_reason":{"type":"string","nullable":true},"reviewed_at":{"type":"string","format":"date-time","nullable":true},"requested_by_name":{"type":"string"},"requested_at":{"type":"string","format":"date-time","nullable":true},"skills":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","hashtag","skills","title","type","updated_at"]}}},"paths":{"/api/v1/dashboard/company/tasks/{task_id}/":{"get":{"operationId":"dashboard_company_tasks_retrieve_2","description":"Retrieve the detail of a specific task submitted by the company.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyTaskList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PUT /api/v1/dashboard/company/tasks/{task\_id}/

> Update a task submitted by the company. Regardless of the current approval\_status, the task reverts to 'pending' and active=False after editing.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"CompanyTaskUpdate":{"type":"object","description":"Partial update serializer — same writable fields as create except created_by.","properties":{"hashtag":{"type":"string","maxLength":75},"title":{"type":"string","maxLength":75},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"description":{"type":"string","nullable":true},"type":{"type":"string"},"level":{"type":"string","nullable":true},"updated_by":{"type":"string"}},"required":["hashtag","title","type","updated_by"]}}},"paths":{"/api/v1/dashboard/company/tasks/{task_id}/":{"put":{"operationId":"dashboard_company_tasks_update","description":"Update a task submitted by the company. Regardless of the current approval_status, the task reverts to 'pending' and active=False after editing.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompanyTaskUpdate"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/CompanyTaskUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/CompanyTaskUpdate"}}},"required":true},"responses":{"200":{"description":"Task updated and re-submitted for approval."}}}}}}
```

## DELETE /api/v1/dashboard/company/tasks/{task\_id}/

> Soft-delete a task submitted by the company by marking it inactive.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}}},"paths":{"/api/v1/dashboard/company/tasks/{task_id}/":{"delete":{"operationId":"dashboard_company_tasks_destroy","description":"Soft-delete a task submitted by the company by marking it inactive.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"responses":{"200":{"description":"Task deleted successfully."}}}}}}
```

## PATCH /api/v1/dashboard/company/tasks/{task\_id}/

> Update a task submitted by the company (partial update). Regardless of the current approval\_status, the task reverts to pending and active=False.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedCompanyTaskPatch":{"type":"object","description":"Validates the payload when a company updates an existing task.\nAll fields are optional to support partial updates.","properties":{"title":{"type":"string","maxLength":75},"hashtag":{"type":"string","maxLength":75},"description":{"type":"string","nullable":true},"karma":{"type":"integer","minimum":1},"ig_id":{"type":"string","maxLength":36},"type_id":{"type":"string","maxLength":36},"channel_id":{"type":"string","nullable":true,"maxLength":36},"level_id":{"type":"string","nullable":true,"maxLength":36},"skill_ids":{"type":"array","items":{"type":"string","maxLength":36},"description":"List of active Skill UUIDs to link to this task."}}},"CompanyTaskList":{"type":"object","description":"Read-only list/detail serializer for company tasks.","properties":{"id":{"type":"string","maxLength":36},"hashtag":{"type":"string","maxLength":75},"discord_link":{"type":"string","nullable":true,"maxLength":200},"title":{"type":"string","maxLength":75},"description":{"type":"string","nullable":true},"karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"channel":{"type":"string"},"type":{"type":"string"},"active":{"type":"boolean"},"variable_karma":{"type":"boolean"},"usage_count":{"type":"integer","maximum":2147483647,"minimum":-2147483648},"level":{"type":"string"},"org":{"type":"string"},"ig":{"type":"string"},"event":{"type":"string","nullable":true,"maxLength":50},"bonus_karma":{"type":"integer","maximum":2147483647,"minimum":-2147483648,"nullable":true},"bonus_time":{"type":"string","format":"date-time","nullable":true},"approval_status":{"enum":["approved","pending","rejected"],"type":"string","description":"* `approved` - Approved\n* `pending` - Pending\n* `rejected` - Rejected"},"rejection_reason":{"type":"string","nullable":true},"reviewed_at":{"type":"string","format":"date-time","nullable":true},"requested_by_name":{"type":"string"},"requested_at":{"type":"string","format":"date-time","nullable":true},"skills":{"type":"string","readOnly":true},"created_at":{"type":"string","format":"date-time","readOnly":true},"updated_at":{"type":"string","format":"date-time","readOnly":true}},"required":["created_at","hashtag","skills","title","type","updated_at"]}}},"paths":{"/api/v1/dashboard/company/tasks/{task_id}/":{"patch":{"operationId":"dashboard_company_tasks_partial_update","description":"Update a task submitted by the company (partial update). Regardless of the current approval_status, the task reverts to pending and active=False.","parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedCompanyTaskPatch"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedCompanyTaskPatch"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedCompanyTaskPatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"hasError":{"type":"boolean","default":false},"statusCode":{"type":"integer","default":200},"message":{"type":"object","properties":{"general":{"type":"array","items":{"type":"string"}}}},"response":{"$ref":"#/components/schemas/CompanyTaskList"}},"required":["hasError","statusCode","message","response"]}}},"description":""}}}}}}
```

## PATCH /api/v1/dashboard/company/verify/{company\_id}/

> Verify or reject a company.

```json
{"openapi":"3.0.3","info":{"title":"muLearn API","version":"1.0.0"},"security":[{"cookieAuth":[]},{"basicAuth":[]},{"jwtAuth":[]}],"components":{"securitySchemes":{"cookieAuth":{"type":"apiKey","in":"cookie","name":"sessionid"},"basicAuth":{"type":"http","scheme":"basic"},"jwtAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"JWT Token Authentication. Enter **\"Bearer <token>\"**"}},"schemas":{"PatchedCompanyVerify":{"type":"object","properties":{"status":{"enum":["verified","rejected"],"type":"string","description":"* `verified` - verified\n* `rejected` - rejected"},"rejection_reason":{"type":"string"}}}}},"paths":{"/api/v1/dashboard/company/verify/{company_id}/":{"patch":{"operationId":"dashboard_company_verify_partial_update","description":"Verify or reject a company.","parameters":[{"in":"path","name":"company_id","schema":{"type":"string"},"required":true}],"tags":["Company"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchedCompanyVerify"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/PatchedCompanyVerify"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/PatchedCompanyVerify"}}}},"responses":{"200":{"description":"No response body"}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mulearn.org/api-reference/company.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
