Core resources
With the CV-Transformer API you can access and manage your data in a programmatic way, using HTTP requests. The structure of the CV Transformer API is based on PostgREST v11.1 .
The CV-Transformer API uses api keys for authentication. You can create and manage API keys from the bottom of settings page of your organization in the admin dashboard .
Once you have an API key simply provide it in the HTTP Authorization header as bearer token.
curl -X GET "https://api.cv-transformer.com/v1/layouts" \
-H "Authorization: Bearer YOUR_API_KEY"
For each endpoint, you can select which columns you want to retrieve by using the select
query parameter. Besides the columns of the resource itself, you can also select columns from related resources. For more advanced selection options refer to the PostgREST documentation .
curl -X GET "https://api.cv-transformer.com/v1/layouts?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.cv-transformer.com/v1/layouts?select=id,name" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.cv-transformer.com/v1/layouts?select=name,candidates(*)" \
-H "Authorization: Bearer YOUR_API_KEY"
Filters can be applied on each list, update and delete request, to restrict the rows affected by the request. For a complete list of filters refer to the PostgREST documentation .
curl -X GET "https://api.cv-transformer.com/v1/candidates?status=eq.active" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.cv-transformer.com/v1/candidates?data->>email=eq.some@example.com&status=eq.active" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X DELETE "https://api.cv-transformer.com/v1/candidates?data->>email=like.%test.com" \
-H "Authorization: Bearer YOUR_API_KEY"
By default, results are sorted by the primary key of the underlying table. You can change the sorting by using the order
query parameter. To limit the number of results, use the limit
and offset
query parameters. The API will return at most 1000 results per request. For more advanced sorting and pagination options refer to the PostgREST documentation .
curl -X GET "https://api.cv-transformer.com/v1/layouts?order=created_at.desc" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X GET "https://api.cv-transformer.com/v1/layouts?limit=10&offset=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Logs for each time a candidate is viewed
id
bigint
Unique identifier
created_at
timestamp with time zone
Creation timestamp
anonymous
boolean
Whether the candidate was viewed with personal information redacted or not
JSON
{
"id": 0,
"candidate_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.557Z",
"anonymous": false
}
id
Filter<bigint>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
anonymous
Filter<boolean>
Whether the candidate was viewed with personal information redacted or not
200
A list of candidate views with the selected columns
206
Partial Content
GET /candidate_views
curl -X GET "https://api.cv-transformer.com/v1/candidate_views?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
All information related to individual candidates
id
uuid
Unique identifier
member_id
uuid | null
Identifier of the member associated with this candidate (initially the creator)
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
deleted_at
timestamp with time zone | null
Deletion timestamp
attachments
Record<string, CandidateAttachment>
Files attached to this candidate (CV, Vacancy, other)
avatar
text | null
The candidate's avatar image. Used for efficient display. Automatically filled when editing candidate from UI
export_filename
text
Filename for exported PDF file (without .pdf). If left empty, layout.export_filename applies.
fts
tsvector
language
Language
Language this candidate should be displayed in
name
text
The candidate's name. Used for searching. Automatically filled when editing candidate from UI
secret
text
Secret string. Used to privately share a proposal for this candidate with personal information non-redacted
secret_anonymous
text
Secret string. Used to privately share a proposal for this candidate with personal information redacted
secret_editable
text
Secret string. Used to share the candidate for editing.
status
"pending" | "active"
Status of the candidate. Only active
candidates can be shared
values
CandidateValues
Values for the each of the variables defined in the layout the candidate uses
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"layout_id": "00000000-0000-0000-0000-000000000000",
"member_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.569Z",
"updated_at": "2025-04-19T14:31:31.569Z",
"deleted_at": "2025-04-19T14:31:31.569Z",
"attachments": {
"cv": {
"section_id": null,
"text": "Text from the attachment",
"type": "pdf",
"url": "https://example.com/document.pdf"
}
},
"avatar": "",
"export_filename": "",
"language": "en",
"name": "",
"secret": "gen_random_uuid()",
"secret_anonymous": "gen_random_uuid()",
"secret_editable": "gen_random_uuid()",
"status": "pending",
"values": {
"name": "John Doe",
"date_of_birth": "1995-01-01",
"experiences": [
{
"interval": {
"start": "2015-01-01",
"end": "2018-01-01"
},
"company": "Example Inc.",
"position": "Developer"
}
]
}
}
id
Filter<uuid>
Unique identifier
member_id
Filter<uuid | null>
Identifier of the member associated with this candidate (initially the creator)
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Deletion timestamp
attachments
Filter<Record<string, CandidateAttachment>>
Files attached to this candidate (CV, Vacancy, other)
avatar
Filter<text | null>
The candidate's avatar image. Used for efficient display. Automatically filled when editing candidate from UI
export_filename
Filter<text>
Filename for exported PDF file (without .pdf). If left empty, layout.export_filename applies.
fts
Filter<tsvector>
language
Filter<Language>
Language this candidate should be displayed in
name
Filter<text>
The candidate's name. Used for searching. Automatically filled when editing candidate from UI
secret
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information non-redacted
secret_anonymous
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information redacted
secret_editable
Filter<text>
Secret string. Used to share the candidate for editing.
status
Filter<"pending" | "active">
Status of the candidate. Only active
candidates can be shared
values
Filter<CandidateValues>
Values for the each of the variables defined in the layout the candidate uses
200
A list of candidates with the selected columns
206
Partial Content
GET /candidates
curl -X GET "https://api.cv-transformer.com/v1/candidates?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
member_id
Filter<uuid | null>
Identifier of the member associated with this candidate (initially the creator)
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Deletion timestamp
attachments
Filter<Record<string, CandidateAttachment>>
Files attached to this candidate (CV, Vacancy, other)
avatar
Filter<text | null>
The candidate's avatar image. Used for efficient display. Automatically filled when editing candidate from UI
export_filename
Filter<text>
Filename for exported PDF file (without .pdf). If left empty, layout.export_filename applies.
fts
Filter<tsvector>
language
Filter<Language>
Language this candidate should be displayed in
name
Filter<text>
The candidate's name. Used for searching. Automatically filled when editing candidate from UI
secret
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information non-redacted
secret_anonymous
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information redacted
secret_editable
Filter<text>
Secret string. Used to share the candidate for editing.
status
Filter<"pending" | "active">
Status of the candidate. Only active
candidates can be shared
values
Filter<CandidateValues>
Values for the each of the variables defined in the layout the candidate uses
204
The deleted candidates with the selected columns
DELETE /candidates
curl -X DELETE "https://api.cv-transformer.com/v1/candidates" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
member_id
Filter<uuid | null>
Identifier of the member associated with this candidate (initially the creator)
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Deletion timestamp
attachments
Filter<Record<string, CandidateAttachment>>
Files attached to this candidate (CV, Vacancy, other)
avatar
Filter<text | null>
The candidate's avatar image. Used for efficient display. Automatically filled when editing candidate from UI
export_filename
Filter<text>
Filename for exported PDF file (without .pdf). If left empty, layout.export_filename applies.
fts
Filter<tsvector>
language
Filter<Language>
Language this candidate should be displayed in
name
Filter<text>
The candidate's name. Used for searching. Automatically filled when editing candidate from UI
secret
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information non-redacted
secret_anonymous
Filter<text>
Secret string. Used to privately share a proposal for this candidate with personal information redacted
secret_editable
Filter<text>
Secret string. Used to share the candidate for editing.
status
Filter<"pending" | "active">
Status of the candidate. Only active
candidates can be shared
values
Filter<CandidateValues>
Values for the each of the variables defined in the layout the candidate uses
Partial<Candidate>
204
The updated candidates with the selected columns
PATCH /candidates
curl -X PATCH "https://api.cv-transformer.com/v1/candidates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Create a new candidate. Uses one credit. When no credits are available in the organization, the candidate is created with status="pending"
instead.
Partial<Candidate>
200
The created candidate
POST /candidates
curl -X POST "https://api.cv-transformer.com/v1/candidates" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"attachments": {
"cv": {
"section_id": null,
"text": "",
"type": "link",
"url": "https://example.com/cv"
}
},
"language": "nl",
"layout_id": "00000000-0000-0000-0000-000000000000",
"member_id": "00000000-0000-0000-0000-000000000000",
"values": {
"key": "value"
}
}'
Upload an attachment for a candidate.
location
string
The type of attachment to upload. Defaults to cv
.
The file to attach. Supported file-types: .pdf
, .doc
, .docx
, .jpeg
, .png
, .txt
, .webp
200
The updated candidate
POST /candidates/[candidate_id]/attach
curl -X POST "https://api.cv-transformer.com/v1/candidates/[candidate_id]/attach?location=cv" \
-H "Authorization: Bearer YOUR_API_KEY"
Fill or adjust a candidate's values.
candidate_id
required
uuid
The identifier of the candidate to fill.
prompt
string
Custom prompt, e.g. "Expand introduction", "Sort skills by level". Organization's default prompt is used when left empty.
200
The updated candidate
POST /candidates/[candidate_id]/fill
curl -X POST "https://api.cv-transformer.com/v1/candidates/[candidate_id]/fill?style=" \
-H "Authorization: Bearer YOUR_API_KEY"
Extract custom data from a candidate
candidate_id
required
uuid
The identifier of the candidate to extract data from.
The JSONSchema of the data to extract.
200
The extracted data
POST /candidates/[candidate_id]/extract
curl -X POST "https://api.cv-transformer.com/v1/candidates/[candidate_id]/extract" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"type": "object",
"properties": {
"email": {
"type": "string"
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}'
Changes in credit per organization
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
delta
integer
Difference between next and previous credit
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.596Z",
"delta": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
delta
Filter<integer>
Difference between next and previous credit
200
A list of credit mutations with the selected columns
206
Partial Content
GET /credit_mutations
curl -X GET "https://api.cv-transformer.com/v1/credit_mutations?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Layout definitions that can be filled in per candidate
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
assets
Array<LayoutAsset>
Reusable assets used in the layout
default_values
CandidateValues | null
Default values for each of the variables in the layout. When left empty, these values are auto-generated
export_filename
text
Filename for exported PDF files (without .pdf). Can contain {{variables}}
featured
boolean
Whether the layout is featured in the layout library
fts
tsvector
languages
Array<Language>
Languages the layout is translated in. First entry indicates the default language
name
text
Title of this layout
secret
uuid
Secret string. Required to view the layout when its visibility is "private"
sections
Array<LayoutSection>
List of sections the layout consists of
slug
text
Unique identifier that allows easy lookup in the layout library
thumbnail
text | null
Thumbnail image for this layout. Automatically generated
tokens
Array<LayoutDesignToken>
List of design tokens used in the layout
variables
Array<LayoutVariable>
List of variables used in the layout. Each candidate
using this layout
populates these variables
visibility
"public" | "private"
Visibility of this layout. "public" means the layout is published to the layout library.
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"creator_id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"parent_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.606Z",
"updated_at": "2025-04-19T14:31:31.606Z",
"assets": [
{
"type": "font",
"family": "Roboto",
"url": "https://example.com/roboto.ttf"
},
{
"type": "image",
"label": "Example",
"url": "https://example.com/example.png"
}
],
"default_values": {
"name": "John Doe",
"date_of_birth": "1995-01-01",
"experiences": [
{
"interval": {
"start": "2015-01-01",
"end": "2018-01-01"
},
"company": "Example Inc.",
"position": "Developer"
}
]
},
"export_filename": "",
"featured": false,
"languages": [
"en",
"de",
"fr",
"nl"
],
"name": "",
"secret": "00000000-0000-0000-0000-000000000000",
"sections": [
{
"body": {
"align": "left",
"background": "#FFFFFF",
"bold": false,
"border": null,
"borderRadius": "0",
"color": "#000000",
"font": {
"family": "Roboto",
"letter_spacing": null,
"line_height": null,
"size": 16
},
"grow": true,
"id": "text",
"italic": false,
"padding": 16,
"split": false,
"strikethrough": false,
"transform": "none",
"underline": false,
"value": {
"default": "Hello",
"nl": "Hallo"
},
"visibility": true,
"type": "text"
},
"footer": null,
"header": null,
"id": "section",
"label": "Section",
"type": "multi-page"
}
],
"slug": "",
"thumbnail": "",
"tokens": [
{
"id": "primary-color",
"name": "Primary color",
"type": "color",
"value": "#000000"
},
{
"id": "font-size",
"name": "Font size",
"type": "length",
"value": 16
}
],
"variables": [
{
"ai_instructions": "",
"default": "",
"key": "name",
"max_length": null,
"min_length": 0,
"sensitive": false,
"type": "inline-text"
},
{
"ai_instructions": "",
"default": "",
"key": "description",
"max_length": null,
"min_length": 0,
"sensitive": false,
"type": "text-block"
}
],
"visibility": "private"
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
assets
Filter<Array<LayoutAsset>>
Reusable assets used in the layout
default_values
Filter<CandidateValues | null>
Default values for each of the variables in the layout. When left empty, these values are auto-generated
export_filename
Filter<text>
Filename for exported PDF files (without .pdf). Can contain {{variables}}
featured
Filter<boolean>
Whether the layout is featured in the layout library
fts
Filter<tsvector>
languages
Filter<Array<Language>>
Languages the layout is translated in. First entry indicates the default language
name
Filter<text>
Title of this layout
secret
Filter<uuid>
Secret string. Required to view the layout when its visibility is "private"
sections
Filter<Array<LayoutSection>>
List of sections the layout consists of
slug
Filter<text>
Unique identifier that allows easy lookup in the layout library
thumbnail
Filter<text | null>
Thumbnail image for this layout. Automatically generated
tokens
Filter<Array<LayoutDesignToken>>
List of design tokens used in the layout
variables
Filter<Array<LayoutVariable>>
List of variables used in the layout. Each candidate
using this layout
populates these variables
visibility
Filter<"public" | "private">
Visibility of this layout. "public" means the layout is published to the layout library.
200
A list of layouts with the selected columns
206
Partial Content
GET /layouts
curl -X GET "https://api.cv-transformer.com/v1/layouts?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Layout> | Array<Partial<Layout>>
201
The newly created layouts with the selected columns
POST /layouts
curl -X POST "https://api.cv-transformer.com/v1/layouts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
assets
Filter<Array<LayoutAsset>>
Reusable assets used in the layout
default_values
Filter<CandidateValues | null>
Default values for each of the variables in the layout. When left empty, these values are auto-generated
export_filename
Filter<text>
Filename for exported PDF files (without .pdf). Can contain {{variables}}
featured
Filter<boolean>
Whether the layout is featured in the layout library
fts
Filter<tsvector>
languages
Filter<Array<Language>>
Languages the layout is translated in. First entry indicates the default language
name
Filter<text>
Title of this layout
secret
Filter<uuid>
Secret string. Required to view the layout when its visibility is "private"
sections
Filter<Array<LayoutSection>>
List of sections the layout consists of
slug
Filter<text>
Unique identifier that allows easy lookup in the layout library
thumbnail
Filter<text | null>
Thumbnail image for this layout. Automatically generated
tokens
Filter<Array<LayoutDesignToken>>
List of design tokens used in the layout
variables
Filter<Array<LayoutVariable>>
List of variables used in the layout. Each candidate
using this layout
populates these variables
visibility
Filter<"public" | "private">
Visibility of this layout. "public" means the layout is published to the layout library.
204
The deleted layouts with the selected columns
DELETE /layouts
curl -X DELETE "https://api.cv-transformer.com/v1/layouts" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
assets
Filter<Array<LayoutAsset>>
Reusable assets used in the layout
default_values
Filter<CandidateValues | null>
Default values for each of the variables in the layout. When left empty, these values are auto-generated
export_filename
Filter<text>
Filename for exported PDF files (without .pdf). Can contain {{variables}}
featured
Filter<boolean>
Whether the layout is featured in the layout library
fts
Filter<tsvector>
languages
Filter<Array<Language>>
Languages the layout is translated in. First entry indicates the default language
name
Filter<text>
Title of this layout
secret
Filter<uuid>
Secret string. Required to view the layout when its visibility is "private"
sections
Filter<Array<LayoutSection>>
List of sections the layout consists of
slug
Filter<text>
Unique identifier that allows easy lookup in the layout library
thumbnail
Filter<text | null>
Thumbnail image for this layout. Automatically generated
tokens
Filter<Array<LayoutDesignToken>>
List of design tokens used in the layout
variables
Filter<Array<LayoutVariable>>
List of variables used in the layout. Each candidate
using this layout
populates these variables
visibility
Filter<"public" | "private">
Visibility of this layout. "public" means the layout is published to the layout library.
Partial<Layout>
204
The updated layouts with the selected columns
PATCH /layouts
curl -X PATCH "https://api.cv-transformer.com/v1/layouts" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Links users to organizations via roles
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
role
"user" | "admin" | "superuser"
Role of the member
values
Record<string, string>
Values for each of the organization's member_variables
, usable in layouts
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.666Z",
"updated_at": "2025-04-19T14:31:31.666Z",
"role": "superuser",
"values": {}
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
role
Filter<"user" | "admin" | "superuser">
Role of the member
values
Filter<Record<string, string>>
Values for each of the organization's member_variables
, usable in layouts
200
A list of members with the selected columns
206
Partial Content
GET /members
curl -X GET "https://api.cv-transformer.com/v1/members?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Invite a member to your organization. The member will receive an email with a link to accept the invitation. The member will have the user role. To make a member admin or superuser use the dashboard.
email
required
string
The email address of the member to invite.
name
string
The name of the member to invite.
language
Language
The language of the member to invite.
201
The invited member with it's user profile
POST /members
curl -X POST "https://api.cv-transformer.com/v1/members" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"email": "johndoe@example.com",
"name": "John Doe"
}'
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.669Z",
"updated_at": "2025-04-19T14:31:31.669Z",
"role": "superuser",
"values": {},
"user_profile": {
"user_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.669Z",
"updated_at": "2025-04-19T14:31:31.669Z",
"avatar": "",
"email": "",
"language": "nl",
"last_login_at": "2025-04-19T14:31:31.669Z",
"name": "",
"phone": "",
"source": ""
}
}
Revoke a member from your organization. The member will no longer have access to your organization. Only works for members with the user role. To revoke an admin or superuser members use the dashboard.
id
required
uuid
The identifier of the member to revoke.
200
The deleted member
DELETE /members
curl -X DELETE "https://api.cv-transformer.com/v1/members?id=00000000-0000-0000-0000-000000000000" \
-H "Authorization: Bearer YOUR_API_KEY"
All base information per organizations
id
uuid
Unique identifier
default_layout_id
uuid | null
Identifier of the layout that is used for new candidates by default
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
deleted_at
timestamp with time zone | null
Deletion timestamp
allow_inspection
boolean
Whether the CV-Transformer team is allowed to inspect the organization to debug errors
allowed_senders
text[]
List of email addresses that are allowed to send CV's to the organizations inbox. Email addresses can be partial (e.g., @example.com)
ats
text
The ATS this organization uses
avatar
text | null
Avatar image representing the organization
credit
integer
Amount of credit currently available
default_prompt
text
Default prompt used when filling in candidate data
delete_candidates_after
integer | null
Time in days after which candidates are automatically deleted
detect_candidate_language_from_attachment
boolean
Automatically detect candidate language when first attachment is uploaded.
fts
tsvector
member_variables
Array<MemberVariable>
Metafields defined on each member. Usable in layouts
name
text
Name of the organization
pricing_version
text
The organization's pricing version
slug
text
Unique string. Used to determine the organization's email inbox address
status
text
Internal status for the organization
type
"test" | "regular" | null
Type of the organization
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"default_layout_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.686Z",
"updated_at": "2025-04-19T14:31:31.686Z",
"deleted_at": "2025-04-19T14:31:31.686Z",
"allow_inspection": true,
"allowed_senders": [
""
],
"ats": "",
"avatar": "",
"credit": 10,
"default_prompt": "",
"delete_candidates_after": 0,
"detect_candidate_language_from_attachment": false,
"member_variables": {},
"name": "",
"pricing_version": "v1",
"slug": "",
"status": "active",
"type": "regular"
}
id
Filter<uuid>
Unique identifier
default_layout_id
Filter<uuid | null>
Identifier of the layout that is used for new candidates by default
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Deletion timestamp
allow_inspection
Filter<boolean>
Whether the CV-Transformer team is allowed to inspect the organization to debug errors
allowed_senders
Filter<text[]>
List of email addresses that are allowed to send CV's to the organizations inbox. Email addresses can be partial (e.g., @example.com)
ats
Filter<text>
The ATS this organization uses
avatar
Filter<text | null>
Avatar image representing the organization
credit
Filter<integer>
Amount of credit currently available
default_prompt
Filter<text>
Default prompt used when filling in candidate data
delete_candidates_after
Filter<integer | null>
Time in days after which candidates are automatically deleted
detect_candidate_language_from_attachment
Filter<boolean>
Automatically detect candidate language when first attachment is uploaded.
fts
Filter<tsvector>
member_variables
Filter<Array<MemberVariable>>
Metafields defined on each member. Usable in layouts
name
Filter<text>
Name of the organization
pricing_version
Filter<text>
The organization's pricing version
slug
Filter<text>
Unique string. Used to determine the organization's email inbox address
status
Filter<text>
Internal status for the organization
type
Filter<"test" | "regular" | null>
Type of the organization
200
A list of organizations with the selected columns
206
Partial Content
GET /organizations
curl -X GET "https://api.cv-transformer.com/v1/organizations?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
default_layout_id
Filter<uuid | null>
Identifier of the layout that is used for new candidates by default
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
deleted_at
Filter<timestamp with time zone | null>
Deletion timestamp
allow_inspection
Filter<boolean>
Whether the CV-Transformer team is allowed to inspect the organization to debug errors
allowed_senders
Filter<text[]>
List of email addresses that are allowed to send CV's to the organizations inbox. Email addresses can be partial (e.g., @example.com)
ats
Filter<text>
The ATS this organization uses
avatar
Filter<text | null>
Avatar image representing the organization
credit
Filter<integer>
Amount of credit currently available
default_prompt
Filter<text>
Default prompt used when filling in candidate data
delete_candidates_after
Filter<integer | null>
Time in days after which candidates are automatically deleted
detect_candidate_language_from_attachment
Filter<boolean>
Automatically detect candidate language when first attachment is uploaded.
fts
Filter<tsvector>
member_variables
Filter<Array<MemberVariable>>
Metafields defined on each member. Usable in layouts
name
Filter<text>
Name of the organization
pricing_version
Filter<text>
The organization's pricing version
slug
Filter<text>
Unique string. Used to determine the organization's email inbox address
status
Filter<text>
Internal status for the organization
type
Filter<"test" | "regular" | null>
Type of the organization
Partial<Organization>
204
The updated organizations with the selected columns
PATCH /organizations
curl -X PATCH "https://api.cv-transformer.com/v1/organizations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'
Tracks notifications sent via webhooks for various events
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
event_type
WebhookEvent
Event this notification is for
payload
jsonb
JSON payload that is sent along with this notification
response
text | null
Stored response
status
"pending" | "sent" | "error"
Notification status
tries
integer
Amount of times this webhook notification has been tried to be delivered
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"webhook_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.710Z",
"updated_at": "2025-04-19T14:31:31.710Z",
"event_type": "candidates.created",
"payload": {},
"response": "",
"status": "pending",
"tries": 0
}
id
Filter<uuid>
Unique identifier
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
event_type
Filter<WebhookEvent>
Event this notification is for
payload
Filter<jsonb>
JSON payload that is sent along with this notification
response
Filter<text | null>
Stored response
status
Filter<"pending" | "sent" | "error">
Notification status
tries
Filter<integer>
Amount of times this webhook notification has been tried to be delivered
200
A list of webhook notifications with the selected columns
206
Partial Content
GET /webhook_notifications
curl -X GET "https://api.cv-transformer.com/v1/webhook_notifications?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Webhook event destinations
id
uuid
Unique identifier
created_at
timestamp with time zone
Creation timestamp
updated_at
timestamp with time zone
Last modification timestamp
description
text
An optional description of the webhook
endpoint
text
URL to which notifications should be sent
events
Array<WebhookEvent>
Events to which the webhook is subscribed
signing_secret
text
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications
source
text
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier
JSON
{
"id": "00000000-0000-0000-0000-000000000000",
"organization_id": "00000000-0000-0000-0000-000000000000",
"created_at": "2025-04-19T14:31:31.725Z",
"updated_at": "2025-04-19T14:31:31.725Z",
"description": "",
"endpoint": "",
"events": [
"candidates.created",
"members.updated"
],
"signing_secret": "md5((random())::text)",
"source": ""
}
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<Array<WebhookEvent>>
Events to which the webhook is subscribed
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier
200
A list of webhooks with the selected columns
206
Partial Content
GET /webhooks
curl -X GET "https://api.cv-transformer.com/v1/webhooks?select=*" \
-H "Authorization: Bearer YOUR_API_KEY"
Partial<Webhook> | Array<Partial<Webhook>>
201
The newly created webhooks with the selected columns
POST /webhooks
curl -X POST "https://api.cv-transformer.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '[]'
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<Array<WebhookEvent>>
Events to which the webhook is subscribed
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier
204
The deleted webhooks with the selected columns
DELETE /webhooks
curl -X DELETE "https://api.cv-transformer.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY"
id
Filter<uuid>
Unique identifier
organization_id
Filter<uuid>
Identifier of the organization this webhook is defined in
created_at
Filter<timestamp with time zone>
Creation timestamp
updated_at
Filter<timestamp with time zone>
Last modification timestamp
description
Filter<text>
An optional description of the webhook
endpoint
Filter<text>
URL to which notifications should be sent
events
Filter<Array<WebhookEvent>>
Events to which the webhook is subscribed
signing_secret
Filter<text>
String used to sign each notification send to the webhook. Used to verify the validity of the webhook notifications
source
Filter<text>
From where the webhook is registered. Can be from the admin, via the API, or via an external tool such as Zapier
Partial<Webhook>
204
The updated webhooks with the selected columns
PATCH /webhooks
curl -X PATCH "https://api.cv-transformer.com/v1/webhooks" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{}'