Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/DincaAlex/unilink/llms.txt

Use this file to discover all available pages before exploring further.

UniLink maintains exactly one student profile and one company profile. Rather than requiring user IDs in the URL, all four endpoints implicitly operate on the fixed record with id = 1 in their respective database tables. This keeps client code simple for the current single-user prototype. Fields that hold structured data (skills, languages, certifications, experience, education) are stored as JSON in SQLite and returned as parsed arrays and objects.

GET /api/profile/student

Returns the full student profile object for the single registered student. This endpoint accepts no query parameters or request body.

Response

id
number
Always 1 in this prototype.
name
string
Full name of the student.
career
string
Degree programme, e.g. "Ingeniería de Sistemas".
faculty
string
Faculty name, e.g. "Facultad de Ingeniería de Sistemas".
semester
string
Current semester, e.g. "7mo semestre".
gpa
string
Grade point average as a display string, e.g. "16.5".
email
string
Institutional email address.
phone
string
Contact phone number.
location
string
City and country, e.g. "Lima, Perú".
bio
string
Short personal biography.
skills
string[]
Array of skill strings, e.g. ["React", "Node.js", "Python"].
languages
array
Array of language objects, each with lang (string) and level (string) fields — e.g. [{"lang": "Español", "level": "Nativo"}].
certifications
array
Array of certification objects with name, issuer, and year fields.
experience
array
Array of experience entries, each containing id, role, org, period, and desc.
education
object
Single education record with degree, university, and years fields.
savedJobs
number[]
Array of job IDs the student has bookmarked.

Example request

curl http://localhost:3001/api/profile/student

Example response

{
  "id": 1,
  "name": "Carlos Mendoza",
  "career": "Ingeniería de Sistemas",
  "faculty": "Facultad de Ingeniería de Sistemas",
  "semester": "7mo semestre",
  "gpa": "16.5",
  "email": "admin@unmsm.edu.pe",
  "phone": "+51 987 654 321",
  "location": "Lima, Perú",
  "bio": "Estudiante apasionado por el desarrollo web.",
  "skills": ["React", "Node.js", "Python"],
  "languages": [{"lang": "Español", "level": "Nativo"}],
  "certifications": [{"name": "AWS Cloud Practitioner", "issuer": "Amazon", "year": 2024}],
  "experience": [{"id": 1, "role": "Practicante Dev", "org": "RENIEC", "period": "2024", "desc": "Desarrollo de módulos internos."}],
  "education": {"degree": "Ingeniería de Sistemas", "university": "UNMSM", "years": "2020 – actualidad"},
  "savedJobs": [2, 5]
}

PUT /api/profile/student

Updates the editable fields of the student profile and returns the full updated record.
Only the basic contact and academic fields listed below can be updated through this endpoint. Structured fields — experience, education, certifications, and languages — are read-only in the current prototype and must be edited directly in the database if changes are needed.

Request body

name
string
required
Student’s full name.
career
string
required
Degree programme name.
faculty
string
required
Faculty name.
semester
string
required
Current semester as a display string, e.g. "7mo semestre".
gpa
string
required
Grade point average as a string.
email
string
required
Institutional email address.
phone
string
required
Contact phone number.
location
string
required
City and country.
bio
string
required
Short personal biography.
skills
string[]
required
Array of skill strings to replace the current list.

Response

Returns the full updated student profile object (same shape as GET /api/profile/student).

Example request

curl -X PUT http://localhost:3001/api/profile/student \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Carlos Mendoza",
    "career": "Ingeniería de Sistemas",
    "faculty": "Facultad de Ingeniería de Sistemas",
    "semester": "7mo semestre",
    "gpa": "16.5",
    "email": "admin@unmsm.edu.pe",
    "phone": "+51 987 654 321",
    "location": "Lima, Perú",
    "bio": "Estudiante apasionado por el desarrollo web.",
    "skills": ["React", "Node.js", "Python"]
  }'

GET /api/profile/company

Returns the full profile of the single registered company. This endpoint accepts no query parameters or request body.

Response

id
number
Always 1 in this prototype.
contactName
string
Full name of the company contact person.
role
string
Job title of the contact, e.g. "Talent Acquisition Manager".
companyName
string
Legal name of the company.
industry
string
Industry sector, e.g. "Recursos Humanos".
companyDescription
string
Short description of the company and its mission.
website
string
Company website URL.
initials
string
Two-letter initials used for the company avatar.
color
string
Hex color code for the avatar background.
email
string
Company contact email address.
phone
string
Company phone number.
location
string
City and country.
bio
string
Short public bio shown on the company profile card.
skills
string[]
Array of skill or competency strings associated with the company or recruiter.
languages
array
Array of language objects (same shape as the student profile).
certifications
array
Array of certification objects (same shape as the student profile).
experience
array
Array of experience entries for the recruiter (same shape as the student profile).
education
object
Education record for the recruiter (same shape as the student profile).

Example request

curl http://localhost:3001/api/profile/company

Example response

{
  "id": 1,
  "contactName": "María Fernández",
  "role": "Talent Acquisition Manager",
  "companyName": "TalentHub Perú",
  "industry": "Recursos Humanos",
  "companyDescription": "Empresa líder en reclutamiento tech.",
  "website": "https://talenthub.pe",
  "initials": "TH",
  "color": "#0ea5e9",
  "email": "maria.fernandez@talenthub.pe",
  "phone": "+51 1 234 5678",
  "location": "Lima, Perú",
  "bio": "Conectamos talento universitario con empresas.",
  "skills": ["Reclutamiento", "Entrevistas técnicas"],
  "languages": [],
  "certifications": [],
  "experience": [],
  "education": {}
}

PUT /api/profile/company

Updates the editable fields of the company profile and returns the full updated record.
Only one company profile exists (id = 1). Multi-company support is not implemented in this prototype.

Request body

contactName
string
required
Full name of the company contact.
role
string
required
Job title of the contact person.
companyName
string
required
Legal name of the company.
industry
string
required
Industry sector.
companyDescription
string
required
Short description of the company.
website
string
required
Company website URL.
email
string
required
Contact email address.
phone
string
required
Contact phone number.
location
string
required
City and country.
bio
string
required
Short public bio for the company profile.
skills
string[]
required
Array of skill or competency strings to replace the current list.

Response

Returns the full updated company profile object (same shape as GET /api/profile/company).

Example request

curl -X PUT http://localhost:3001/api/profile/company \
  -H "Content-Type: application/json" \
  -d '{
    "contactName": "María Fernández",
    "role": "Talent Acquisition Manager",
    "companyName": "TalentHub Perú",
    "industry": "Recursos Humanos",
    "companyDescription": "Empresa líder en reclutamiento tech.",
    "website": "https://talenthub.pe",
    "email": "maria.fernandez@talenthub.pe",
    "phone": "+51 1 234 5678",
    "location": "Lima, Perú",
    "bio": "Conectamos talento universitario con empresas.",
    "skills": ["Reclutamiento", "Entrevistas técnicas"]
  }'

Build docs developers (and LLMs) love