아스타
경력근거: 마케팅 특화 Agentic AI 서비스를 통해 브랜드와 마케터의 업무를 분석, 기획, 콘텐츠 제작, 실행, 개선
※ 실제 산출물이 아닌 AI 예측 시안입니다.
아스타는 마케팅 특화 Agentic AI Moast 로 브랜드의 분석·기획·콘텐츠·실행·개선을 자동화하는 회사라, 캠페인 부진을 짚고 카피·액션을 제안하는 이 도구는 아스타가 다루는 실제 캠페인 성과·크리에이티브 데이터가 있어야 제안을 검증할 수 있습니다.
Moast 로 브랜드·마케터의 분석·기획·콘텐츠·실행·개선을 자동화. 캠페인 성과를 한 스키마로 닫아야 원인과 다음 액션을 제안한다.
작은 팀이라 한 사람이 만드는 임팩트가 크고 빠른 실행 중심. 분석→제안→검증 한 루프를 혼자 닫는 E2E 가 맞는다.
KT·SKT·삼성카드·롯데 등과 협업해 실무 적용. 제안이 실제 성과로 이어졌는지 검증하는 신뢰 루프가 핵심.
채널별 캠페인 성과(노출·클릭·전환·비용)에 크리에이티브·세그먼트를 붙여 한 화면에서 봅니다. LLM 이 부진 원인 Top3 와 다음 카피·액션 3건을 제안하고, 매일 성과 리포트를 슬랙으로 보냅니다. 1주차만으로 완성품이고, 제안이 실제로 효과가 있었는지 확인(2주차)·자동 제안 루프(3주차)로 키웁니다. (근거는 채용공고 정렬이다.)
부진한 캠페인의 원인과 다음 카피를 매번 손으로 정리하는 상황을 끝내고, 그 제안이 실제로 성과를 냈는지까지 확인하고 싶은 아스타 PE.
캠페인 성과를 한 스키마로 묶고 크리에이티브·세그먼트를 붙이면, LLM 이 (a) 부진 원인 Top3 와 (b) 다음 카피·액션 3건을 몇 초 안에 답하고, (c) 다음 기간 실측 전환으로 그 제안이 맞았는지 확인합니다.
캠페인 성과를 한곳에 모아, 부진 원인 Top3 와 다음 카피·액션을 LLM 이 만들고 매일 슬랙으로 보내는 동작하는 도구입니다.
지난 제안의 예상 전환을 다음 기간 실측치와 맞춰보고, 마케터 2명이 제안 타당성을 라벨링해 신뢰도를 보여주는 대시보드입니다.
확인된 제안을 바탕으로 부진 감지 시 카피 후보를 자동 생성·제시해, 마케터 검토만 남기는 단계입니다.
부진 캠페인 시나리오 10개를 넣으면 부진 원인 Top3 와 카피·액션 3건이 몇 초 안에 나오는 걸 시연으로 보여줍니다.
일부러 만든 악성·결측 입력 30종을 넣어도 출력 형식(스키마)이 한 번도 안 깨집니다. 형식 검증(Zod)을 자동 통과합니다.
매일 성과 리포트가 슬랙으로 자동 발송되는 걸 14일치 시연으로 보여줍니다.
내가 만든 정답 30개 중 부진 원인 Top3 가 일치한 게 24개(80%). 단, 정답과 데이터를 모두 내가 만든 합성 기준이므로 ‘성능 검증’ 이 아니라 ‘데모 조건에서의 동작’ 입니다.
위 수치는 전부 작성자가 만든 더미데이터 자가채점이며, 실제 적중률·전환은 아스타 실 광고 계정 데이터 + 실 마케터 검수가 있어야 측정 가능합니다. 이 도구는 ‘그 검증을 바로 돌릴 수 있는 상태’ 까지 만듭니다.
이건 고객·실데이터 없이 혼자 만든 포트폴리오입니다. 모든 수치는 합성 데이터 자가채점이라 ‘성능 증명’ 이 아닙니다. 면접에서 솔직히 ‘데모 조건 동작 + 실검증 준비 상태’ 로 설명합니다.
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 일부러 헷갈리는 결측·악성·경계 케이스를 더미에 섞어, 쉬운 문제만 푸는 게 아님을 보여줘야 합니다.
‘무엇 때문에 부진했다’ 는 상관일 뿐 인과가 아닐 수 있습니다. 단정 표현을 강제로 누그러뜨리고 별도 LLM 검사로 우회 표현까지 거릅니다.
채널·캠페인 표기가 제각각이라 집계가 깨집니다. 표기 정규화로 묶고, 못 묶은 건 추측하지 말고 ‘미매핑’ 으로 알립니다.
실제 도입 시 달라지는 것 명시합니다. 실 광고 계정 분포는 더미와 다르므로 임계·기준을 다시 맞춰야 하고, 마케터 검수도 실제 인력으로 교체해야 한다(도입 단계 과제로 분리)
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
채널·캠페인별 일일 성과(노출·클릭·전환·비용). 제안 LLM 이 가장 먼저 질의하는 테이블. 운영 현실대로 결측(전환 트래킹 누락)·미등록 신캠페인·CPA 급등 이상치를 일부러 섞어, 쉬운 데이터만 푸는 게 아님을 보여준다.
| date | channel | campaign | campaign_id | impressions | clicks | conversions | cost_krw |
|---|---|---|---|---|---|---|---|
| 2026-05-04 | meta | 여름_콜드브루 | c_summer_cb | 82,000 | 2,100 | 130 | 600,000 |
| 2026-05-04 | 브랜드검색 | c_brand | 12,000 | 900 | 88 | 220,000 | |
| 2026-05-05 | meta | 여름 콜드브루 | c_summer_cb | 80,000 | 2,050 | 125 | 610,000 |
| 2026-05-05 | naver | 신상_드립백 | — | 34,000 | 700 | 21 | 300,000 |
| 2026-05-06 | meta | 여름_콜드브루 | c_summer_cb | 81,000 | 480 | 12 | 600,000 |
아래 Zod 스키마에 맞는 마케팅 캠페인 성과 14일치 JSON 배열로 생성. 채널 3곳, 캠페인 4종 분포 포함.
{"type":"object","properties":{"date":{"type":"string"},"channel":{"type":"string","enum":["meta","google","naver"]},"campaign":{"type":"string"},"campaign_id":{"type":["string","null"]},"impressions":{"type":"integer"},"clicks":{"type":"integer"},"conversions":{"type":["integer","null"]},"cost_krw":{"type":"integer"}},"required":["date","channel","campaign","campaign_id","impressions","clicks","conversions","cost_krw"]}
쉬운 데이터만 만들지 말 것 — 다음 하드 케이스를 의도적으로 섞어라: (1) campaign 별칭 표기('여름_콜드브루'/'여름 콜드브루' 처럼 campaign_id 로 정규화돼야 함), (2) 미등록 신캠페인(campaign_id=null) 1~2건, (3) conversions=null 트래킹 결측 1~2건, (4) CTR/전환이 급락하는 부진 시퀀스 1세트 + 평소 2배 급증 1건. JSON 배열만.{"type":"object","properties":{"date":{"type":"string"},"channel":{"type":"string","enum":["meta","google","naver"]},"campaign":{"type":"string"},"campaign_id":{"type":["string","null"]},"impressions":{"type":"integer"},"clicks":{"type":"integer"},"conversions":{"type":["integer","null"]},"cost_krw":{"type":"integer"}},"required":["date","channel","campaign","campaign_id","impressions","clicks","conversions","cost_krw"]}캠페인 크리에이티브(카피·소재 유형). 카피 제안의 기준. 미등록 소재·중복 카피를 일부러 섞어, 제안이 미매핑을 만나도 안 깨지는지 보여준다.
| campaign_id | creative_id | copy_text | format | angle |
|---|---|---|---|---|
| c_summer_cb | cr_01 | 여름엔 시원한 콜드브루 1L | image | benefit |
| c_summer_cb | cr_02 | 지금 30% 할인 | image | price |
| c_summer_cb | cr_03 | 리뷰 4.7점 콜드브루 | carousel | social_proof |
| c_brand | cr_04 | 공식몰 단독 혜택 | image | benefit |
| c_dripbag | cr_05 | 신상 드립백 출시 | video | benefit |
아래 Zod 스키마에 맞는 creative_master 40행 JSON 배열을 campaign_perf 의 campaign_id 와 매칭되도록 생성.
{"type":"object","properties":{"campaign_id":{"type":"string"},"creative_id":{"type":"string"},"copy_text":{"type":"string"},"format":{"type":"string","enum":["image","video","carousel"]},"angle":{"type":"string","enum":["benefit","price","social_proof","urgency"]}},"required":["campaign_id","creative_id","copy_text","format","angle"]}
쉬운 데이터만 만들지 말 것 — 하드 케이스: (1) 동일 copy_text 중복 소재 1쌍, (2) campaign_perf 에 없는 orphan campaign_id 1건, (3) angle 분포 자연스럽게. JSON 배열만.{"type":"object","properties":{"campaign_id":{"type":"string"},"creative_id":{"type":"string"},"copy_text":{"type":"string"},"format":{"type":"string","enum":["image","video","carousel"]},"angle":{"type":"string","enum":["benefit","price","social_proof","urgency"]}},"required":["campaign_id","creative_id","copy_text","format","angle"]}| Python | ingest 파이프라인(광고 API 로그 → PostgreSQL upsert), LLM eval 스크립트(Cohen’s κ / Brier score 계산) |
| Node.js | Next.js 성과 대시보드(부진 카드 + 제안 적중률 차트) 서버 |
| FastAPI | 제안 API(`POST /suggest`: 기간·캠페인 입력 → output_schema 반환) + 일일 리포트 봇 |
| PostgreSQL | campaign_perf / creative_master / segment_events 단일 진실원 + 뷰(`v_daily_roas`) |
| Redis | 제안 큐 + 동일 캠페인 재요청 캐시(중복 LLM 호출 절감) |
| AWS | 리포트 봇 워커 + 제안 API 배포(컨테이너) |
✓ pass → 그대로 멈춰도 완결입니다. 더 키우고 싶으면 2주차(제안이 효과 있었는지 확인)로 진행합니다.
✓ pass → 여기서 멈춰도 완결입니다. 더 키우면 3주차(자동 제안 루프)로 진행합니다.
1) 부진 카드(해석·근거 지표·완곡 표현), 2) 카피·액션 제안 3건 + 예상 전환 + 확신도, 3) 다음 기간 실측 전환으로 적중 검증. 제안→확인 한 주기를 한 스키마에 담음.
{"type":"object","properties":{"period":{"type":"string"},"insights":{"type":"array","items":{"type":"object","properties":{"insight_id":{"type":"string"},"headline":{"type":"string","minLength":10},"interpretation":{"type":"string","minLength":20},"evidence_metrics":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"string"}]}},"required":["name","value"]},"minimum":1},"hedge":{"type":["string","null"],"minLength":8}},"required":["insight_id","headline","interpretation","evidence_metrics","hedge"]},"minimum":3,"maximum":5},"suggestions":{"type":"array","items":{"type":"object","properties":{"campaign_id":{"type":"string"},"copy":{"type":"string","minLength":8},"angle":{"type":"string","enum":["benefit","price","social_proof","urgency"]},"reason":{"type":"string","minLength":20},"predicted_cvr":{"type":"number"},"confidence":{"type":"string","enum":["low","mid","high"]}},"required":["campaign_id","copy","angle","reason","predicted_cvr","confidence"]},"minimum":3,"maximum":3},"verification":{"type":["object","null"],"properties":{"prior_period":{"type":"string"},"hit_rate":{"type":"number"},"hits":{"type":"array","items":{"type":"object","properties":{"campaign_id":{"type":"string"},"predicted_cvr":{"type":"number"},"actual_cvr":{"type":"number"},"hit":{"type":"boolean"}},"required":["campaign_id","predicted_cvr","actual_cvr","hit"]}}},"required":["prior_period","hit_rate","hits"]}},"required":["period","insights","suggestions","verification"]}[
{
"period": "2026-05-06",
"insights": [
{
"insight_id": "ins_0506_01",
"headline": "메타 여름_콜드브루 전환 급락",
"interpretation": "클릭 2100→480, 전환 130→12. 노출은 유지 — 소재 피로 또는 랜딩 이슈 의심.",
"evidence_metrics": [
{
"name": "clicks",
"value": 480
},
{
"name": "prev_clicks",
"value": 2100
},
{
"name": "conversions",
"value": 12
}
],
"hedge": "표본 1일 — 소재 피로 여부는 빈도 데이터 확인 필요."
},
{
"insight_id": "ins_0506_02",
"headline": "브랜드검색 전환 트래킹 결측",
"interpretation": "구글 브랜드검색 conversions=null. 트래킹 누락으로 효율 산출 불가.",
"evidence_metrics": [
{
"name": "conversions",
"value": "null"
},
{
"name": "clicks",
"value": 910
}
],
"hedge": "결측이라 효율 비교 보류."
},
{
"insight_id": "ins_0506_03",
"headline": "신상_드립백 미등록",
"interpretation": "네이버 신상_드립백 campaign_id 미등록 — 추적 분산.",
"evidence_metrics": [
{
"name": "campaign_id",
"value": "null"
}
],
"hedge": "마스터 등록 후 재집계 필요."
}
],
"suggestions": [
{
"campaign_id": "c_summer_cb",
"copy": "리뷰 4.7점, 여름 콜드브루 재입고",
"angle": "social_proof",
"reason": "benefit 소재 피로 의심 — social_proof 앵글로 교체",
"predicted_cvr": 0.06,
"confidence": "mid"
},
{
"campaign_id": "c_brand",
"copy": "공식몰 단독 적립",
"angle": "benefit",
"reason": "전환 트래킹 복구 후 효율 재측정",
"predicted_cvr": 0.07,
"confidence": "high"
},
{
"campaign_id": "c_dripbag",
"copy": "사무실에서 한 잔, 신상 드립백",
"angle": "benefit",
"reason": "신캠페인 등록 후 벤치 카피 투입",
"predicted_cvr": 0.03,
"confidence": "low"
}
],
"verification": null
},
{
"period": "2026-05-08",
"insights": [
{
"insight_id": "ins_0508_01",
"headline": "메타 여름_콜드브루 전환 회복·급증",
"interpretation": "전환 250 — 평소 2배. social_proof 카피 교체 후 회복.",
"evidence_metrics": [
{
"name": "conversions",
"value": 250
},
{
"name": "cost_krw",
"value": 900000
}
],
"hedge": "프로모션 동시 진행 가능성 — 단독 효과 분리 필요."
}
],
"suggestions": [
{
"campaign_id": "c_summer_cb",
"copy": "여름 한정, 품절 임박",
"angle": "urgency",
"reason": "급증 지속 — urgency 로 전환 가속",
"predicted_cvr": 0.08,
"confidence": "high"
},
{
"campaign_id": "c_retarget",
"copy": "장바구니 상품 오늘까지 무료배송",
"angle": "urgency",
"reason": "리타겟 효율 양호 — 동일 앵글 확장",
"predicted_cvr": 0.09,
"confidence": "high"
},
{
"campaign_id": "c_dripbag",
"copy": "첫 구매 1+1",
"angle": "price",
"reason": "전환 저조 — price 앵글 테스트",
"predicted_cvr": 0.04,
"confidence": "mid"
}
],
"verification": {
"prior_period": "2026-05-06 제안",
"hit_rate": 0.67,
"hits": [
{
"campaign_id": "c_summer_cb",
"predicted_cvr": 0.06,
"actual_cvr": 0.064,
"hit": true
},
{
"campaign_id": "c_brand",
"predicted_cvr": 0.07,
"actual_cvr": 0.069,
"hit": true
},
{
"campaign_id": "c_dripbag",
"predicted_cvr": 0.03,
"actual_cvr": 0.006,
"hit": false
}
]
}
}
]자동: (1) Zod parse, (2) evidence_metrics.name 이 입력 스키마 실제 메트릭 이름, (3) 인과 단정 토큰 검출 + LLM-as-judge 평가, (4) 제안 적중률(예측 vs 실측 CVR) 자동 계산. 수동: 마케터 2명 비동기 라벨 → bootstrap Cohen’s κ CI 하한 ≥ 0.6, judge 인간 spot check 5%. verification 은 차기간 실측치 자동 조인.
근거: 마케팅 특화 Agentic AI 서비스를 통해 브랜드와 마케터의 업무를 분석, 기획, 콘텐츠 제작, 실행, 개선