# AI for Engineering Teams: Tickets to Tested Pull Requests

Source: https://maito.app/use-cases/engineering

Hand Maito a bug or feature in Slack, by email, or from Cursor or Claude. It reads your code and past decisions, runs your checks, and opens a pull request for you to review. Set up in minutes.

Maito works in your repositories from Slack, email, or your AI assistant. It knows why your code works the way it does, makes the change, runs your checks, and opens a pull request for you to review.

[Put Maito to work](https://maito.app/login?returnTo=%2F)[Book a demo](mailto:support@maito.app?subject=Maito%20demo)

$149/month per workspace · Unlimited people · AI usage billed by your provider

## The code is rarely the slow part.

A question from support. A bug from sales. A spec missing the edge cases. Engineers lose hours every week finding answers and explaining them again.

50%

of developers lose 10 or more hours a week to friction outside their code. [Atlassian State of DevEx 2025](https://www.atlassian.com/blog/developer/developer-experience-report-2025)

61%

of developers spend more than 30 minutes a day searching for answers. [Stack Overflow Developer Survey 2024](https://survey.stackoverflow.co/2024/professional-developers)

99%

of developers say AI tools save them time. The friction stays anyway. [Atlassian State of DevEx 2025](https://www.atlassian.com/blog/developer/developer-experience-report-2025)

## From customer report to merged fix, in one thread.

Follow one coupon bug from the first message to the merge.

1.  01
    
    Anyone can hand it the work
    
    Mention it in Slack, forward the customer’s email, or ask from Cursor or Claude. No ticket template needed.
    
    #support in SlackNina’s CursorSam’s email
    
    ![Sam](https://maito.app/marketing-avatars/sam.webp)
    
    Sam October 15, 10:04 AM
    
    @Maito Acme says an expired coupon still took 20% off their order today. Can you fix it?
    
    ![Nina](https://maito.app/marketing-avatars/nina.webp)
    
    Nina Cursor
    
    /maito Expired coupons still work at checkout. Fix it in northstar/web and keep the grace period.
    
    Subject: Fwd: Coupon still worked after it expired
    
    ![Sam](https://maito.app/marketing-avatars/sam.webp)
    
    Sam Email
    
    Forwarding Acme’s email. Their coupon expired on the 12th and still worked today. Can you fix it and draft a reply?
    
2.  02
    
    It asks before it guesses
    
    When something isn’t clear, it asks in the same thread and waits for the answer.
    
    #support in Slack
    
    ![Maito](https://maito.app/maito-logo.svg)
    
    Maito October 15, 10:09 AM
    
    Found it. Since last Tuesday’s release, checkout reads coupons from a cache that refreshes weekly, so expired ones keep working. Annual plans use the same code. Fix both, or only monthly?
    
    ![Leo](https://maito.app/marketing-avatars/leo.webp)
    
    Leo October 15, 10:12 AM
    
    Fix both.
    
3.  03
    
    You get a pull request, checks already run
    
    It works on its own branch, runs the checks you set up, and posts the pull request with the results.
    
    #support in Slack
    
    ![Maito](https://maito.app/maito-logo.svg)
    
    Maito October 15, 10:31 AM
    
    Fixed for monthly and annual plans. Expired coupons stop working after the 24-hour grace period, and I added tests for both.**PR #418** · 3 files changed · 3 checks passed
    
4.  04
    
    Feedback goes in the thread
    
    Ask for changes in plain words. It updates the same pull request, and you decide when to merge.
    
    #support in SlackReply to Acme
    
    ![Leo](https://maito.app/marketing-avatars/leo.webp)
    
    Leo October 15, 10:40 AM
    
    Tell the customer when the coupon expired instead of showing a generic error.
    
    ![Maito](https://maito.app/maito-logo.svg)
    
    Maito October 15, 10:46 AM
    
    Done. Checkout now says “This coupon expired on October 12.” PR #418 is updated, and all 3 checks passed.
    
    ![Leo](https://maito.app/marketing-avatars/leo.webp)
    
    Leo October 15, 10:52 AM
    
    Merging.
    
    ![Sam](https://maito.app/marketing-avatars/sam.webp)
    
    Sam October 15, 10:55 AM
    
    @Maito draft the reply to Acme.
    
    ![Maito](https://maito.app/maito-logo.svg)
    
    Maito October 15, 10:56 AM
    
    Hi Jordan, thanks for flagging this. Your coupon expired on October 12 and shouldn’t have applied. We’ve fixed it, and your order total stays as charged. Want me to send it?
    

## It knows why the code is the way it is.

A good fix needs more than the code. Maito checks the report, recent changes, and what your team decided, then tells you where each piece came from.

Openmaito/3f2b9c1e… → main3 files +50 −5

![Maito](https://maito.app/maito-logo.svg)

Maito opened this pull request · October 15

Expired coupons kept working at checkout. Since #401, checkout reads coupons from a cache that refreshes weekly, so Acme’s coupon still took 20% off three days after it expired.

Checkout now checks `expires_at` itself and keeps the 24-hour grace period Maya set in #billing on August 3. Monthly and annual plans both use this path. Customers see when their coupon expired instead of a generic error.

Validated commit: `7c41e9a`

-   Passed: `npm run typecheck`
-   Passed: `npm run lint`
-   Passed: `npm test`

Review required. Merging is up to your team.

[Learn more about company knowledge](https://maito.app/product/company-knowledge)

## Reviews, tests, and questions too.

Writing code is one part of the job. Hand it the rest of the week as well.

Answers code questions

“How does checkout handle refunds?” answered from the code, with the files and lines it read.

Reviews a branch

Point it at a branch and get findings against the base, with the code it checked.

Runs security reviews

It reviews a feature for vulnerabilities and rechecks every finding before it reports.

Tests in a real browser

It starts your app at a commit, clicks through it, and sends a video of what broke.

Chases customer bugs

It reproduces the report, finds the cause, fixes it, and drafts the reply.

Watches for trouble

Every morning it reads new errors from your error tracker and posts what needs a look.

## Your whole team can hand it work.

Support hands bugs over directly

A customer report goes straight to Maito. Engineers see a pull request, not another interruption.

Product gets answers from the code

“What happens if we change this?” gets answered without pulling anyone off their work.

Everyone adds context in one place

Support, product, and engineering talk in the same thread. Nobody repeats it in DMs.

Engineers stay in charge

Every change waits for an engineer to review it and merge it.

## Your repository, your rules.

Connect GitHub, GitLab, or Bitbucket and pick the repositories Maito can work in. Set the branch and variables once, and every task uses them.

Every task gets its own branch

Each task runs in its own sandbox, so several can run at once without stepping on each other.

Your checks run first

It runs the checks you set up and shows the results with the pull request.

Secrets stay out of chat

Environment variables are encrypted and hidden after saving. Nobody pastes keys into Slack.

Merging is up to you

It opens a pull request and stops there. Ask for changes or merge it yourself.

Privatenorthstar/webGitHub

Default branch

main

Environment variables

-   DATABASE\_URL••••••••
-   STRIPE\_SECRET\_KEY••••••••
-   SENTRY\_DSN••••••••

Encrypted with Vault. Every new task starts from main with these variables.

## Frequently asked questions.

### We already use Cursor or Claude Code. Why add Maito?

Those help one engineer at their desk. Maito takes work from anyone on the team, runs it in its own sandbox, and knows what your team decided. Engineers can still call it from Cursor, Claude, ChatGPT, or Codex.

### Is our code used to train AI models?

Not by us. We don’t train our own models on your code. Your AI provider handles it under its own policy and your agreement with it, so check those settings.

### Does it work with our stack?

Yes, if it runs from your repository. Each task installs your dependencies and runs your setup in a fresh sandbox, using the environment variables you saved. Connect GitHub, GitLab, or Bitbucket.

### Which model writes the code?

The one you pick. Choose a provider and model for coding in Settings → Provider, separate from the rest of the workspace if you like. OpenAI, Anthropic, GitHub Copilot, and many others work.

### What does it cost?

$149 per workspace per month, for as many people as you like. Each coding task gets its own cloud machine, paid from the $20 in cloud credits included every month. That’s enough for about 35 days of one machine running around the clock. Your AI provider bills model usage separately.

## Put your AI teammate to work.

Set it up in minutes. Hand it the next bug in your queue.

[Put Maito to work](https://maito.app/login?returnTo=%2F)[Book a demo](mailto:support@maito.app?subject=Maito%20demo)
