---
title: "Handle Form Submission"
method: POST
path: "/api/forms/submission"
tags: ["Forms"]
---

# Handle Form Submission

`POST /api/forms/submission`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/forms/submission`
- Auth: none declared

Handle form submission from ruzora.com.

1. Validates input
2. Stores in database (creates candidate record)
3. Sends email notification
4. Triggers scoring if resume provided

Returns:
    FormSubmissionResponse with success status and candidate_id

## Request body

- FormSubmissionCreate: Schema for creating a new form submission via API.
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, email, required
  - `phone` string, nullable
  - `linkedin_url` string, nullable
  - `resume_url` string, nullable
  - `role_category` string, required
  - `source` string
  - `job_slug` string, nullable
  - `message` string, nullable
  - `utm_source` string, nullable
  - `utm_medium` string, nullable
  - `utm_campaign` string, nullable
  - `utm_content` string, nullable
  - `utm_term` string, nullable
  - `referrer_url` string, nullable
  - `first_touch_landing_page` string, nullable
  - `ref` string, nullable

## Response `200`

Successful Response

- FormSubmissionResponse: Response schema for form submission.
  - `success` boolean, required
  - `candidate_id` string, nullable
  - `message` string, required
  - `profile_url` string, nullable
  - `retry_from` string, date, nullable
  - `challenge_pending` boolean
  - `resume_upload_token` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
