Internship GPT
Internship GPT · GPT Actions
File Upload API
This API accepts file information, uploads it to a firebase database, and returns the link where a user can view the file.
POST /Uploads file information to the database.
原始 API 定义
{
"openapi": "3.0.0",
"info": {
"title": "File Upload API",
"description": "This API accepts file information, uploads it to a firebase database, and returns the link where a user can view the file.",
"version": "1.0.0"
},
"servers": [
{
"url": "https://us-central1-test-e633b.cloudfunctions.net/gpt-file-upload",
"description": "Main API server"
}
],
"paths": {
"/": {
"post": {
"operationId": "uploadFile",
"summary": "Uploads file information to the database.",
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"resume",
"cover_letter"
],
"description": "Type of the file being uploaded."
},
"name": {
"type": "string",
"description": "Description of the file."
},
"tailored": {
"type": "boolean",
"description": "Indicates if the file is tailored. If it's a cover_letter, it should always be true. If a regular resume, make this false. If it's a resume based off a job description, make it true."
},
"fileData": {
"oneOf": [
{
"$ref": "#/components/schemas/ResumeData"
},
{
"$ref": "#/components/schemas/CoverLetterData"
}
],
"discriminator": {
"propertyName": "type",
"mapping": {
"resume": "#/components/schemas/ResumeData",
"cover_letter": "#/components/schemas/CoverLetterData"
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "File information can now be viewed on OfferPilot",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"fileUrl": {
"type": "string",
"description": "The url where a user can view the compiled, uploaded file."
}
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"ResumeData": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"socials": {
"type": "array",
"items": {
"type": "string"
}
},
"objective": {
"type": "string",
"description": "A short, about 15 word statement about what job you want and who you are."
},
"education": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Education"
}
},
"work_experiences": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WorkExperience"
}
},
"projects": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Project"
}
},
"extras": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Extra"
}
}
}
},
"CoverLetterData": {
"type": "object",
"required": [
"name",
"letter"
],
"properties": {
"name": {
"type": "string"
},
"letter": {
"type": "string",
"description": "A ~260 word string letter that is a cover letter conveying why someone should land a position."
}
}
},
"Education": {
"type": "object",
"properties": {
"school_name": {
"type": "string"
},
"date_info": {
"type": "string"
},
"degree": {
"type": "string"
},
"major": {
"type": "string"
},
"gpa": {
"type": "string"
},
"location_info": {
"type": "string"
},
"relevant_coursework": {
"type": "string"
}
}
},
"WorkExperience": {
"type": "object",
"properties": {
"employer": {
"type": "string"
},
"job_title": {
"type": "string"
},
"location_info": {
"type": "string"
},
"date_info": {
"type": "string"
},
"bullets": {
"type": "array",
"description": "list with 2-3 elements which are each an about 20 word short sentence that starts with a past tense action verb about the described work experience; the bullet points should be of expert level quality and use strong Action Verbs and highlight the skills that are mentioned.",
"items": {
"type": "string"
}
}
}
},
"Project": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"date_info": {
"type": "string"
},
"bullets": {
"type": "array",
"description": "list with 2-3 elements which are each an about 20 word short sentence that starts with a past tense action verb about the described project; the bullet points should be of expert level quality and use strong Action Verbs and highlight the skills that are mentioned",
"items": {
"type": "string"
}
}
}
},
"Extra": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"info": {
"type": "string"
}
}
}
}
}
}