CVs & CV Sections
A CV (résumé) in Flowcase is made up of sections: summary of qualifications, project experiences, skills, education, courses and more. This guide covers how to find CVs, read a whole CV or a single section, and create, update and delete section records. The worked examples use project experiences, but the same URL pattern applies to every section type.
Every CV endpoint needs a user_id and a cv_id. Both are available from the Users API and from the search endpoint below.
All requests need an Authorization header, and requests with a body need Content-Type: application/json. See Authentication & Security for details.
Search for CVs
The search endpoint allows for quickly finding previews of CVs with rich filtering capabilities. The primary use case for this endpoint is to support user search functionality in applications.
The endpoint returns a list of shortened CV objects holding a subset of the attributes. To retrieve full CV information, you need to pull the CV object individually with Get a full CV.
The API search functionality returns only Master CVs for the users. Tailored CVs are not included in the search results and need to be retrieved individually using the Get a full CV endpoint. To discover Tailored CVs, you can use the Tailored CVs API.
This is a POST request with input parameters passed as part of the JSON body object, allowing for more structured input parameters.
POST https://<subdomain>.flowcase.com/api/v4/search
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
offset |
integer [0-total] | optional | Numbering index for the starting point of the page. Default: 0 |
size |
integer [1-500] | required | Maximum number of items per page. You may receive fewer results than size. |
office_ids |
array[string] | optional | Filter users by belonging to one of specified departments on a list of office_id. Default: [] (all departments) |
must |
object | optional | CV specific query request. Please see the examples below. |
Example: name search
In this example we search for a user by name. The search will match any partial match of the given input value due to the query search type being used.
POST https://<subdomain>.flowcase.com/api/v4/search
Request body
{
"office_ids": ["OFFICE_ID_1", "OFFICE_ID_2"],
"offset": 0, // Used for pagination
"size": 10, // Used for pagination
"must": [
{
"bool": {
"should": [
{
"query": {
"field": "name",
"value": "<user_name_to_search>"
}
}
]
}
}
]
}
Example: official skill search
In this example we search for CVs using a skill name. The search will only return CVs that have a skill that is an exact match.
POST https://<subdomain>.flowcase.com/api/v4/search
Request body
{
"office_ids": ["OFFICE_ID_1", "OFFICE_ID_2"],
"offset": 0,
"size": 10,
"must": [
{
"technology_skill": {
"tag": "Project management"
}
}
]
}
Example: free-text search
This will search for a value across all fields and return CVs with partial matches.
POST https://<subdomain>.flowcase.com/api/v4/search
Request body
{
"office_ids": ["OFFICE_ID_1", "OFFICE_ID_2"],
"offset": 0,
"size": 10,
"must": [
{
"bool": {
"must": [
{
"query": {
"value": "project"
}
}
]
}
}
]
}
Example: custom tag search
In this example we search CVs that are associated with a particular custom tag. The custom tag ID can be found using the Custom Tags API.
POST https://<subdomain>.flowcase.com/api/v4/search
Request body
{
"office_ids": ["OFFICE_ID_1", "OFFICE_ID_2"],
"offset": 0,
"size": 10,
"must": [
{
"exact": { "field": "custom_tag_id", "value": "CUSTOM_TAG_ID" }
}
]
}
Response body
Searches against the CV search endpoint will return results in the following format.
{
"cvs": [
{
"cv": {
"id": "CV_ID",
"user_id": "USER_ID",
"name": "NAME",
"image": {
"url": "IMAGE_URL"
// More image URLs for different sizes
},
"title": "TITLE",
"titles": { "int": "TITLE" },
"email": "EMAIL",
"company_id": "COMPANY_ID",
"updated_at": "2020-09-17T08:15:20.534Z",
"owner_updated_at": "2020-09-17T08:15:20.000Z",
"country_code": "no",
"language_code": "int",
"language_codes": ["int", "no", "se", "dk"]
// Some fields omitted
},
"preview_url": "/redirect/to/cv?user_id=USER_ID"
}
// More CVs
],
"total": 23 // Total number of CVs that matched the search
}
Take both identifiers from the nested cv object: cv.id is the CV ID and cv.user_id is the user ID. Pass these two values to Get a full CV.
The keys on each result vary with the query. A request with no must filter also returns id, index and highlight on every result, plus a facets object at the top level. A request with a must filter returns none of those. Where id appears it is the row's position in the result set, not a CV identifier: it counts 0, 1, 2 and upwards, and any request you build from it will fail.
Depend only on the keys present either way: cvs, offset and total at the top level, and cv, preview_url and highlights on each result.
If you load this response into a tool that flattens JSON into tables, such as Power BI or Excel, expand the cv record before you map columns. Skip that step and the CV fields all read as empty.
Get a full CV
In order to retrieve information about project experiences you can load the full Master CV for the user. For this you will need the user's ID and Master CV ID, available through the Users API or as cv.user_id and cv.id in the search response.
Request
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>
Response body
The response contains the full CV data including each section.
The details for each CV section have been omitted here for brevity, see Section data models for their structure.
{
"_id": "CV ID",
"user_id": "USER ID",
"born_year": 1990,
"external_unique_id": "EUID",
"email": "EMAIL",
"name": "NAME",
"name_multilang": {
"no": "NAME",
"int": "NAME"
},
"title": { "int": "TITLE" },
"nationality": {},
"place_of_residence": { "int": "PLACE" },
"version": 67,
"default": true,
// CV Sections - see the documentation below for the formats
"certifications": [ ...full cv omitted for brevity ],
"courses": [ ...full cv omitted for brevity ],
"cv_roles": [ ...full cv omitted for brevity ],
"educations": [ ...full cv omitted for brevity ],
"highlighted_roles": [ ...full cv omitted for brevity ],
"key_qualifications": [ ...full cv omitted for brevity ],
"languages": [ ...full cv omitted for brevity ],
"project_experiences": [ ...full cv omitted for brevity ],
"technologies": [ ...full cv omitted for brevity ],
"work_experiences": [ ...full cv omitted for brevity ],
"custom_tag_ids": [],
"updated_at": "2022-12-08T04:41:07.456Z",
"created_at": "2016-12-01T13:57:29.903Z",
"owner_updated_at": "2022-10-07T18:21:25.000Z",
"owner_updated_at_significant": "2022-09-08T16:04:27.000Z"
// some fields omitted for brevity
}
Get CV metadata
The metadata endpoint returns information about when the CV was last updated and by whom. It can serve as a quick way to check if a CV or its sections have been updated since the last time you checked. This is faster than retrieving full CV data.
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/metadata
Response body
{
"_id": "<cv_id>",
"id": "<cv_id>",
"updated_ago": "N/A",
"updated_at": "datetime_string",
"owner_updated_at": "datetime_string",
"last_modified_by": {
"id": "<user_id>",
"name": "<user_name>"
}
}
Detailed version
If you pass in the query string detailed=true, the response will contain additional information.
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/metadata?detailed=true
Response body
{
"_id": "<cv_id>",
"id": "<cv_id>",
"updated_ago": "N/A",
"updated_at": "datetime_string",
"owner_updated_at": "datetime_string",
"owner_updated": {
"presentations": "datetime_string",
"publications": "datetime_string",
"project_experiences": "datetime_string"
},
"last_modified_by": {
"id": "<user_id>",
"name": "<user_name>"
}
}
Update CV fields
Request
PUT https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>
Request body
Only include the fields in the request body that you wish to change.
{
"cv": {
"navn": "NAME OF CV OWNER",
"born_year": "1990",
"name_multilang": { "int": "ENGLISH NAME", "no": "NORWEGIAN NAME" },
"title": { "int": "ENGLISH TITLE", "no": "NORWEGIAN TITLE" },
"telefon": "+012 367 8312",
"landline": "+012 367 8312",
"place_of_residence": "LOCATION"
}
}
CV sections
A CV has many section types, e.g. project experiences or certifications. The URL formats for reading, creating or updating a section is the same across all section types and only the request and response bodies will change according to the section type.
Some sections have sub-sections which use different URLs, see Project experience roles.
The valid section types are:
key_qualifications("Summary of qualifications" in the UI)educationswork_experiencesproject_experienceslanguagestechnologies("Skills categories" in the UI)certificationscoursespresentationsrecommendationspositionsblogs("Publications" in the UI)honors_awardsmentorings
Get a CV section
Request
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/<section_type>/<section_id>
Response body
The response body differs for each section type. See Section data models for the structure.
Create a CV section
Request
POST https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/<section_type>
Request body
The request body differs for each section type. See Section data models for the structure.
Update a CV section
Request
PUT https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/<section_type>/<section_id>
Request body
The request body differs for each section type. See Section data models for the structure.
Common section fields
Some fields are common to all section types, these are listed below.
| Field | Description |
|---|---|
starred |
Whether the section is highlighted in the CV. |
disabled |
Whether the section is disabled in the CV. |
version |
Automatically incremented each time the section is saved. |
external_unique_id |
A string field that must be unique across the sections of the CV. Intended to be used to store the ID from another system against the section in order to more easily build integrations. |
owner_updated_at |
When the section was last updated by the CV owner. |
created_at |
Timestamp of the creation date of the section. |
updated_at |
Timestamp of when the section was last updated. |
Section ordering
Most sections have an order field which determines the order which the sections are displayed in Flowcase and the order they are exported to Word, PDF or Powerpoint in.
The field can be any integer value and the sections are listed in ascending order. The order field does not have to be contiguous so gaps are ok as are duplicates. Note that certain server-side operations will rewrite the order of the sections to be contiguous (e.g. when changing the order via the UI).
Managing individual section records
Each section is represented as an array of individual section objects. While each section has its own distinct data model, you can interact with the records using the following set of example endpoints. A comprehensive list of supported sections and their corresponding data models is provided in Section data models.
Examples are based on the project_experiences section, but apply to all supported sections.
Get a single section record
Request
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>
Response body
{
"_id": "ID",
"area_amt": "740",
"area_unit": "km^2",
"customer": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_anonymized": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_description": {
"no": "CUSTOMER DESC",
"int": "CUSTOMER DESC"
},
"customer_value_proposition": {
"no": "CVP",
"int": "CVP"
},
"description": {
"no": "PROJECT DESC",
"int": "PROJECT DESC"
},
"disabled": false,
"extent_hours": "123",
"external_unique_id": "EUID",
"images": [
{
"id": "IMAGE ID",
"order": 0,
"caption": {
"no": "IMAGE CAPTION",
"int": "IMAGE CAPTION"
},
"image": {
"id": "IMAGE ID",
"url": "URL",
"scaled": {
"url": "URL"
},
"for_templates": {
"url": "IMAGE URL"
},
"for_projects": {
"url": "IMAGE URL"
},
"thumb": {
"url": "IMAGE URL"
},
"fit_thumb": {
"url": "IMAGE URL"
},
"small_thumb": {
"url": "IMAGE URL"
}
}
}
],
"industry": {
"no": "INDUSTRY",
"int": "INDUSTRY"
},
"long_description": {
"no": "LONG DESCRIPTION",
"int": "LONG DESCRIPTION"
},
"month_from": "12",
"month_to": "10",
"order": 14,
"percent_allocated": "100",
"project_experience_skills": [
{
"_id": "SKILL ID",
"base_duration_in_years": 0,
"offset_duration_in_years": 0,
"order": 1,
"proficiency": 3,
"tags": {
"no": "SKILL NAME",
"int": "SKILL NAME"
},
"total_duration_in_years": 0,
"version": 3
}
],
"project_extent_amt": "14000000",
"project_extent_currency": "usd",
"project_extent_hours": "2000",
"project_type": {
"int": "PROJECT TYPE"
},
"recently_added": false,
"roles": [
{
"_id": "ROLE ID",
"created_at": null,
"cv_role_id": "CV ROLE ID",
"disabled": false,
"diverged_from_master": false,
"long_description": {
"int": "ROLE LONG DESCRIPTION"
},
"name": {
"int": "ROLE NAME"
},
"order": 0,
"recently_added": false,
"starred": false,
"summary": {
"int": "ROLE SUMMARY"
},
"updated_at": "2018-10-24T16:36:53.235Z",
"version": 7
}
],
"starred": true,
"total_extent_amt": "200000000",
"total_extent_currency": "usd",
"total_extent_hours": "5000",
"updated_at": "2022-04-12T07:17:31.996Z",
"version": 217,
"year_from": "2010",
"year_to": "2012"
}
Create a section record
When creating a project experience only the fields you wish to populate need to be specified.
Request
POST https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/
Request body
Note the fields are wrapped in a project_experience object.
{
"project_experience": {
"area_amt": "740",
"area_unit": "km^2",
"customer": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_anonymized": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_description": {
"no": "CUSTOMER DESC",
"int": "CUSTOMER DESC"
},
"customer_value_proposition": {
"no": "CVP",
"int": "CVP"
},
"description": {
"no": "PROJECT DESC",
"int": "PROJECT DESC"
},
"disabled": false,
"extent_hours": "123",
"external_unique_id": "EUID",
"industry": {
"no": "INDUSTRY",
"int": "INDUSTRY"
},
"long_description": {
"no": "LONG DESCRIPTION",
"int": "LONG DESCRIPTION"
},
"month_from": "12",
"month_to": "10",
"order": 14,
"percent_allocated": "100",
"project_extent_amt": "14000000",
"project_extent_currency": "usd",
"project_extent_hours": "2000",
"project_type": {
"int": "PROJECT TYPE"
},
"recently_added": false,
"starred": true,
"total_extent_amt": "200000000",
"total_extent_currency": "usd",
"total_extent_hours": "5000",
"version": 3,
"year_from": "2010",
"year_to": "2012"
}
}
Update a section record
When updating a project experience you only need to provide the fields you wish to update but you must include the version field which has the value of the version when you read the data. If you don't provide this you will get a 409 error to indicate there is a conflict.
Request
PUT https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>
Request body
Note the fields are wrapped in a project_experience object.
{
"project_experience": {
"area_amt": "740",
"area_unit": "km^2",
"customer": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_anonymized": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_description": {
"no": "CUSTOMER DESC",
"int": "CUSTOMER DESC"
},
"customer_value_proposition": {
"no": "CVP",
"int": "CVP"
},
"description": {
"no": "PROJECT DESC",
"int": "PROJECT DESC"
},
"disabled": false,
"extent_hours": "123",
"external_unique_id": "EUID",
"industry": {
"no": "INDUSTRY",
"int": "INDUSTRY"
},
"long_description": {
"no": "LONG DESCRIPTION",
"int": "LONG DESCRIPTION"
},
"month_from": "12",
"month_to": "10",
"order": 14,
"percent_allocated": "100",
"project_extent_amt": "14000000",
"project_extent_currency": "usd",
"project_extent_hours": "2000",
"project_type": {
"int": "PROJECT TYPE"
},
"recently_added": false,
"starred": true,
"total_extent_amt": "200000000",
"total_extent_currency": "usd",
"total_extent_hours": "5000",
"version": 3,
"year_from": "2010",
"year_to": "2012"
}
}
Delete a section record
Request
DELETE https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>
Section data models
The data model for each section type is listed below. Comments in the examples mark the fields that appear in responses only.
key_qualifications
{
"key_qualification": {
"_id": "ID", // response only
"label": { "int": "ENGLISH", "no": "NORWEGIAN" },
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"tag_line": { "int": "ENGLISH", "no": "NORWEGIAN" },
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
educations
{
"education": {
"_id": "ID", // response only
"degree": { "int": "ENGLISH", "no": "NORWEGIAN" },
"description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month_from": "MONTH_NUM",
"month_to": "MONTH_NUM",
"school": { "int": "ENGLISH", "no": "NORWEGIAN" },
"year_from": "YEAR",
"year_to": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
work_experiences
{
"work_experience": {
"_id": "ID", // response only
"description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"employer": { "int": "ENGLISH", "no": "NORWEGIAN" },
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month_from": "MONTH_NUM",
"month_to": "MONTH_NUM",
"year_from": "YEAR",
"year_to": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
project_experiences
{
"project_experience": {
"area_amt": "740",
"area_unit": "km^2",
"customer": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_anonymized": {
"no": "CUSTOMER NAME",
"int": "CUSTOMER NAME"
},
"customer_description": {
"no": "CUSTOMER DESC",
"int": "CUSTOMER DESC"
},
"customer_value_proposition": {
"no": "CVP",
"int": "CVP"
},
"description": {
"no": "PROJECT DESC",
"int": "PROJECT DESC"
},
"disabled": false,
"extent_hours": "123",
"external_unique_id": "EUID",
"industry": {
"no": "INDUSTRY",
"int": "INDUSTRY"
},
"long_description": {
"no": "LONG DESCRIPTION",
"int": "LONG DESCRIPTION"
},
"month_from": "12",
"month_to": "10",
"order": 14,
"percent_allocated": "100",
"project_extent_amt": "14000000",
"project_extent_currency": "usd",
"project_extent_hours": "2000",
"project_type": {
"int": "PROJECT TYPE"
},
"recently_added": false,
"starred": true,
"total_extent_amt": "200000000",
"total_extent_currency": "usd",
"total_extent_hours": "5000",
"version": 3,
"year_from": "2010",
"year_to": "2012"
}
}
languages
{
"language": {
"_id": "ID", // response only
"level": { "int": "ENGLISH", "no": "NORWEGIAN" },
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
technologies
{
"technology": {
"_id": "ID", // response only
"uncategorized": true,
"category": { "int": "ENGLISH", "no": "NORWEGIAN" },
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
certifications
{
"certification": {
"_id": "ID", // response only
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month": "MONTH_NUM",
"month_expire": "MONTH_NUM",
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"organiser": { "int": "ENGLISH", "no": "NORWEGIAN" },
"year": "YEAR",
"year_expire": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
courses
{
"course": {
"_id": "ID", // response only
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month": "MONTH_NUM",
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"program": { "int": "ENGLISH", "no": "NORWEGIAN" },
"year": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
presentations
{
"presentation": {
"_id": "ID", // response only
"description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month": "MONTH_NUM",
"year": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
recommendations
{
"recommendation": {
"_id": "ID", // response only
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"recommender": { "int": "ENGLISH", "no": "NORWEGIAN" },
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
positions
{
"position": {
"_id": "ID", // response only
"description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"year_from": "YEAR",
"year_to": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
blogs
{
"blog": {
"_id": "ID", // response only
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month": "MONTH_NUM",
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"url": "STRING",
"year": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
honors_awards
{
"honors_award": {
"_id": "ID", // response only
"for_work": { "int": "ENGLISH", "no": "NORWEGIAN" },
"issuer": { "int": "ENGLISH", "no": "NORWEGIAN" },
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month": "MONTH_NUM",
"name": { "int": "ENGLISH", "no": "NORWEGIAN" },
"year": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
mentorings
{
"mentoring": {
"_id": "ID", // response only
"context": { "int": "ENGLISH", "no": "NORWEGIAN" },
"long_description": { "int": "ENGLISH", "no": "NORWEGIAN" },
"month_from": "MONTH",
"month_to": "MONTH",
"year_from": "YEAR",
"year_to": "YEAR",
"order": 0,
"starred": true,
"disabled": true,
"version": 1,
"external_unique_id": "STRING",
"owner_updated_at": "TIMESTAMP", // response only
"recently_added": true, // response only
"created_at": "TIMESTAMP", // response only
"updated_at": "TIMESTAMP" // response only
}
}
Project experience roles
The operations to create, read, update and delete a role within a project experience are slightly different than the other sections outlined above. Each role lives under a project experience, so its URL includes the project_experience_id. The ID of a role is the _id field in the response payload returned when you create a role.
Create a single role
Request
POST https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>/roles
Request body
Only name is required.
{
"role": {
"long_description": {
"no": "LONG DESCRIPTION"
},
"order": 0,
"origin_id": null,
"starred": false,
"summary": {
"no": "SUMMARY"
},
"name": {
// This field is required
"no": "ello"
}
}
}
Response body
{
"_id": "some id",
"created_at": "2023-05-26T14:44:58.708Z",
"cv_role_id": "some cv role id",
"disabled": false,
"diverged_from_master": false,
"long_description": {
"no": "LONG DESCRIPTION"
},
"modifier_id": null,
"order": 4,
"origin_id": null,
"recently_added": false,
"starred": false,
"summary": {
"no": "SUMMARY"
},
"updated_at": "2023-05-26T14:44:58.708Z",
"version": 1,
"name": {
"no": "ello"
}
}
Get a single role
Request
GET https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>/roles/<role_id>
Response body
{
"_id": "some id",
"created_at": "2023-05-26T14:44:58.708Z",
"cv_role_id": "some cv role id",
"disabled": false,
"diverged_from_master": false,
"long_description": {
"no": "LONG DESCRIPTION"
},
"modifier_id": null,
"order": 4,
"origin_id": null,
"recently_added": false,
"starred": false,
"summary": {
"no": "SUMMARY"
},
"updated_at": "2023-05-26T14:44:58.708Z",
"version": 1,
"name": {
"no": "ello"
}
}
Update a single role
Request
PUT https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>/roles/<role_id>
Request body
{
"role": {
"long_description": {
"no": "LONG DESCRIPTION"
},
"order": 0,
"origin_id": null,
"starred": false,
"summary": {
"no": "SUMMARY"
},
"name": {
"no": "ello world!"
}
}
}
Response body
{
"_id": "some id",
"created_at": "2023-05-26T14:44:58.708Z",
"cv_role_id": "some cv role id",
"disabled": false,
"diverged_from_master": false,
"long_description": {
"no": "LONG DESCRIPTION"
},
"modifier_id": null,
"order": 4,
"origin_id": null,
"recently_added": false,
"starred": false,
"summary": {
"no": "SUMMARY"
},
"updated_at": "2023-05-26T14:44:58.708Z",
"version": 1,
"name": {
"no": "ello world!"
}
}
Delete a single role
Request
DELETE https://<subdomain>.flowcase.com/api/v3/cvs/<user_id>/<cv_id>/project_experiences/<project_experience_id>/roles/<role_id>
The response is an empty HTTP 204 No Content.