채용 사이트의 Azure Container Apps 배포 점검
Claude Code로 공개 URL, 환경 변수, 지원 폼, secret, revision을 launch 전에 봅니다.
채용 사이트는 정상으로 보여도 지원 폼이 staging으로 전송될 수 있습니다. 채용 담당자는 공고 페이지, 지원 버튼, 공개 URL, thank-you page를 봅니다. 기술 담당자는 Azure Container Apps, ingress, 환경 변수, secret, domain, revision을 봅니다. 두 표가 같은 candidate journey를 말할 때 launch가 안전합니다.
Puntos clave
- 공고 페이지가 보이는 것만으로는 부족합니다.
- 폼, 공개 URL, 환경 변수, thanks page를 봅니다.
- Container Apps는 ingress, secret, custom domain, revision을 씁니다.
- Claude Code는 표를 만들고 사람은 승인합니다.
- form reach rate, application completion rate, error, review minutes를 봅니다.
Flujo de publicación
구체물은 공고 URL, 지원 폼, screenshot, 환경 변수 목록, FQDN, custom domain, revision입니다. workflow는 캠페인 전에 내용, URL, 폼, ATS, email, traffic, rollback을 봅니다.
Fuentes oficiales revisadas: Azure Container Apps overview, ingress overview, configure ingress, environment variables, manage secrets, managed identities, custom domains and certificates, and revisions. También está relacionado con Bicep safety review.
Qué revisa Claude Code y qué decide una persona
Claude Code에는 정리된 sheet만 줍니다. 변수명, 가린 값, YAML, 공개 URL, traffic, form endpoint, rollback입니다. 후보자 데이터, 이력서, ATS token, production secret, private mailbox는 주지 않습니다.
Claude Code revisa URL pública, variables vacías, staging, token plano, ingress, HTTPS, traffic de revision, owner y rollback. La persona decide texto de empleo, privacidad, datos personales, ATS, horario de publicación, dominio, aprobación y cambio de tráfico.
3 Use Cases
Use case 1: URL pública y dominio
- Input: FQDN de Container Apps, custom domain, URL canonical, capturas.
- Output: tabla de URL visible, staging detectado, certificado, apply button.
- Human review: nombre de empresa, cargo, ubicación, móvil, aprobación y anuncios.
Use case 2: Variables y secrets
- Input: variables, secrets, endpoint del formulario, correo, ATS.
- Output: valores vacíos, staging, token plano, falta de secret reference, thanks page.
- Human review: datos de candidatos, contrato ATS, destinatario de correo, consentimiento y retención.
Use case 3: Revision traffic y rollback
- Input: revisions, latest ready, traffic split, hora de lanzamiento, previous revision.
- Output: revision en vivo, revision solo preview, condición de cambio y vuelta atrás.
- Human review: inicio de anuncio, job board, responsable de soporte y decisión de emergencia.
Prompt reutilizable
Act as a release reviewer for a recruiting site running on Azure Container Apps.
Check public URL, FQDN, custom domain, environment variables, secrets, form endpoint, revision traffic, owner, and rollback.
Never run deployment commands.
Return the five rows the team should inspect today.
Código de verificación
// verify-container-apps-release-sheet.mjs
// No dependencies. Run with: node verify-container-apps-release-sheet.mjs
const releaseSheet = {
industry: "recruiting",
page: "career-site",
expectedPublicUrl: "https://jobs.example.co.jp",
actualFqdn: "career-prod.red-bay.azurecontainerapps.io",
customDomainBound: false,
ingress: { enabled: true, external: true, targetPort: 3000, allowInsecure: true },
environmentVariables: [
{ name: "PUBLIC_SITE_URL", value: "https://staging-jobs.example.co.jp", secretRef: "" },
{ name: "FORM_POST_ENDPOINT", value: "", secretRef: "" },
{ name: "ATS_API_TOKEN", value: "plain-token-example", secretRef: "" }
],
secrets: [],
revision: { latestReady: true, trafficToLatest: 0, oldRevisionTraffic: 100 },
owner: "",
rollbackNote: ""
};
const problems = [];
if (!releaseSheet.customDomainBound || !releaseSheet.actualFqdn.includes("jobs.example.co.jp")) {
problems.push({ item: "public URL", fix: "confirm custom domain, managed certificate, and canonical job URL" });
}
if (!releaseSheet.ingress.enabled || !releaseSheet.ingress.external) {
problems.push({ item: "ingress", fix: "external recruiting pages need reviewed HTTP ingress before launch" });
}
if (releaseSheet.ingress.allowInsecure) {
problems.push({ item: "HTTPS", fix: "disable insecure connections before candidates open the page" });
}
for (const env of releaseSheet.environmentVariables) {
if (!env.value && !env.secretRef) {
problems.push({ item: "env: " + env.name, fix: "set the value or a secret reference before launch" });
}
if (/TOKEN|SECRET|PASSWORD|KEY/i.test(env.name) && env.value && !env.secretRef) {
problems.push({ item: "plain secret: " + env.name, fix: "move token values to Container Apps secrets or Key Vault references" });
}
}
if (releaseSheet.revision.latestReady && releaseSheet.revision.trafficToLatest === 0) {
problems.push({ item: "revision traffic", fix: "assign test traffic or switch traffic after preview approval" });
}
if (!releaseSheet.owner) {
problems.push({ item: "owner", fix: "write the human owner for public URL, form delivery, and rollback" });
}
if (!releaseSheet.rollbackNote) {
problems.push({ item: "rollback", fix: "write the previous revision or stop condition before campaign launch" });
}
if (problems.length > 0) {
console.table(problems);
process.exitCode = 1;
} else {
console.log("Container Apps recruiting release sheet passed.");
}
Pitfall: errores comunes
No apruebes solo porque la página carga. El formulario, thanks page, email y ATS pueden usar otra configuración. No pongas tokens de ATS como valores planos. No confundas FQDN con dominio público. No ignores revision traffic. La corrección es una tabla con URL, variable, secret, traffic, owner y rollback.
FAQ
Q. ¿Container Apps sirve para un sitio de empleo?
A. Sí, si hay backend de formulario, ATS, preview revision o runtime de contenedor. Una página estática simple puede usar otra opción.
Q. ¿Puedo pasar variables a Claude Code?
A. Pasa nombres y valores ocultos. No pases datos de candidatos, CV, tokens ATS ni secrets de producción.
Q. ¿Qué miro hoy?
A. PUBLIC_SITE_URL, FORM_POST_ENDPOINT, THANKS_PAGE_URL, custom domain y revision traffic.
Q. ¿Qué métrica importa?
A. Form reach rate, application completion rate, send errors, errores detenidos y minutos de revisión.
Señal para consulta
Si las visitas suben pero las postulaciones no, revisa release quality. Container Apps, secrets, custom domain, revision traffic y ATS encajan con ClaudeCodeLab training.
Resultado verificado
Se revisaron fuentes oficiales, CTA, JavaScript ejecutable, enlaces internos y externos, cobertura de locales y eliminación de la cola. La primera acción es copiar PUBLIC_SITE_URL, FORM_POST_ENDPOINT, THANKS_PAGE_URL, custom domain y revision traffic en una tabla.
관련 글
인재 채용 회사의 채용 공고와 스카우트 메시지를 Claude Code로 대량 생산하는 실무 절차
인재 채용 회사 커리어 어드바이저를 위한 가이드. Claude Code로 채용 공고와 스카우트 메시지를 대량 생산하면서 품질과 개인정보를 지키는 절차. 프롬프트 템플릿과 검증 스크립트 포함.
인재소개 회사가 Claude Code로 채용공고와 후보자 메일을 보내기 전에 대조하는 법
인재소개 회사를 위해 채용공고, 후보자 메일, 고객 확인 메모의 어긋남을 보내기 전에 찾는 절차입니다.
인력파견 매칭 메모와 구인 추천문을 Claude Code로 30분에서 5분으로 줄이는 실무 순서
인력파견 코디네이터용. 면담 내용으로 구인 추천문과 매칭 메모를 AI로 초안 잡는 순서를 프롬프트와 검증 코드까지 소개.
무료 PDF: Claude Code 치트시트
이메일을 입력하면 명령, 리뷰 습관, 안전한 워크플로를 정리한 PDF를 받을 수 있습니다.
개인정보를 안전하게 관리하며 스팸을 보내지 않습니다.
작성자 소개
Masa
Claude Code 실무 워크플로와 팀 도입을 검증하는 엔지니어입니다.