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 two distinct profile types — student and company — each served by its own API endpoint and rendered by a shared ProfilePage component that adapts its layout based on the active role. Students access a professional profile that feeds directly into the CV export feature; companies display a recruiter card and a list of the offers they have published. Both types share the same /profile route and /profile/edit edit form, which branches its fields depending on the logged-in role.

Student profile

The student profile is loaded from GET /api/profile/student on application mount and held in the global AppDataContext.

Fields

FieldTypeDescription
namestringFull name
careerstringDegree programme, e.g. "Ingeniería de Sistemas"
facultystringFaculty name, e.g. "Ingeniería de Sistemas e Informática"
semesterstringCurrent semester, e.g. "VIII ciclo"
gpastringGrade point average, e.g. "16.8"
emailstringInstitutional email
phonestringContact number
locationstringCity, e.g. "Lima, Perú"
biostringShort professional bio
skillsstring[]Technical and soft skills
languagesobject[]{ lang, level } pairs, e.g. { lang: "Inglés", level: "B2" }
certificationsobject[]{ name, issuer, year }
experienceobject[]{ id, role, org, period, desc }
educationobject{ degree, university, years }

Editing the student profile

Navigate to /profile/edit to open the edit form. The following fields are writable in the current prototype:
  • Name, career, faculty, semester, GPA
  • Email, phone, location
  • Bio (short professional summary)
  • Skills (entered as a comma-separated list; split and stored as a JSON array)
Experience, education, certifications, and languages are read-only in the current prototype. They are seeded once by the backend and displayed on the profile and CV pages, but the edit form does not expose inputs for them yet.
Saving the form calls PUT /api/profile/student and updates the global state immediately — no page reload is needed.

Company profile

The company profile is loaded from GET /api/profile/company. It represents the recruiter account rather than a full company entity.

Fields

FieldTypeDescription
contactNamestringRecruiter’s full name
rolestringRecruiter’s job title, e.g. "Talent Acquisition Lead"
companyNamestringCompany name
industrystringIndustry sector, e.g. "Tecnología"
companyDescriptionstringShort company overview
websitestringCompany website URL
emailstringContact email
phonestringContact phone
locationstringCity
biostringShort recruiter bio
skillsstring[]Recruiter skills
experienceobject[]{ id, role, org, period, desc }
educationobject{ degree, university, years }

Editing the company profile

Company accounts access the same /profile/edit route. The form branches to display company-specific fields: contact name, role, company name, industry, company description, website, email, phone, location, recruiter bio, and skills. Saving calls PUT /api/profile/company and immediately reflects the updated data on the profile page.

Profile page sections

The profile page (/profile) renders the following cards depending on role:

Student view

  • Sobre mí — bio text
  • Habilidades — skill tags
  • Mis postulaciones — list of submitted applications with current status
  • Experiencia — work experience entries
  • Educación — degree and university

Company view

  • Sobre la empresa — company description
  • Sobre mí — recruiter bio
  • Habilidades — recruiter skills
  • Ofertas publicadas — job listings created by this account
  • Experiencia — recruiter experience entries
  • Educación — recruiter education
Only one student profile (id = 1) and one company profile (id = 1) exist in the database. Multi-user support — where multiple students or multiple company accounts each have their own profile row — is not implemented in this prototype. All student operations operate on the single seeded student record, and all company operations operate on the single seeded company record.

API reference

See the API — Profiles reference for endpoint details, request bodies, and response schemas for:
  • GET /api/profile/student
  • PUT /api/profile/student
  • GET /api/profile/company
  • PUT /api/profile/company

Build docs developers (and LLMs) love