Description
We have a working chatbot backend (Python, FastAPI, SQLAlchemy, Redis) with a survey/campaign feature that's mostly built. Four specific things are missing or incomplete. This is not a large project — expected to take 2-3 days of focused work. What needs to be done: When a user explicitly says they want to stop/leave a survey mid-way (fixed list of exit phrases, no AI needed), exit them cleanly, save their answers so far, and make sure that survey never starts again for that same user. Add two automated follow-up message types that fire after a fixed delay if the user goes quiet — one for an unfinished survey, one for after the survey ends but before the next action happens. Both need to stop firing automatically once the relevant thing happens (survey finished, action taken, or handed to a human agent). Add a background job (not in the live chat path) that runs periodically and scores finished survey responses using an LLM against a simple rubric, saving a score and a one-line reason. The "what happens after the survey ends" logic currently handles 3 out of 5 required outcomes. Add the 2 missing ones, following the same pattern already used for the existing 3. Full technical detail will be shared directly with the person we hire. Skills required: Python, FastAPI, async SQLAlchemy Redis (basic — scheduling/dedup patterns) Experience calling LLM APIs (OpenAI-compatible) for structured/scored output Comfortable reading and extending an existing codebase without rewriting it To