Proptech SaaS Case Study
About 8× estimated effective
delivery capacity at peak
Same team size · Already using AI · Peak in May vs January
Estimated at peak in our case study · Same team size
Assign GenieWorks a bug or feature in Jira, GitLab, or GitHub. It investigates, proposes an approach, and implements and checks the agreed work. Your team sets the scope and approval gates.
Your existing AI becomes a teammate you can delegate work to. It questions weak approaches, brings you decisions that need your judgment, and follows through on what you agreed.
Request · Maya, Product leadBuild public signup so customers can finish setup without developer help.
Activity Comments & history
Assigned to GenieWorks · Specification started
Investigated · Needs product input
We can reuse invitations and provisioning. I recommend an invited pilot; public signup adds billing and abuse controls. @Maya, is open registration needed for launch?
Invited customers are enough for launch. @Alex, can we keep our current account approval?
Yes. Reuse that flow. @Sam, include interrupted setup in acceptance.
Customers must be able to finish setup and resume if interrupted.
Guided setup implemented · PR opened for review
Completion and resume checked against the agreed criteria. Existing account approval preserved.
Pull request, acceptance review, and check results linked to this ticket.
This strong, fast-moving Proptech SaaS team already used AI individually. It accepted 91% of the tickets GenieWorks produced without developers editing or reworking the implementation.
Human review and comments remained part of the process. The same adoption reached about 8× estimated effective delivery capacity at its May peak, with the same team size.
Read how the two results were definedAbout 8× estimated effective
delivery capacity at peak
Same team size · Already using AI · Peak in May vs January
The same team reused two $200 AI subscriptions to support its shared delivery workflow. That covered its full monthly AI spend.
Recorded token usage represented approximately $10,000 at equivalent API rates. The subscriptions supplied the capacity; GenieWorks organized the work.
See the case-study spending detailsHaving AI capacity is one thing. Making the work count takes engineering judgment.
GenieWorks examines whether a task needed that model, where the effort went, and whether a less expensive approach could meet the same requirements.
Use the task’s scope and uncertainty to judge the choice.
Follow investigation, model calls, and repeated reads.
Check the outcome before adopting the change.
Your team can inspect that reasoning, agree what to verify, and carry a proven improvement into future work.
Explore how AI usage is tracedAPP-58 · Specification
Fable 5 · Started by Maya
$54.24 Estimated API cost
Model fit
Bounded investigation using existing export paths and schema
$37.97 · 70% potential API savings per run
Same token and cache mix · Rate-only estimate
Validate the same acceptance criteria before switching. Actual usage and savings can differ.
Investigation · 9.520M tokens across 64 calls
api-schema.json · 738 KiB per read
Investigation calls 12, 27, and 43
Repeated reads warrant a closer look; they don’t establish waste on their own.
GenieWorks carries product, engineering, and QA decisions into the code. The same issue holds the agreement, the PR, and the evidence for review.
It checks its implementation for missed requirements and repairs gaps. Code assurance investigates further failure paths, so your team sees what was verified and what still needs attention.
Explore each stage of the workProduct · Engineering · QA
Agreed: finish setup without developer help, resume interrupted work, and keep account approval.
GenieWorks · Implementation review
Resuming setup lost saved progress. The implementation was corrected and the agreed checks repeated.
GenieWorks · Code assurance
Source review identified a path where resuming setup could use stale approval. Reproduction steps prepared for QA.
Source finding · Reproduction not run
Sam · QA lead / Alex · Engineering lead
The PR, recorded checks, and open finding are on the issue. QA verifies the finding; the team decides what to accept and release.
Choose a stage to see what GenieWorks investigates, asks, implements, and checks. Your team contributes where a decision needs their judgment.
Activity Comments & history
Specification
Issue moved to “Ready for specification”
Assigned to GenieWorks
Specification started · Investigating export retries
Pulled live evidence via MCP
Sentry One click, a lost response, then two export jobs.
Internal API Same user and export settings; the retry has a new request ID.
Needs input · During specification
@Alex, a button lock won’t cover network retries. Should a retry return the original export?
Yes, reuse the same export. @Sam, please confirm from QA.
Agreed. Only “New export” creates another. Test retries after a lost response.
Specification updated · Ready for review
Original request Disable Export after the first click.
Live evidence · Sentry + your Internal API Sentry traces link one click to a lost response and two jobs. The internal service confirms a new request ID on retry for the same user and export settings. These authorized MCP reads supply context the repository alone cannot show.
Agreed behavior Keep the same export across clicks and network retries. Create another only through “New export”.
QA verification added Simulate a lost response, retry, and check that the original export is returned.
Implementation
Assigned to GenieWorks
Spec approved · Implementation started
PR #84 opened · Implementation complete
Gap found and fixed The API reused the export, but the Web retry generated a new request. Corrected before opening the PR.
Verified against the agreement Lost-response retries reuse the export. An explicit new export creates another.
Review scope This example has AC review enabled. Human review and release approval remain separate.
Please also link the retry message to the existing export.
PR #84 updated
Acceptance review enabled
Explore implementationCode assurance
Assigned to GenieWorks
Code assurance started
9 scenarios reviewed · 1 supported finding
The planned retry cases show no gap. The problem appears when cleanup overlaps a long-running export.
Retry record removed while export is still running
Cleanup can expire the retry record before the export finishes. A late retry then has a path to create a second job.
8 scenarios without a finding in source review First export; repeated click; lost-response retry; retry after completion; explicit new export; concurrent retries; permission denial; worker restart.
Scenario 9 · Long-running export + cleanup + late retry Cleanup expires retry records by age while the worker can still be processing the linked export. The agreed cases did not cover that overlap.
Proposed verification Keep an export running beyond retry-record retention, run cleanup, then retry. Verify it returns the existing job. These steps have not been executed.
9 scenarios analyzed in source · Application, API, and browser tests have not been run in this example.
Explore code assuranceAPP-73 · Propose customer self-service onboarding
Project proposal
Assigned to GenieWorks · Ran “Create Project Proposal”
Saved team recipe · Inputs: self-service onboarding, enterprise customers
@Maya, we can reuse account provisioning. Public signup adds billing and abuse controls. Start with an invited enterprise pilot?
Yes, pilot first. @Alex, can we keep our current account approval?
Yes. Reuse provisioning and manual approval. Add guided setup after the invitation.
Project proposal ready for review
Scope · Invited enterprise pilot Reuse provisioning and account approval. Build guided setup and invitations. Public signup, billing changes, and abuse controls stay outside the pilot.
Delivery phases Validate the onboarding journey, deliver setup across Web and API, then onboard the first invited customers.
Success and risks Customers finish setup without developer intervention. Measure completion and support requests; check account permissions before pilot launch.
Decision still needed Product selects pilot customers and launch timing. The proposal is ready for review, not approved for delivery.
Your recipe is a versioned prompt with defined inputs and shared project context. Teammates run it from a form for the next proposal.
Explore recipesProject workspace Lessons & decisions
GenieWorks & project leads · Shared learning review
Project learning
I reviewed 18 tickets I worked on, bugs filed afterward, and changes to Jira and Git after my implementation.
I found a lesson for future work
APP-31 led to bug APP-57. Alex’s corrective PR #79 keeps retry records until the export finishes. I propose checking cleanup, running jobs, and late retries together in future specifications.
Keep that lesson specific to background jobs with retries, not every API endpoint.
Agreed. Keep “New export” as an explicit new action.
Lesson checked, adopted, and applied
Evidence behind the lesson Compared APP-31’s original spec and PR #62 with later bug APP-57, the Jira correction, and Alex’s corrective PR #79. The changed behavior belonged to the original scope; this was not a new feature or release cherry-pick.
What I now check For retryable background jobs, specify what happens when cleanup overlaps a running job and a late retry. Keep request identity until the job finishes; preserve an explicit new action.
Checked before reuse Replayed the original ticket: the proposed lesson adds the missing acceptance and test scenario. Checked a read-only request too: this lesson does not apply.
Applied on APP-86 The next export specification includes the cleanup, running-job, and late-retry scenario, with a link to this approved lesson. Future reviews check whether the lesson was useful or needs refining.
Lessons checked against outcomes, reviewed with leads, and reused where they fit.
Explore knowledge & learningALREADY USING ROVO, CODEX, CLAUDE, OR OPENCODE?
Building your own automation? Consider who owns the delivery system and its ongoing improvements. Compare building with adopting
Compare GenieWorks with Rovo, Codex, and ClaudePRICING
The same full suite at every team size. Pricing follows your Jira site’s user count.
| What’s included | |||
|---|---|---|---|
| Project knowledge | Included | Included | Included |
| Specification | Included | Included | Included |
| Implementation & review | Included | Included | Included |
| Code assurance | Included | Included | Included |
| Usage & cost reports | Included | Included | Included |
| Priority support | — | — | Included |
| SLA | — | — | Included |
| Single sign-on (SSO) | — | — | Included |
| Custom models | — | — | Included |
| On-premise installation | — | — | Included |
| Licensed Jira users | Total USD / month |
|---|---|
| 1–10 | $60 |
| 11–15 | $195 |
| 16–25 | $325 |
| 26–50 | $650 |
| 51–100 | $1,300 |
| 101–200 | $2,600 |
| 201–300 | $3,900 |
| 301+ | Let’s Talk |
Jira pricing · USD. Full-suite totals for the whole Jira site at each tier’s maximum user count. The standard $13/user rate applies above 10 users.
For teams evolving an existing product, where shared context, review, and a clear definition of done matter.