Đi đến nội dung chính
D2 Group
← Automation case studies

Automation case study · AI application architecture

Một webhook. Ba capability. AI chỉ xuất hiện ở nơi bài toán thực sự cần AI.

AI Resume Builder là workflow-backed application prototype xoay quanh một POST /resume contract ổn định. n8n giữ routing, AI/tool execution, file conversion và delivery ở backend để frontend mỏng, dễ thay và có thể reuse cùng operating logic.

Proof summary

Đọc evidence trước khi đọc outcome.

Evidence type

19 nodes · 3 flows · 3 specialized AI tools

Evidence status

Workflow-backed application prototype

Measurement / operating scope

Webhook-first routing, specialized AI tools, structured outputs, PDF rendering, email delivery and evaluation

Observed state

The workflow-backed prototype demonstrates the application contract and three bounded capabilities.

Claim boundary

No production adoption, resume-quality lift, job-placement impact, throughput, uptime or commercial outcome is claimed from the prototype.

Proof reviewed

2026-09-25

Direct answer

Case này thực sự chứng minh điều gì?

Nó chứng minh một pattern có thể tái sử dụng cho AI-enabled application: define client contract trước, route known intent bằng deterministic logic, giới hạn AI trong specialized execution, constrain model output và giữ credentials cùng external side effects phía sau orchestration boundary.

Application boundary

Client → webhook contract → n8n orchestration → standardized result.

Interface được tách khỏi workflow internals. Một client khác có thể reuse backend nếu gửi cùng HTTP contract thay vì phải copy prompt, credentials, PDF conversion và delivery logic sang từng frontend.

01

Thin client

Frontend chỉ thu input, upload/download state và gọi HTTP contract; AI credentials, file conversion và orchestration ở backend workflow.

02

Deterministic router

body.flow đã khai báo create, download hoặc check nên Switch router xử lý intent này bằng deterministic logic thay vì hỏi model đoán điều đã biết.

03

Specialized execution

Mỗi branch chỉ gọi AI, file processing hoặc external integration cần cho operation tương ứng, giảm coupling giữa các capability.

04

Standardized result

HTML resume, PDF delivery và evaluation report đi qua output contract có cấu trúc thay vì trả agent response tự do cho application.

Three application flows

Ba operation khác nhau phía sau cùng một API surface.

FLOW 01

Create

Input

Candidate profile · target role/JD · tone · template

Process

Resume Builder → validate template → Classic / Modern / Creative → structured output

Output

Complete HTML resume

FLOW 02

Download

Input

Approved HTML + user identity/email

Process

HTML → file → Gotenberg → PDF render → Gmail

Output

Rendered PDF delivered by email

FLOW 03

Check

Input

Uploaded resume · base64 PDF

Process

Base64 → file → extract PDF text → Resume Evaluation agent

Output

Structured evaluation report

AI boundary

Probabilistic ở bên trong. Deterministic ở bên ngoài.

Điểm quan trọng của case không phải “dùng AI ở mọi bước”, mà là biết AI nên dừng ở đâu. Routing, rendering và delivery là controlled operations; generation và evaluation mới là interpretation/generation tasks.

Known intent — Deterministic

Create/download/check đã nằm trong request contract nên routing là rule-based. Không dùng AI để suy một intent mà caller đã khai báo rõ.

Template generation — AI-assisted

Resume Builder orchestrator dùng AI ở nơi generation thực sự cần language reasoning, rồi delegate sang Classic, Modern hoặc Creative specialist tool.

Output shape — Constrained

Structured output/parser boundary ép generation về complete HTML contract mà downstream application có thể xử lý ổn định hơn free-form text.

PDF rendering — Deterministic

Gotenberg chịu trách nhiệm render approved HTML thành PDF; model không sở hữu side effect tạo file cuối.

Email delivery — Deterministic

Gmail delivery nằm ở backend workflow và dùng backend-side credentials; model không quyết định recipient/delivery side effect một cách tự do.

Resume evaluation — AI-assisted

Extracted resume text được đưa vào agent chuyên đánh giá, nơi interpretation có giá trị; result vẫn cần output contract rõ.

Output contracts

AI output chỉ hữu ích cho application khi downstream biết chính xác mình sẽ nhận gì.

01

Create contract

Return complete HTML resume đủ để application preview hoặc chuyển tiếp sang download flow, thay vì một đoạn prose chưa định dạng.

02

Download contract

Input là approved HTML; output operational là rendered PDF được attach và gửi qua Gmail theo workflow branch.

03

Check contract

Resume Evaluation trả structured report gồm criterion-level assessment, overall score và prioritized recommendations theo architecture evidence.

04

Error contract

Invalid flow, malformed payload, unsupported template hoặc file-processing failure nên được xử lý như explicit application state thay vì để model response che mất lỗi contract.

Published evidence

Những gì workflow export thực sự chứng minh.

Evidence ở đây đủ mạnh để nói về application architecture và workflow implementation. Nó không đủ để suy production traffic, hiring performance hoặc ROI.

01

POST /resume webhook contract

Workflow export chứa một POST /resume webhook làm single application-facing entry point.

02

Switch routing theo body.flow

Workflow branch trực tiếp theo download, create và check thay vì dùng AI intent classification.

03

Classic / Modern / Creative tools

Ba tool nodes cung cấp generation behavior chuyên biệt phía sau một Resume Builder orchestrator.

04

Structured output parser

Generated content được constrain trước khi trả về application hoặc đi tiếp downstream.

05

Gotenberg PDF rendering

Download flow chuyển HTML thành file và gọi backend PDF rendering service.

06

Gmail delivery

Rendered PDF được attach và gửi từ backend-side workflow.

07

Resume evaluation path

Check flow chuyển base64 thành PDF file, extract text và đưa text đó vào dedicated evaluation agent.

Reuse model

D2 không chỉ build một AI tool. Backend được tách để có thể reuse và thay từng capability.

01

Frontend có thể thay mà backend contract giữ nguyên

Website, internal portal hoặc một client khác có thể reuse cùng POST /resume nếu gửi đúng request contract, không cần copy AI/file orchestration vào frontend mới.

02

Generation tool có thể thay độc lập

Classic, Modern và Creative nằm sau orchestrator nên prompt/tool implementation có thể evolve mà không buộc application-facing contract đổi theo.

03

Renderer có thể là service riêng

PDF generation được tách khỏi language model. Rendering provider hoặc deployment của Gotenberg có thể thay mà không biến AI agent thành file engine.

04

Evaluation là capability riêng

Check flow đọc uploaded resume độc lập với create flow, cho phép reuse như một resume-review service thay vì buộc user phải generate CV trong cùng product.

Failure model

Một AI application tốt phải biết operation đang fail ở contract, AI, file hay delivery layer.

Invalid operation

body.flow không thuộc create/download/check phải bị reject ở deterministic routing boundary thay vì đẩy sang AI để đoán.

Generation contract failure

AI output thiếu required HTML shape hoặc template behavior cần được coi là output-validation failure, không phải success chỉ vì model trả text.

File/rendering failure

HTML-to-file hoặc Gotenberg rendering error thuộc deterministic delivery path và cần explicit retry/recovery policy riêng với generation.

Delivery failure

PDF render thành công nhưng Gmail send fail vẫn là incomplete download operation; workflow status không nên gộp hai side effects thành một success mơ hồ.

Input extraction failure

Base64 decode, PDF conversion hoặc text extraction lỗi phải được tách khỏi Resume Evaluation agent để không đánh giá trên input rỗng/sai.

Evaluation uncertainty

AI-generated score/recommendation là interpretation output trong prototype; không được suy thành hiring decision, ATS acceptance hoặc employment outcome.

Claim boundary

Workflow evidence mạnh ở architecture. Business outcome phải có measurement riêng.

Workflow-backed prototype ≠ production-scale platform

19-node workflow chứng minh implementation architecture trong scope case; không chứng minh traffic capacity, uptime, concurrency hoặc production SLA.

AI-generated resume ≠ guaranteed interview outcome

Generation có thể tạo structured resume content; case không claim interview rate, hiring success, ATS pass rate hoặc employment outcome.

Resume score ≠ objective hiring truth

Evaluation report là AI-assisted interpretation của extracted resume text, không phải authoritative recruiter decision hoặc validated psychometric measurement.

Structured output ≠ factual correctness

Đúng HTML/schema chỉ chứng minh output shape; content vẫn cần user review để tránh fabricated, overstated hoặc semantically incorrect candidate claims.

PDF render success ≠ email delivery success

Gotenberg tạo file thành công không tự động chứng minh Gmail đã gửi thành công hoặc người nhận đã nhận/mở file.

Email sent ≠ user outcome

Backend delivery status không chứng minh resume được sử dụng, nộp việc, đọc bởi recruiter hay tạo conversion.

Prototype evidence ≠ model accuracy / ROI claim

Page không claim evaluation accuracy, generation quality score, conversion lift, time saving, hiring impact hoặc ROI khi chưa có measured evidence tương ứng.

Technology footprint

n8n · Webhook · AI tools · Structured output · Gotenberg · Gmail.

Stack phản ánh separation of concerns: n8n orchestration, AI generation/evaluation, deterministic file rendering và backend delivery. Việc một component xuất hiện trong architecture không tự động chứng minh production SLA hoặc outcome.

FAQ

Các câu hỏi thường gặp về AI Resume Builder architecture.

AI Resume Builder trong case này làm gì?

Đây là workflow-backed application prototype với một POST /resume endpoint và ba capability được route rõ: create resume, render/deliver approved resume thành PDF và check uploaded resume để trả structured evaluation report.

Tại sao chỉ dùng một webhook cho ba chức năng?

Một stable application-facing contract giúp frontend đơn giản hơn và cho phép nhiều client reuse cùng backend. body.flow quyết định create, download hoặc check, còn orchestration chi tiết được giữ phía sau n8n.

Tại sao routing không dùng AI?

Vì operation đã được caller khai báo trong body.flow. Switch router có thể xử lý deterministic, dễ test và dễ debug hơn việc yêu cầu model suy intent đã biết.

Create flow hoạt động như thế nào?

Candidate profile, target role/JD, tone và template đi vào Resume Builder orchestrator; template được validate rồi route sang Classic, Modern hoặc Creative specialist tool; output được constrain thành complete HTML resume.

Tại sao có ba AI tools Classic, Modern và Creative?

Chúng tách generation behavior theo template phía sau cùng một orchestrator, giúp mỗi behavior có thể thay đổi độc lập mà không làm application contract hoặc các flow khác phụ thuộc trực tiếp vào prompt/tool cụ thể.

Download flow tạo PDF như thế nào?

Approved HTML được chuyển thành file, gửi qua Gotenberg để render PDF, sau đó PDF được attach và gửi qua Gmail trong backend workflow.

Check flow đánh giá CV như thế nào?

Uploaded resume dạng base64 PDF được chuyển thành file, extract text rồi text được đưa vào dedicated Resume Evaluation agent để tạo structured report với scores và prioritized recommendations.

Structured output có ý nghĩa gì?

Nó tạo output shape ổn định cho application/downstream steps. Tuy nhiên đúng schema hoặc HTML không tự động chứng minh nội dung đúng sự thật, nên candidate information vẫn cần user review.

AI có quyền gửi email hoặc render file không?

Không theo architecture này. Generation/evaluation là AI-assisted; PDF rendering và Gmail delivery nằm trong deterministic workflow branches phía backend.

Có thể gắn backend này vào website khác không?

Có về mặt architecture: một client khác gửi cùng HTTP request contract có thể reuse backend capabilities mà không cần duplicate orchestration logic. Production integration vẫn cần authentication, rate limit, file limits và environment-specific controls phù hợp.

Case này có chứng minh hệ thống đã chạy production ở quy mô lớn không?

Không. Evidence công bố hỗ trợ workflow-backed application prototype với 19 nodes, ba routed flows và ba specialized AI generation tools; không chứng minh production traffic, uptime, concurrency hoặc SLA.

Case có chứng minh CV tạo ra tăng tỷ lệ phỏng vấn hoặc tuyển dụng không?

Không. Case không claim ATS pass rate, interview conversion, hiring outcome, model accuracy, time saving hoặc ROI khi chưa có measured evidence tương ứng.