AI Engineer
Build agent-native products at Cityflo — MCP servers, tool-using agents, and LLM pipelines that real operations teams depend on. This careers app is one of ours.
You'll build the agentic systems behind Cityflo — the internal copilots, MCP servers, and LLM pipelines that move real operational work across scheduling, ops, support, and analytics. You'll own features idea-to-production, sit with the people who actually use them, and set the bar for how Cityflo builds with AI. This is hands-on and senior: you ship daily with a coding agent at your side, you decide what belongs to the model and what belongs in deterministic code, and you're the one who knows when the model is confidently wrong.
What we look for
- Ships production code with a coding agent every day, and treats steering it — not just prompting it — as a core engineering skill
- Strong in TypeScript and/or Python, fluent with LLM APIs and tool/function calling
- Has built or integrated against MCP, function-calling, or agent frameworks — not just called a chat endpoint
- Strong product sense: knows when to trust the model, when to overrule it, and when the logic belongs in deterministic code instead
- Owns features idea-to-production and works directly with the non-engineers who depend on them — like an ops lead who has to defend your tool's number to their manager
- Thinks about trust boundaries: what happens when an agent reads untrusted operational text is a question you've already worried about
The assignment
Build a small but real MCP server over one messy Cityflo ops domain you pick — on-time performance, occupancy, support-ticket triage, or an ops standup summariser — wire it to a real client, and drive it end-to-end with your agent to answer the ops team's actual question. We hand you a flaky ops export and a real handoff ticket from the Mumbai ops desk. Fetch the full brief and the bundle at the assets URL before you start. Half a day, expect ~4-6 focused hours. Using your agent is mandatory and the point: we grade the result and the trajectory.
Half a day. We expect 4-6 focused hours; going well past that is a signal we'd rather not see — it usually means the slice wasn't cut tightly enough. If you hit the edge of the box with things still on your list, stop and write down what you'd have done next and why cutting it was right. A small, sharp tool with an honest README beats a sprawling one.
Connect your coding agent to our MCP and it handles the whole application — profile, resume, and this assignment. Solve it the way you actually work.