The Jobs API exposes three endpoints for working with internship listings in UniLink. You can retrieve the full catalogue of postings, fetch a single offer by its ID, or — if you are authenticated as anDocumentation 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.
empresa account — publish a brand-new listing. Internally, requirements, benefits, and skills are stored as JSON strings in SQLite and are automatically parsed into arrays before being returned.
GET /api/jobs
Returns every job listing in the database, ordered byid ascending. This endpoint accepts no query parameters or request body.
Response
A JSON array of job objects. Each object contains the following fields:Auto-assigned primary key for the listing.
Job title, e.g.
"Asistente de Investigación — IA".Employer name and optional department, e.g.
"UNMSM · Ing. Sistemas".Human-readable city and modality string, e.g.
"Lima, Presencial".Whether the internship is internal to the university or external. One of
interna or externa.Work modality. One of
Presencial, Híbrido, or Remoto.Professional area of the role, e.g.
"Tecnología" or "Administración".Display string for the monthly stipend, e.g.
"S/ 1,200 / mes".Numeric value of the monthly salary in Peruvian soles, used for filtering and sorting.
Human-readable relative posting date, e.g.
"Hace 3 días".Number of days since the listing was published.
Application deadline in
YYYY-MM-DD format.Length of the internship, e.g.
"3 meses".Required hours per week.
Current listing status. One of
abierto, por_cerrar, or cerrado.Two-letter initials used for the company avatar, e.g.
"TC".Hex color code for the company avatar background, e.g.
"#4f46e5".Full plain-text description of the role and responsibilities.
List of candidate requirements, e.g.
["Cursando 6to semestre o más"].List of benefits offered, e.g.
["Constancia de prácticas"].Technical or soft skills expected, e.g.
["Python", "Machine Learning"].Number of students who have applied to this listing.
Email address of the empresa account that created the listing.
Example request
Example response
GET /api/jobs/:id
Returns the full details of a single job listing identified by its numericid.
Path parameter
The integer ID of the job listing to retrieve.
Response
Returns the matching job object (same shape as a single element fromGET /api/jobs) on success, or a 404 error if no listing exists with the given ID.
Present only on a 404 response. Value:
"Oferta no encontrada."Example request
Error response (404)
POST /api/jobs
Creates a new internship listing. The request must include the headerx-role: empresa; any other value — or omitting the header entirely — returns a 403 Forbidden error.
Request body
Job title for the listing.
Employer name and optional department, formatted as
"Name · Department".City and modality string shown in the feed card, e.g.
"Lima, Remoto".Internship type:
interna for university-published roles, externa for company-published roles.Work modality:
Presencial, Híbrido, or Remoto.Professional area of the role, e.g.
"Tecnología".Human-readable salary string, e.g.
"S/ 1,500 / mes".Numeric monthly salary in soles, used for filtering.
Application deadline in
YYYY-MM-DD format.Duration of the internship, e.g.
"3 meses".Weekly hour commitment.
Full description of the role and its responsibilities.
Array of candidate requirement strings.
Array of benefit strings offered to the intern.
Array of required or desired skills.
Response
Returns201 Created with the newly created job object, including the server-generated id.