LiyaEngine Docs
Guides

Example Domain Walkthrough

A sample testing domain — 20 real intents, request/response schemas, and knowledge sources — used throughout these docs as the running example.

Dashboard

hiring is a fully built-out sample domain available for testing and learning. It is not the production domain LiyaEngine expects tenants to use for their own products. For production, create your own domains, intents, agents, workflows, and knowledge base from the dashboard or API.

The sample defines 20 intents covering the full talent lifecycle — from job description analysis and candidate screening to career coaching, interview preparation, and post-session coaching follow-up. The same patterns apply to any domain you build yourself; see Building a custom domain to create your own.

Call any intent with: POST /v1/run ({ "domain": "hiring", "intent": "...", "input": {...} }), or the equivalent path form POST /v1/hiring/{intent}.


Intents

Recruiter intents

IntentEndpointRequired inputs
resume-analysis/v1/hiring/resume-analysisresume
job-fit-analysis/v1/hiring/job-fit-analysisresume, job_description
candidate-prescreen/v1/hiring/candidate-prescreenprofile, job_description
candidate-scoring/v1/hiring/candidate-scoringprofile, job_description
jd-analysis/v1/hiring/jd-analysisjob_description
knockout-question-generation/v1/hiring/knockout-question-generationjob_description
interview-question-generation/v1/hiring/interview-question-generationprofile, job_description

Candidate intents

IntentEndpointRequired inputs
resume-improvement/v1/hiring/resume-improvementprofile
cover-letter-generation/v1/hiring/cover-letter-generationprofile, job_description
intro-script-generation/v1/hiring/intro-script-generationprofile, job_description
career-assessment/v1/hiring/career-assessmentprofile
skill-gap-analysis/v1/hiring/skill-gap-analysisprofile
career-path-planning/v1/hiring/career-path-planningprofile
career-transition-planning/v1/hiring/career-transition-planningprofile, career_goals
mock-interview/v1/hiring/mock-interviewprofile
coaching-session/v1/hiring/coaching-session—
general-chat/v1/hiring/general-chat—

Coaching lifecycle intents

IntentEndpointRequired inputs
career-check-in/v1/hiring/career-check-in—
coaching-brief/v1/hiring/coaching-brief—
coaching-followup/v1/hiring/coaching-followup—

Request structure

All hiring intents share the same top-level request envelope:

{
  "input": {
    "user_id": "usr_123",           // required — your platform's user ID
    "message": "...",               // optional free-text message / question
    "resume": { ... },              // ResumeInput — see below
    "profile": { ... },             // ProfileInput
    "job_description": { ... },     // JobDescriptionInput
    "career_goals": { ... },        // CareerGoalsInput
    "interview_context": { ... }    // InterviewContextInput
  },
  "session_id": "ses_abc",          // optional — continue an existing session
  "preferences": {                  // optional request options
    "language": "en",
    "include_confidence": true,
    "include_reasoning": false,
    "max_tokens": 4000
  }
}

Common input schemas

ResumeInput

{
  "text": "John Smith\nSoftware Engineer...",   // required, min 100 chars
  "contact_section": "...",                      // optional parsed sections
  "experience_section": "...",
  "education_section": "...",
  "skills_section": "...",
  "file_type": "pdf",                            // "pdf" | "docx" | "txt" | "html"
  "original_filename": "john_smith_resume.pdf"
}

ProfileInput

{
  "name": "Jane Doe",
  "title": "Senior Software Engineer",
  "years_of_experience": 8,
  "experience_level": "senior",                  // "entry" | "mid" | "senior" | "lead" | "executive"
  "skills": ["TypeScript", "React", "Node.js"],
  "work_experiences": [
    {
      "title": "Senior Engineer",
      "company": "Acme Corp",
      "start_date": "2020-01-01",
      "end_date": null,                          // null = current role
      "achievements": ["Led migration to microservices, reducing latency by 40%"]
    }
  ],
  "educations": [
    {
      "degree": "BSc",
      "field": "Computer Science",
      "institution": "MIT",
      "graduation_year": 2016
    }
  ]
}

JobDescriptionInput

{
  "title": "Staff Engineer",
  "description": "We are looking for...",        // required, min 50 chars
  "company_name": "Stripe",
  "required_skills": ["Go", "Kubernetes"],
  "required_experience_years": 7,
  "work_arrangement": "hybrid",                  // "remote" | "hybrid" | "onsite"
  "employment_type": "full_time"
}

CareerGoalsInput

{
  "target_role": "Engineering Manager",
  "timeline": "1_year",    // "immediate" | "3_months" | "6_months" | "1_year" | "2_years" | "exploratory"
  "remote_preference": "hybrid_ok",
  "priorities": ["growth", "leadership"]         // "compensation" | "growth" | "work_life_balance" | "learning" | "impact" | "leadership" | "stability" | "flexibility"
}

Response structure

{
  "success": true,
  "data": {
    "output": { ... },              // intent-specific structured output
    "session_id": "ses_abc",
    "message_id": "msg_xyz"
  },
  "metadata": {
    "intent": "resume_analysis",
    "domain": "hiring",
    "model_used": "gpt-4o-mini",
    "tokens_used": 1240,
    "cost_usd": 0.00062,
    "latency_ms": 820,
    "cached": false
  },
  "usage": {
    "requests_remaining": 847,      // null if unlimited
    "tokens_remaining": 998760
  }
}

Knowledge sources

The hiring sample domain ships with system-managed labor-market source types — ingested from O*NET and BLS, not tenant-uploaded:

Source typeUse case
onet_occupation_profileOccupation profile (skills, tasks, activities) grounding for resume/skill-gap/career intents
bls_wage_dataWage benchmarks by occupation
bls_growth_projectionsOccupation growth/demand outlook

To enrich hiring with your own data (e.g. internal hiring policies or a resume-template library), create a collection and attach it to the hiring domain the same way you would for a custom domain — see Knowledge Sources.

On this page