Skip to content
HRTEQDocs
Documentation API

DocsGet started

Quickstart

Provision an agency workspace, understand the DMW-aligned defaults that are seeded for you, and take one applicant from intake to a live pipeline card.

A new workspace is not an empty one. Provisioning seeds the whole DMW-aligned operating vocabulary — stages, document types, checklist items, the fee catalog and a set of automation rules — so the first applicant you type in already has a pipeline to move through. Everything seeded is per-agency data and editable; none of it is hard-coded behaviour.

Create the workspace#

Signing up creates the organization and its first OWNER user in one step. The owner is the only role with access to the subscription.

  1. Provide the agency details

    Agency name, your DMW licence number, the owner name and email, and a password. The API validates the password against a policy and returns fieldErrors.password describing anything missing rather than a generic rejection.

  2. Accept the terms

    acceptTerms must be literally true. The request is rejected outright otherwise — this is a consent record, not a checkbox.

  3. Sign in on the staff surface

    Log in with surface: "STAFF". The same email address can exist independently on the applicant and employer surfaces, so the surface is part of the identity, not a preference.

Terminal
curl -X POST "$API_URL/v1/auth/signup" \
  -H "Content-Type: application/json" \
  -d '{
    "agencyName": "Pacific Crest Manpower Services",
    "dmwLicenseNo": "POEA-123-LB-456789-R",
    "ownerName": "Ana Reyes",
    "ownerEmail": "ana@pacificcrest.ph",
    "contactPhone": "+63285551234",
    "password": "...",
    "confirmPassword": "...",
    "acceptTerms": true
  }'

# 201 { "ok": true, "data": { "slug": "pacific-crest-manpower-services" } }
The web app does not call this endpoint. Today /signup in the browser renders the login screen. Workspaces are provisioned through the API or by an operator. If you are evaluating HRTEQ, ask us to provision one for you.

What gets seeded#

Provisioning runs seedOrganizationDefaults, which is idempotent — running it again will not duplicate rows. Every item below belongs to your organization alone.

SeededCountWhat it is forReference
Stage definitions2216 active stages from Lead to Contract Completed, plus 6 terminal stages, each with entry requirements and an owning role.Stage reference
Document types27Applicant-level and application-level documents, each flagged for expiry tracking and portal upload.Document types
Checklist items1916 operational items plus 3 role sign-offs that ROLE_SIGNOFF requirements resolve to.Stage reference
Fee items17Worker-collectible documentation costs, the restricted placement fee, and employer-billable items in USD.Fees and payments
Automation rules10Routing on stage change, expiry warnings, departure countdowns, and a stale-application nudge.Automation rules

Set the organization record#

A handful of fields on the organization affect compliance and presentation. Fill them in before your first intake.

dmwLicenseNo and licenseExpiresAt
Your licence number and its expiry. Keep the expiry current — it is the agency-level equivalent of a document that must not lapse.
timezone
Defaults to Asia/Manila. Every scheduled sweep runs in this timezone, so a wrong value shifts your expiry scans and morning digest.
currency
Defaults to PHP. Worker charges are posted in it; employer-billable fee items are seeded in USD independently.
brandColor and careersIntro
Presentation for the published job board. They do not affect the pipeline.

Take one applicant through#

The fastest way to understand the model is to walk one person through the first few stages and watch the gate refuse you.

  1. Create the applicant

    Applicants → Add applicant. First and last name plus either a mobile number or an email. Data privacy consent is recorded at creation and cannot be skipped. See Applicants.

  2. Endorse them to a position

    An applicant on their own has no stage. Creating an application against a JobOrderPosition is what puts a card on the board at the LEAD stage. See Core concepts.

  3. Try to move it to Screening

    Screening requires a contact number on file and a verified résumé. If the résumé is not uploaded and verified, the move is refused with 409 GATE_BLOCKED and the exact unmet requirements. That refusal is the product working.

  4. Upload and verify the résumé

    Upload it on the applicant, then verify it in the Documents queue. A document only satisfies a requirement once its status is VERIFIED — and, if the type tracks expiry, only while it is unexpired.

  5. Watch it advance

    When the last requirement on the immediate next stage is satisfied, the application advances on its own and the move is recorded as application.stage_advanced. See Stage gates.

Getting the rest of the team in#

There is no invite flow yet. Roles and their permissions are fully implemented and enforced on the server, but no screen or endpoint creates a second staff user or changes a role. Subscription.seats exists and is not enforced. Today additional staff accounts come from a seeded or operator-provisioned database. Read Roles and permissions so the model is clear before you plan around it.

Where to go next#

Was this page helpful?