All samples · Basic reference

CV Feedback Bot

The complete worked example: JSON-mode structured output, privacy guardrails, and deployable Azure Container Apps path.

Problem

Students submit weak CVs to internships and miss callbacks. Counselors cannot review every CV, and generic feedback often invents experience or repeats private details.

Users

TIU 3rd and 4th year students preparing internship, scholarship, and graduate-program applications.

Why this track

This is the one fully deployed reference. It gives every team a known-good baseline before they branch into a more original technique.

Architecture

Stay minimal. 5-6 nodes. Each arrow is one network hop.

user

Student

ui

Static web UI

api

FastAPI /review

model

Azure OpenAI gpt-4o-mini

schema

JSON feedback schema

deploy

Azure Container Apps

Edges

  • user ui — paste synthetic CV
  • ui api — POST review
  • api schema — load rubric
  • api model — json_object response
  • model api — structured feedback
  • api deploy — containerized demo

Prompt Pack

Starting prompts. Iterate. Move the system prompt into prompts/system.md so it can be versioned.

system
Review undergraduate CV text against the rubric. Return JSON only: strengths, weaknesses, suggestions, red_flags. Do not invent experience. Do not repeat personal contact details. Flag phone numbers, home addresses, ID numbers, and private grades.
user
Rubric: internship readiness, project evidence, measurable impact, privacy. CV: <synthetic CV text>

Code Snippet

The pattern shape. Read it, run the matching scaffold, then adapt the idea for your own team.

python
response = client.chat.completions.create(
    model=os.environ["AZURE_OPENAI_DEPLOYMENT"],
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},
        {"role": "user", "content": cv_text},
    ],
    response_format={"type": "json_object"},
    max_tokens=500,
)
feedback = json.loads(response.choices[0].message.content)
# ... your turn: adapt the rubric to your target internship

Reference: example/career-cv branch in halla-ai/hackathon-sample-2026

Demo Screens

Three screens that prove the prototype works.

1

CV input

Textarea with a synthetic student CV and a privacy reminder.

2

Structured feedback

Strengths, weaknesses, and suggestions rendered as separate sections.

3

Privacy warning

Red flag panel appears when the CV includes phone, address, or ID-like text.

Azure budget

Use gpt-4o-mini. A 1,000-call prototype with 2K input and 800 output tokens is roughly USD 0.86 before hosting/logging.

Pitfalls

  • • Symptom: feedback invents achievements. Cause: prompt asks for rewriting before verification. Fix: separate fact checking from rewriting.
  • • Symptom: UI breaks on malformed output. Cause: plain text response. Fix: require JSON mode and validate fields.
  • • Symptom: demo exposes real student data. Cause: using actual CVs. Fix: use synthetic or explicitly approved examples.

Possible Extensions

If you finish the 1-day path early, use one question below to make the project more original.

  • How would your version compare the CV to one specific internship description?
  • How would you support Uzbek, Russian, or English CVs without storing private data?
  • How would you show before/after bullet improvements while preserving the original facts?