Taskhooker builds Marketplace apps for Jira, Confluence, JSM and JPD admins. Every app runs inside Atlassian's Forge runtime — your data never leaves — and every recommendation arrives in dollars.
One reclaims wasted license spend across your whole Atlassian suite. One ends a daily annoyance for every Confluence writer — for free. One stops your teams retyping the same Jira work items. One replaces black-box Jira scripting with automation you can actually see. One turns a Jira search into a live chart on the page, for whoever's looking. And the newest turns any Confluence table into a filtered, pivoted, interactive report — in one macro. All built the same careful way.
License Cost Optimizer for Atlassian Cloud
Scans Jira, Confluence, JSM and JPD for inactive users, product mismatches and idle JPD Creator seats. Every finding in dollars. Reversible, identity-safe seat reclaim — never auto-deactivates anyone.
Explore Recoup →Live word count in the Confluence byline
Word count, character count and reading time on every Confluence page, right in the byline — no clicking, no copy-pasting into another tool. Zero storage, zero egress, two read-only scopes.
Explore Word Count →Reusable templates that prefill the Jira Create screen
Pick a template and the work item fills itself in — fields, smart values, description, and a whole Epic → Story → Subtask tree. Apply to new or existing work items; govern with roles, import/export, and an examples gallery.
Explore Issue Templates →Jira scripts that show their work
A ScriptRunner alternative: scripts run on work-item events, plain-words schedules, or thousands of work items at once — with every run's logs, timing, and errors replayable, version history, one-click rollback, and dry-run.
Explore Hooks →Jira Charts & Reports for Confluence
Chart live Jira data on a Confluence page — pie, donut, bar, stacked bar, or KPI — from a JQL search or a saved filter. Every viewer sees data filtered to their own Jira permissions. Zero app storage.
Explore Bespoke →Table Filters, Pivots & Charts for Confluence
Filter, pivot, and chart any table on the page, an attached CSV/TSV/JSON file, or pasted data — in one macro. Readers sort, filter, search, and export CSV without edit rights. Zero app storage.
Explore Sift →HTML for Confluence Pages
Write HTML, CSS and JavaScript on any page — real code editor, live preview, sanitization profiles, admin guardrails. Renders in a sealed sandbox and never leaves Atlassian. Zero storage of page content.
Explore HTML →Planning Poker for Jira Sprint Estimation
Estimate as a team without leaving Jira — live rooms with hidden votes and a discussion timer, async voting across time zones, or bucket sizing on a shared board. Agreed estimates save straight to Story Points. Runs on Atlassian.
Explore Showdown →Every Atlassian seat renews whether the person logs in or not. Leavers HR offboarded but IT never disabled. People paying for Confluence who live in Jira. JPD Creator seats parked on people who never open it. None of it shows up on an invoice — it just quietly recurs, every month.
Recoup audits every seat across Jira, Confluence, JSM and JPD and tells you exactly how much is on the table. In dollars. Every scan.
Most license-cleanup tools count inactive logins and stop there. Recoup opens every drawer at once — and the cleanup itself is where teams get hurt.
An average org carries ~7% of users who haven't touched any Atlassian product in 90+ days — the ones HR offboarded but IT never disabled.
Multi-product seats where one product sits dormant. The cleanest win in license optimisation — and one no inactive-user counter ever surfaces.
Jira Product Discovery's Creator tier is $10/mo. Contributor is free. The highest per-seat reclaim Recoup detects — a one-click downgrade.
The risk of disabling a service account, and no audit trail for finance, is why most orgs never clean up at all. Recoup removes that risk by design.
Recoup installs as a Forge app inside Jira and runs against your real org. Here is what you act on, first scan in.
Recoup unifies Jira, Confluence, JSM and JPD into a single dollar-denominated view. No more "X inactive users" — instead "$1,247 / month reclaimable, here's where." Click any waste category to drill into the exact users behind it.
Reclaiming a seat removes the user from the Jira/JSM access group you mapped — Atlassian stops billing them, and one-click Add back undoes it instantly. Recoup never deletes, suspends or hard-deactivates accounts. Identity and SSO stay untouched.
Reclaim up to 50 seats at once. Recoup flags likely service, bot and integration accounts with deterministic rules and excludes them server-side — alongside org admins and your own account. The modal shows you exactly who's excluded, and why, before you click.
A scheduled scan re-audits every seat each week, read-only. A seat reaches the queue only after it's flagged on two consecutive scans — never a one-off blip. Review the list, keep anyone with one click, clear the rest with one more. Nothing is ever removed without a human.
Every action a Recoup admin takes is recorded with a full before/after diff — successes and refusals alike. Each row carries the required reason written by the admin who acted. Export to CSV, formatted for FP&A and security reviews.
Most customers reclaim many times the subscription cost in the very first scan. 30-day free trial, no credit card, cancel any time.
Atlassian volume discounts apply automatically — ~20% off at 100+ seats, ~35% at 500+. For 5,000+ seats or annual prepay, talk to us.
Writers, translators and content teams need it constantly — for quotes, for limits, for sign-off. So they copy the whole page into some random web counter, wait, and copy it back. Every time. On internal documentation that should never leave the building.
Word Count puts the number where it belongs: in the page byline, the moment the page loads.
A live count for every page, plus a full breakdown one click away — computed on Atlassian's Forge platform from the page you're already viewing.
Word count, character count and reading time sit right next to the avatar and timestamp at the top of every page — no clicking, no highlighting, no copy-pasting into another tool. The count refreshes every time the page renders.
Click the byline for words and characters — with and without spaces — and estimated reading time, laid out clearly. Everything a writer or translator needs to quote, scope or sign off a page.
A per-heading breakdown shows the word count for each section of the page — so you can spot the bloated parts, balance a doc, or quote on a single section without doing the maths yourself.
A one-tap toggle excludes macros and embeds — code blocks, panels, smart links, status badges — for a clean body-text count translators can quote on. And the whole app stores nothing and sends nothing: no database, no analytics, no third-party calls.
Bug reports, release checklists, onboarding epics — the same fields and the same sub-task breakdown, typed out by hand every single time, and slightly differently in every project.
Issue Templates prefills the Jira Create screen the instant you pick a template — fields, labels, description, and a whole hierarchy of child work items, from Epic → Story → Subtask to any custom hierarchy like Initiative → Feature → Epic → Story — across one project or every project at once. Works on Jira Software, Jira Work Management, and Jira Service Management.
Author a template once, then apply it right on the Jira Create screen — fields, labels, description and a whole work-item tree — computed on Atlassian's Forge platform, with nothing leaving your tenancy.
Choose a template in the Apply Template field and the work item fills itself in the instant you pick it — summary, description, labels and priority. No retyping, no copy-pasting the same structure into every new issue.
Hierarchical templates create every child work item for you — a full Epic → Story → Subtask tree, or a custom Jira Premium hierarchy like Initiative → Feature → Epic → Story, from a single pick, named and parented automatically. Repeatable processes get created the same correct way every time.
Author a template once and scope it to a single project, a category, a work type, or every project at once — managed from one authoring page. New projects that match a broad scope are picked up automatically.
Templates resolve context as they apply — {{today}}, {{now+7d}}, {{parent.key}}, {{epic.summary}}, {{currentUser.name}} and more.
Apply a template to any existing work item — empty fields fill in (overwrite is opt-in) and the child tree is created underneath.
Back up templates to JSON and restore with a dry-run preview, or start from a curated examples gallery in one click.
Manage, Delete-any and Import/Export roles for groups or people. Jira admins always keep full access.
Automation works — until it silently stops, or throws at 3 a.m. with no logs, no line numbers, no way to replay what happened, and no way back to the version that worked. The whole scripting category has shipped that experience for a decade.
Hooks is the ScriptRunner alternative built the other way round: every run — manual, event-triggered, scheduled, or bulk — records its logs, timing, returned value, and errors mapped to the exact line of your TypeScript. Every save is versioned. Every mistake is one click from undone.
Write TypeScript — not Groovy, not a proprietary DSL — and run it from a console, on ten kinds of work-item events scoped to exactly the projects and types you pick, on schedules described in plain words, or as background bulk jobs over a JQL. Rehearse with dry-run before anything touches Jira. Built on Forge with zero external egress, so your scripts never leave Atlassian's infrastructure.
Every sprint review, someone screenshots a Jira dashboard, pastes it on a page, and by Thursday it's wrong. The people reading the page can't drill in, can't trust the numbers, and can't see what changed.
Bespoke puts a live chart on the page instead — built from a project, a saved filter, or any JQL search, rendered fresh from Jira every time the page loads, filtered to what each viewer is allowed to see.
Pie, donut, bar, stacked bar or a KPI tile — from a project, saved filter, project type, category, or a JQL search with Jira-grade autocomplete. Every viewer sees only the work items their Jira permissions allow.
The editor opens fullscreen the moment you insert the macro. Pick a source — searchable project and filter pickers, or JQL that autocompletes fields, operators and live values like Jira's own search — choose a chart type, and the preview renders real data as you go.
The chart lives in the page and refreshes from Jira on every view. Each reader sees a chart computed from their own Jira permissions — nothing is published that they couldn't already see, and the app stores nothing at all.
You can make a table in Confluence — but you can't filter it, total it, or chart it. So the data gets exported to a spreadsheet, summarised there, and pasted back as a screenshot that's stale by Thursday. The incumbent fix means wrapping your table in three nested macros.
Sift does the whole thing in one macro: pick a table on the page (it stays live), an attached CSV/TSV/JSON file, or pasted data — add saved filters, pivot it, and show an interactive table, a chart, or both.
Source → saved filters → optional pivot → display. Text, pick-list, number-range, and date-range filters; Sum, Count, Count distinct, Average, Min, Max, or Median pivots with totals; column, bar, stacked bar, line, area, pie, donut, or KPI-card charts. Up to 10,000 rows.
Any table already on the page stays a live source — edit the table and the report updates on the next view. Or attach a CSV, TSV, or JSON file up to 4 MB, or paste a small dataset straight into the macro. No exporting to a spreadsheet, no nesting macros inside macros.
On the published page, every reader can sort columns, filter, search, page through rows, and export CSV — without touching the macro. Data is read with each viewer's own permissions, processed in memory, and never stored or sent anywhere.
The legacy HTML macros were built for Confluence Server: paste code into an unstyled box, save, and hope. Safety is an admin allowlist bolted on the side, and the market leader's include-from-URL design ships your content through external infrastructure — then doubled its price.
HTML for Confluence Pages is cloud-first: a syntax-highlighted editor with a live preview, DOMPurify sanitization with three profiles, site-wide admin guardrails, and a sealed double sandbox — running entirely on Atlassian.
HTML, CSS and JS tabs with syntax highlighting and a live preview through the exact published pipeline. Strict, Standard, or Trusted sanitization per block; a JavaScript kill-switch and profile ceiling for admins; attached-file rendering up to 10 MB.
Each language gets its own tab — highlighting, line numbers, bracket matching, undo history — with a live preview beside it that renders through the same sanitize-and-sandbox pipeline as the published page. When sanitization removes something, a banner says exactly what.
Author code runs on a null origin inside a sandboxed frame within the app's own isolated frame — no access to Confluence data, cookies, or anything beyond its block. Admins hold a site-wide JavaScript kill-switch and a maximum-profile ceiling authors can't exceed.
Planning poker usually lives in a separate web tool — its own room links, its own logins, its own servers — or a paid app that runs your sprint data through external infrastructure. Either way the team estimates in one place and then someone re-keys the agreed number into each work item by hand.
Showdown runs the whole session inside Jira, on your real work items, and writes the agreed estimate straight to the field. Pure Forge, zero external egress, Runs on Atlassian — the votes and the numbers never leave your site.
Pull a sprint or a JQL search of up to 50 work items into a room, estimate them together, and the agreed number saves straight to a field. Three ways to run it, hidden votes until the reveal, and nothing ever leaves your site.
Run an interactive live room where the team votes at once and the facilitator reveals hidden votes in one click — with a discussion timer, auto-reveal, and spectator mode. Or open async voting so people estimate on their own schedule across time zones. Or size a backlog fast by dragging work items into buckets on a shared board.
Pick a sprint or write a JQL search — up to 50 work items per session. When the team agrees, the number saves to any Jira number field, Story Points first, written as the facilitator so your project's permissions always apply. Reference work items anchor the scale so everyone estimates against the same yardstick.
Showdown is pure Forge with zero external egress — every vote, every session, every saved estimate stays inside your Atlassian tenancy. Votes are hidden from everyone until the facilitator reveals or the async round closes, so no one anchors on someone else's number.
Same principles across the whole portfolio. Hosted by Atlassian Forge, nothing leaves your tenancy, nothing destructive, every output you can defend in a review.
All processing happens inside Atlassian's runtime. No third-party servers, no AI vendor, no shadow IT, no data leaving your region.
If a recommendation can't be priced, it doesn't ship. Admins and finance see savings, not abstract counts.
Every action an app takes is one click from undo. Nothing auto-deactivates, nothing is destroyed.
Minimal, transparent scopes and no outbound calls beyond Atlassian's own APIs. The security review writes itself.
More questions? Email support@taskhooker.com — answers usually within a few hours.
Taskhooker builds Forge-native apps for the Atlassian Marketplace. There are six: Recoup (finds and reclaims wasted Atlassian licenses across Jira, Confluence, JSM, and JPD, in dollars), Word Count for Confluence (live word count and reading time in every page byline), Issue Templates (reusable Jira templates that prefill the Create screen with smart values, create full Epic → Story → Subtask trees, and apply to new or existing work items), Hooks (observable, version-controlled TypeScript automation for Jira — a ScriptRunner alternative, in development), Bespoke (charts live Jira data on a Confluence page from a JQL search or saved filter, with viewer-permission data access; Marketplace submission pending), Sift (filters, pivots, and charts any table, attached data file, or pasted data on a Confluence page in one macro; live on the Atlassian Marketplace), and HTML for Confluence Pages (a sanitized, sandboxed HTML Block macro with a real code editor and admin guardrails; live on the Atlassian Marketplace).
No. Every Taskhooker app runs entirely on Atlassian Forge — Atlassian hosts every function call and every storage write. We operate no third-party servers, and we use no analytics, telemetry, or AI vendors. Your data never leaves Atlassian's infrastructure.
Word Count for Confluence is completely free. Issue Templates is free for small teams (up to 10 users). Recoup is a paid app for organisations on the Atlassian stack — see its pricing. Current pricing for each app is on its Atlassian Marketplace listing.
Forge is Atlassian's hosted platform for building Marketplace apps. Apps run inside Atlassian's own sandboxed runtime and store data in Forge Key Value Store (encrypted at rest, tied to your site's data region). Building on Forge is why Taskhooker apps need no external servers and keep your data inside Atlassian.
Jira, Confluence, Jira Service Management, and Jira Product Discovery on Atlassian Cloud. Recoup spans all four; Issue Templates covers Jira — including Jira Software, Jira Work Management, and Jira Service Management; Word Count is for Confluence.
Taskhooker is based in Melbourne, Australia. Email support@taskhooker.com for help with any app — replies usually land within a few hours.
Start free with Word Count or Issue Templates, or put a dollar figure on your Atlassian waste with Recoup. Each installs from the Marketplace in under a minute.
Questions from your security team or CFO? Email support@taskhooker.com — answers usually within a few hours.
A security review, a CFO question, enterprise pricing, or a feature you wish existed — tell us. Replies usually land within a few hours, from a real person in Melbourne.
Prefer email? support@taskhooker.com