Our frontend is a single-page TypeScript web app built in React. We bundle with Vite and target modern browsers only. We test with Vitest, React Testing Library, Playwright, and Chromatic for visual regression. Our UI updates in near real-time using WebSockets and WebRTC, is styled via CSS modules, and is performance-tuned with route-based code splitting and skeleton UI. We’ve built our own design system, documented in an extensive Storybook.
We sweat the UI/UX details and work collaboratively with Product throughout the design process - from lo-fi wireframes through Figma and into code. Our frontend is built on top of our REST API and GraphQL endpoints, backed by a Python/Flask/FastAPI, MongoDB, Postgres and Elasticsearch stack running on AWS.
We love open sourcing our code and ideas on our GitHub and on The Making of Close, our behind-the-scenes Product & Engineering blog. Check our projects such as react-custom-scroller, use-infinite-scroll, use-abortable-effect, and smart-tooltip-delay or insights from our day-to-day work like Under the Hood: Developing Close’s AI-Powered Call Assistant, Cutting our Lead page LCP by half, and Highlights From a Complex Downshift.js Refactor.
AI is both how we build and what we ship, and that’s reshaped what engineering looks like. This is a transformation we’re embracing and find deeply exciting.
When you apply, you’ll have an opportunity to highlight the team that appeals to you the most. We’ll do our best to honor this preference, but we’ll also be evaluating skillset fit and the needs of the business.
One thing to know up front: we do move people between teams as the work shifts. Most engineers here end up on more than one team over their time at Close - this team is where you’ll start, but over time you’ll likely have the opportunity to work on many different projects.
The work splits roughly like this. Pick the team that excites you most:
•
Agents. Build the UI that puts AI in the hands of Close customers. This means the creation and configuration experiences for Close’s growing family of agents, the conversational interface through which users ask questions and get answers in plain language, and the observability surfaces that let customers see what their agents are doing and why. The design challenges here are genuinely new: you’ll be figuring out how AI capabilities should surface in the product.
•
Communications. Own the UI for one of the most real-time, high-stakes surfaces in Close: calls. You’ll build in-call experiences that run on WebRTC and WebSockets, live transcript and coaching views where latency visibly matters, power dialing flows built for reps making hundreds of calls a week, and the email, SMS, and scheduling surfaces that keep async outreach moving.
•
CRM. Build the core surfaces that salespeople and agents both depend on: lead pages, pipeline views, smart search, activity feeds. You’ll make these interactions fast and delightful for humans navigating familiar patterns, while also building the AI-powered features that are making the CRM smarter.
•
Growth. Own the surfaces that turn someone who just signed up into a paying customer who sticks around. That means onboarding flows, activation moments, billing and checkout UI, and the import experience - the first things new users touch. You’ll work in a hypothesis-driven, experiment-first environment: ship fast, measure the impact on conversion and activation, and iterate. If you like knowing whether your work moved the needle, this is the team for it.