Prompt behavior
Defined the ICCN-oriented persona, support for natural Indonesian, domain boundaries, and responses for missing knowledge.
An ICCN knowledge assistant with a gamified flow for collecting creative-economy participant data.

ICCN Chatbot answering a question about the Indonesia Creative Cities Network
Screenshot 1 of 3
Knowledge access and data collection in one conversation
ICCN Chatbot gives creative-community users a conversational way to ask about ICCN, its network, membership, programs, and related creative-economy information. The assistant retrieves context from ICCN documents and is prompted to state when the available knowledge does not support an answer.
The same interface includes Ramalan Karir, a guided experience that collects profile information over several turns. Instead of presenting a conventional form, it asks for details progressively and ends with a personalized career-result teaser as the user-facing reason to complete the flow.
My contribution covered prompt engineering, knowledge ingestion, and the Ramalan Karir experience. I shaped the assistant's Indonesian conversational behavior and domain boundaries, built the document-ingestion work needed for retrieval, and developed the gamified collection flow. The wider ICCN AI platform was collaborative work.
ICCN knowledge is spread across organizational documents, programs, network information, and creative-economy material. A useful assistant needed to handle informal questions without requiring users to know the wording used in those sources.
The product also needed structured participant information. A conventional form would separate that task from the conversation, so Ramalan Karir collected the same information progressively and paired completion with a personalized result.
The assistant needed to answer from ICCN sources and acknowledge when those sources did not contain enough information.
Profile fields had to remain structured even though users supplied them through a multi-turn conversation.
I worked on the parts of ICCN Chatbot that determine how it communicates and how it turns conversation into usable data. My scope covered prompt behavior, the knowledge-ingestion pipeline, and Ramalan Karir rather than the entire ICCN AI platform.
Defined the ICCN-oriented persona, support for natural Indonesian, domain boundaries, and responses for missing knowledge.
Prepared ICCN documents for parent-child vector retrieval and BM25 search over organizational content.
Developed progressive field collection, validation, Redis-backed state, fixed-choice steps, and personalized result generation.
A deterministic entry rule returns unfinished public sessions to Ramalan Karir before the LLM supervisor handles other requests. The supervisor routes the remaining messages to ICCN retrieval, Ramalan Karir, or a direct response. This keeps a structured collection sequence from being lost inside a general chat flow.
ICCN documents
Organizational and creative-economy material from S3
Parent-child ingestion
Searchable child chunks with broader parent context
ChromaDB + BM25
Semantic and lexical retrieval over ICCN knowledge
Widget + FastAPI
Receives and streams public conversations
Deterministic entry
Preserves unfinished collection sessions
LangGraph supervisor
Routes RAG, Ramalan Karir, or direct chat
ICCN RAG
Answers from retrieved document context
Redis field state
Stores and validates progressive profile data
Personalized result
Completes Ramalan Karir with a result teaser
Dense child-chunk retrieval is combined with parent context and BM25 ranking. This supports semantic questions and exact ICCN terminology, but no controlled retrieval benchmark is available.
Ramalan Karir stores progressive profile state in Redis, validates extracted values, and uses fixed choices where the data must remain constrained.
442
clean plain-text interaction rows analyzed
393 distinct normalized inputs
≥20%
contained selected colloquial Indonesian markers
at least 89 of 442 interaction rows
234
retrieval rows with explicit PDF source metadata
evidence of document-connected retrieval
12
personalized career-result teaser outputs
observed traces, not a conversion rate
The complete export contains 1,449 mixed trace rows recorded from July 14 to August 12, 2026. A cleaner conversational subset contains 442 plain-text interaction rows and 393 distinct normalized inputs. At least 89 rows used selected colloquial Indonesian markers, showing that the observed inputs included informal language as well as formal questions.
The traces also contain 234 structured retrieval rows with explicit PDF source metadata and 12 personalized career-result teaser outputs. These observations confirm that document retrieval and the final Ramalan Karir stage occurred. They do not measure answer accuracy, retrieval quality, unique users, or conversion.
About 24.9% of the analyzed responses used explicit unavailable-information language. This measures fallback behavior, not whether retrieval should have found an answer.
Observed onboarding and field-selection stages typically took about one to two seconds, while personalized teaser generation had a median around 7.4 seconds.
A deterministic entry rule keeps unfinished data collection on track before an LLM supervisor considers other intents.
Organizational assistants need a clear way to acknowledge missing support instead of treating every question as answerable.
Ramalan Karir turns progressive profile collection into a guided experience that ends with personalized content rather than a generic submission state.
Next project
An AI-assisted workflow for producing source-cited research briefs about Indonesia's creative economy.