A survey that runs as a conversation. An AI agent asks the questions, a form appears inside the chat when a slider or ranking is clearer than text, and fixed rules decide what comes next.
RespondentAnswers in a chat
→
Chat interfaceSliders, button groups, multi-select and drag-to-rank appear inline
→
AgentOpenAI Agents SDK
Survey schemaVersioned JSON, validated and stored unchanged in Postgres
→
Branching rulesDeterministic: the same answers always lead to the same next question
→
Insights dashboardResults as they arrive
How a response moves through the system. Architecture sketch, not a screenshot.
My role
Lead; primary author
Years
2026
Built with
Python, OpenAI Agents SDK, React, PostgreSQL
Built for
ICF's Enterprise AI Strategy initiative
The problem
ICF wanted to know how far AI-assisted coding had spread among its developers: who uses which tools, how well, and what is in the way. A static form gets thin answers, and a free-form chatbot gets answers that are hard to compare.
What I built
A conversational survey that keeps the structure of a form. The agent handles the conversation, and the survey definition handles everything that must be consistent.
Design choices
The conversation is flexible; the survey is not. Questions, branching and wording live in a versioned schema, so every respondent is measured the same way.
Schemas are validated and stored unchanged, so a result can always be traced to the exact survey version that produced it.
Controls such as sliders and ranking appear inside the conversation, which gets cleaner answers than asking people to type numbers.
Outcome
Used to measure AI-assisted coding adoption, skills and tool readiness across ICF's developer population.
A conversational survey that stays consistent from one respondent to the next.