MarqueLead Careers Portal
ACTIONPremium careers & application portal for MarqueLead — job listings, Typeform-style application flow, and full admin panel for managing jobs, questions, and applicants. Dark/gold aesthetic inspired by consulting.com.
Endpoints
· 28GET/api/jobs/:slug/questionsGet application questions for a specific job (shared + job-specific)
GET/apply/:slugTypeform-style application flow with one question per step
GET/api/jobsJSON list of active jobs with id, title, slug, department, location, type
POST/api/applicationsSubmit a job application with answers to questions
Input Schema
{
"type": "object",
"required": [
"jobId",
"answers"
],
"properties": {
"jobId": {
"type": "string",
"description": "Job ID to apply for"
},
"answers": {
"type": "object",
"description": "Map of questionId to answer string"
}
}
}GET/adminAdmin login page with password field
POST/admin/loginAdmin login — verifies password against SHA-256 hash and sets session cookie
Input Schema
{
"type": "object",
"required": [
"password"
],
"properties": {
"password": {
"type": "string",
"description": "Admin password"
}
}
}DELETE/admin/api/jobs/:idDelete a job listing
GET/jobs/:slugFull job detail page with description, responsibilities, requirements, and apply CTA
GET/Careers landing page with hero section and grid of active job cards
DELETE/admin/api/questions/:idDelete an application question
PUT/admin/api/applications/:id/notesUpdate admin notes on an application
Input Schema
{
"type": "object",
"required": [
"notes"
],
"properties": {
"notes": {
"type": "string",
"description": "Admin notes text"
}
}
}GET/admin/dashboardAdmin dashboard with stats cards and quick links
POST/admin/api/jobs/reorderReorder jobs by providing an ordered array of job IDs
Input Schema
{
"type": "object",
"required": [
"orderedIds"
],
"properties": {
"orderedIds": {
"type": "array",
"items": {
"type": "string"
}
}
}
}POST/admin/api/questions/reorderReorder questions by providing an ordered array of question IDs
Input Schema
{
"type": "object",
"required": [
"orderedIds"
],
"properties": {
"orderedIds": {
"type": "array",
"items": {
"type": "string"
}
}
}
}GET/admin/logoutClear session cookie and redirect to admin login
GET/admin/jobsAdmin jobs management page with sortable table and CRUD modals
GET/admin/questionsAdmin questions management page grouped by section
GET/admin/applicationsAdmin applications page with filter bar, status tabs, and sortable table
POST/admin/api/jobsCreate a new job listing
Input Schema
{
"type": "object",
"required": [
"title",
"department",
"description"
],
"properties": {
"type": {
"type": "string"
},
"title": {
"type": "string"
},
"location": {
"type": "string"
},
"is_active": {
"type": "integer"
},
"department": {
"type": "string"
},
"description": {
"type": "string"
},
"requirements": {
"type": "string"
},
"salary_range": {
"type": "string"
},
"responsibilities": {
"type": "string"
}
}
}POST/admin/api/questionsCreate a new application question
Input Schema
{
"type": "object",
"required": [
"question_text"
],
"properties": {
"options": {
"type": "string"
},
"required": {
"type": "integer"
},
"question_text": {
"type": "string"
},
"question_type": {
"type": "string"
},
"section_label": {
"type": "string"
}
}
}GET/admin/applications/:idApplication detail page with applicant info, questions with answers, status and notes tools
PUT/admin/api/jobs/:idUpdate an existing job listing with partial JSON body
PUT/admin/api/questions/:idUpdate an application question
PUT/admin/api/applications/:id/statusUpdate application status (new, reviewed, shortlisted, rejected, hired)
Input Schema
{
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"type": "string",
"description": "New status value"
}
}
}POST/admin/api/change-passwordAdmin change password endpoint — validates current password, updates hash in admin_settings
Input Schema
{
"type": "object",
"required": [
"current_password",
"new_password",
"confirm_password"
],
"properties": {
"new_password": {
"type": "string",
"description": "New password (min 4 chars)"
},
"confirm_password": {
"type": "string",
"description": "Must match new_password"
},
"current_password": {
"type": "string",
"description": "Current admin password"
}
}
}POST/api/applications/:id/uploadUpload a file for an application — validates file type against question config, max 20MB, saves to ./uploads/
Input Schema
{
"type": "object",
"required": [
"questionId",
"file",
"uploadToken"
],
"properties": {
"file": {
"type": "string",
"format": "binary",
"description": "The file to upload"
},
"questionId": {
"type": "string",
"description": "Question ID for the file-type question"
},
"uploadToken": {
"type": "string",
"description": "Upload token from create application response"
}
}
}GET/uploads/:applicationId/:fileNameServe uploaded files with correct Content-Type and Content-Disposition inline
Input Schema
{
"type": "object",
"properties": {
"fileName": {
"type": "string",
"description": "Stored file name"
},
"applicationId": {
"type": "string",
"description": "Application UUID"
}
}
}GET/api/applications/:id/filesList all uploaded files for an application — returns id, originalName, url, mimeType, fileSize, questionId
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Application UUID"
}
}
}Similar ACTION Pieces
facebook-ads-manager
Facebook Ads API manager with OAuth — list campaigns, get insights, ad account info, and ads with creative details. Login to any Facebook/Instagram account.
Shared Terminal
Full-featured web terminal with Node.js, Python, Deno, git, and build tools — running in a Podman container with Ubuntu 24.04
Coolify Logs Watcher
Polls Coolify API for application logs, stores in SQLite, exposes search endpoints for support email triage. Monitors free-copier-py, free-copier-express, and free-copier-next runtime logs. Used by the Events pipeline (Sydney) to find relevant errors when drafting support responses.