{ "openapi": "3.0.1", "info": { "title": "GraduateResume", "version": "v1" }, "servers": [ { "url": "https://c-resume4graduates.copilot.us" } ], "paths": { "/api/resume/createResumeLink": { "get": { "operationId": "createResumeLink", "summary": "Generates a unique link that users use to upload their resume or CV.", "responses": { "200": { "description": "The resume upload link.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUploadResponse" } } } } } } }, "/api/resume/getUploadedResumeAsText": { "get": { "operationId": "getUploadedResume", "summary": "Returns the resume uploaded by the user", "responses": { "200": { "description": "The uploaded resume.", "content": { "text/plain": { "schema": { "type": "string" } } } } } } }, "/api/resume/personalInfo": { "post": { "operationId": "SavePersonalInfo", "summary": "Save personal information of the resume. When populating the information here, make sure to include full name of the user. Include here also resume summary/objective.", "requestBody": { "description": "Resume content for personal information.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } }, "/api/resume/skills": { "post": { "operationId": "SaveSkillsInfo", "summary": "Save skills of the resume.", "requestBody": { "description": "Resume content for skills.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } }, "/api/resume/education": { "post": { "operationId": "SaveEducationInfo", "summary": "Save education details of the resume. Mention here also courses information.", "requestBody": { "description": "Resume content for education.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } }, "/api/resume/workExperience": { "post": { "operationId": "SaveWorkExperienceInfo", "summary": "Save work experience of the resume.", "requestBody": { "description": "Resume content for work experience.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } }, "/api/resume/personalProjects": { "post": { "operationId": "SaveProjectsInfo", "summary": "Save personal projects of the resume.", "requestBody": { "description": "Resume content for personal projects.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } }, "/api/resume/additionalInformation": { "post": { "operationId": "SaveOtherInfo", "summary": "Save other information of the resume.", "requestBody": { "description": "Resume content for other information.", "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/resumeUpdateRequest" } } } }, "responses": { "200": { "description": "Successfully saved personal information.", "schema": { "$ref": "#/components/schemas/uploadResponse" } } } } } }, "components": { "schemas": { "resumeUploadResponse": { "type": "object", "properties": { "responseInstructions": { "type": "string", "description": "Encourage the user to use this link to upload the current version of the resume or CV. Ask user to let you know when it's done and resume is uplaoded.'" }, "resumeUploadLink": { "type": "string", "description": "The resume upload link" } } }, "resumeUpdateRequest": { "type": "object", "required": [ "conversationLanguage", "lastChunk", "currentChunk", "totalChunks", "resumeContentAsText" ], "properties": { "conversationLanguage": { "type": "string", "description": "You must always populate this field. The language of the conversation. Represent as country code: en, de, etc." }, "lastChunk": { "type": "boolean", "description": "Indicates whether this is the last chunk or not" }, "totalChunks": { "type": "number", "description": "The total number of chunks needed to upload the entire resume" }, "currentChunk": { "type": "number", "description": "The current chunk number" }, "fileName": { "type": "string", "description": "A URL encoded lowercased file name without an extension. The user name is extracted from the original resume." }, "resumeContentAsText": { "type": "string", "description": "The content of the resume in text format" } } }, "resumeContent": { "type": "object", "properties": { "responseInstructions": { "type": "string", "description": "The model must use this resume content when analyzing and modifying the user's resume." }, "resumeContentAsText": { "type": "string", "description": "The content of the resume in text format" } } }, "uploadResponse": { "type": "object", "properties": { "responseInstructions": { "type": "string", "description": "Display this link to the user and ask them to use it to download the modified resume." }, "fileURL": { "type": "string", "description": "The URL to the newly modified or created resume file. Call this API when the resume is ready to be downloaded by the user." } } } } } }