# Data handling

> What the Curriculo API keeps and what it does not: stateless sync operations, and the data kept by jobs, the résumé assistant, background tasks and screenings.

**Source:** /docs/data-handling/ (Curriculo Docs)  
**Updated:** 15 October 2026  
**Contact:** hello@curriculo.me

What the API keeps, what it does not, and what your key can reach.

| Operation | Retention | What that means |
|---|---|---|
| [Parse](/docs/api/parse/), [Evaluate](/docs/api/evaluate/), [Translate](/docs/api/translate/), [Detect language](/docs/api/detect-language/), [Interview summary](/docs/api/summary/), [Transcribe](/docs/api/transcribe/) (synchronous calls) | Stateless | Nothing you send is stored, apart from a short excerpt kept when a model call fails, and no information carries from one request to the next. |
| [Register a job](/docs/api/jobs/) | Job description | Only the description you send (with its label and language) is stored, so it can be reused by `job_id`. Never a candidate, a CV or a result. The `job_id` is scoped to the account that created it. |
| [Prompt (résumé assistant)](/docs/api/prompt/) | Résumé | Keeps the résumé so it can act on it across a session. Browse saved résumés with `GET /prompt/resumes`. |
| [Background tasks](/docs/background-processing/) (`/{op}/async`) | Task result and uploads | Keeps the task and its result so you can poll for it. Files you upload to a task are stored under your account. |
| [Screening interview](/docs/api/screening-interview/) | Invites, answers, recordings | Keeps candidate invites, answers and recordings so your ATS can retrieve completed recordings and transcripts. |

## Your data stays yours

Keys are scoped to your account and see nothing else.
- A task, a saved résumé or a screening is readable only by your account.
- Parsed output preserves the CV's own language and script, so no name or employer is transliterated without you asking for it.
- Every Console view is scoped to your signed-in account. No request accepts an account identifier from the caller.

## Testing on production

Production is the only published environment. The synchronous operations keep nothing apart from a short excerpt of a failed model call, so integration testing with them runs safely against production with your own documents. Background tasks, saved résumés, registered jobs and screening interviews do keep data; test those with documents you are happy to have stored.

> [!WARNING]
> You remain the data controller. CVs and interview recordings are personal data. Confirm you have a lawful basis for processing candidate material and for sending it to a processor before you integrate.

This page documents how the product operates. It is not a substitute for the Curriculo [Terms of Service](/terms-of-service/), [Privacy Policy](/privacy/) or [Data Processing Agreement](/dpa/).

## Common questions

**Is my CV stored when I call parse or evaluate?**
No. The synchronous operations are stateless: the document is processed and nothing is kept once the response is sent, apart from a short excerpt of a failed model call.

**Which operations keep data?**
Register a job, the résumé assistant (prompt), background tasks and screening interviews. Each one is listed in the table above with what it keeps.

**Can another account read my tasks or jobs?**
No. Tasks, registered jobs, saved résumés and screenings are scoped to the account that created them. A request for another account's id returns `404`.

**Where do I get the legal terms?**
Read the [Terms of Service](/terms-of-service/), [Privacy Policy](/privacy/) and [Data Processing Agreement](/dpa/). Questions go to [hello@curriculo.me](mailto:hello@curriculo.me).

## Next steps

- [Authentication](/docs/authentication/): how keys are issued, scoped and revoked.
- [Developer Console](/docs/console/): manage keys, usage and billing.
- [Background processing and callbacks](/docs/background-processing/): what a task keeps and how you poll it.
