Tin ships 42 built-in workflows. Every workflow also takes a project_id; required inputs are bold. An output of — means the workflow saves its results through its own executor rather than one declared artifact.
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Start here: onboard this business (agent only, human review)growth.onboarding |
Part 1: your agent fills the form from the codebase and the founder's two answers, and Tin writes the plan: the marketing systems ranked, what is usable in Tin, and what Tin would run for each. Part 2: the founder says in their words what Tin takes on and connects what it needs; Tin then sets those systems up as schedules and first runs and tells them what runs, what to expect and where to watch. | product_url, system_hosting, system_repository, system_analytics, system_search_console, system_mailbox, system_payments, system_crm, system_support, system_docs, system_newsletter, system_ads, notes, priority, founder_hours, budget, urgency, outcome, timezone, hard_nos |
— |
Start here: plan how Tin grows this business (agent only)growth.onboarding_plan |
From the product URL when there is one, the systems and notes your agent fills from the codebase, and the founder's multiple-choice constraints, read the site and any memory and write one plan: the marketing systems ranked for this business, which are usable in Tin today, a proposed scope, and what Tin would run system by system. Run inside Start here: onboard this business to have Tin set the picks up. | product_url, system_hosting, system_repository, system_analytics, system_search_console, system_mailbox, system_payments, system_crm, system_support, system_docs, system_newsletter, system_ads, notes, priority, founder_hours, budget, urgency, outcome, timezone, hard_nos |
reports/GROWTH_ONBOARDING_PLAN.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Run the organic traffic systemorganic.traffic_system |
Audit your website and research buyer searches, then save an editable content plan and draft its next article for review. With GitHub connected, website.change puts the approved article on the site: Tin merges its PR once your required checks pass when you approved it with commit to main, and otherwise leaves the PR for you; without GitHub its Markdown stays in Tin. Then draft the next planned article each week, one review at a time. Before new articles, refresh one existing page now and again each week. Each week, take a traffic snapshot and decide what every page needs before the refresh picks one. With GitHub connected, also fix what the audit found through website.change, in one pull request for you to merge. Never sends outreach. | site_url, market, buyer_context, start_date, duration, keyword_max_cost_usd, technical_fix, content_delivery, expected_repository, repository_serves_site, article_weekdays, article_local_time |
— |
Prepare article PRcontent.deliver |
Put an approved article, answer page or public article on the connected website repository in the site's own format (Markdown, a component, plain HTML or whatever it uses), adding its route when the site has none. Keep its wording, open a reviewable GitHub PR, and keep the Markdown original in Tin. Tin merges the PR only when your delivery setting commits to main, the page keeps the approved wording, and the PR adds nothing but the page, or the page at the route you chose for such pages. | source_run_id, retry_run_id, expected_repository, direction |
Unmerged GitHub PR, receipt content/deliveries/{run_id}.md |
Change the website (agent only)website.change |
Put approved changes on your website repository: an approved article, answer page or public article, adapted to the site's own format at the route you chose with its wording kept; the technical fixes the latest audit found; the redirects and noindex changes your page decisions and site plan made; the copy fix planned from what people said about your product; or the blog index plan. Each fix, planned change or plan is a change you approve or decline once in Tin. What you approved publishes: Tin merges the pull request once your repository's required checks pass, then checks the live site. Anything else, a page whose wording Tin can't confirm, and any change to a protected page such as /sign-in or one you added to the project's protected pages, opens a pull request for you to merge. Deleting a page stays with you. | source, source_run_id, expected_repository, repository_serves_site, finding_ids, decisions, protected_paths, retry_run_id, direction |
GitHub PR, merged when approved, receipt website/changes/{run_id}.md |
Draft planned content (human review)content.generate |
Check current coverage before drafting the next item in your content plan, in your style: a new article, an answer page for a buyer question AI assistants miss you on, or a refresh of an existing page's title, snippet and opening. Save useful copy for review, or explain why no draft is needed. After approval an article follows your delivery setting, an answer page goes to your site through website.change at the route you chose, and a refresh changes exactly the approved lines. The roadmap stays unchanged. | program_id, delivery, item_id, rewrite, plan_revision, direction |
content/drafts/{run_id}.md |
Refresh an existing page (human review)content.refresh |
Retired: Draft planned content refreshes the pages your content plan schedules. Saved schedules keep running: pick the page from your latest audit with the most search impressions at stake: searchers see it near the top but rarely click, or it ranks just below the top results. Propose a new title, meta description and, where they miss the search, H1 and opening answer, in your positioning and voice. After you approve in Decisions, Tin changes exactly those lines in your site's source and follows your delivery setting. A page waits six weeks after a refresh goes live, and later runs report its clicks before and after. | direction |
content/refreshes/{run_folder}.md |
Fix what the audit foundorganic.technical_fix |
Recheck an audit's findings on the live site and fix every one Tin can in one PR: indexing, the sitemap and robots.txt, redirects and merges, page structure, accessibility, structured data, social previews and internal links, in any framework. Your coding agent answers the judgment calls first. Copy stays with the content workflows, and steps outside the repository are listed. Tin checks each finding on the live site after you deploy. Never merges or deploys. | audit_run_id, audit_revision, finding_ids, decisions, expected_repository, repository_serves_site, context |
Unmerged GitHub PR, receipt reports/technical-fix/{run_id}/RESULT.md |
Plan upcoming contentcontent.plan |
Turn your audit, keyword research, competitors and product into an editable two-week to six-month roadmap that ships every week: alternatives and comparison pages for your real competitors, answer pages for the questions buyers ask search and AI assistants, pages for each workflow, integration or use case your product has, guides, and refreshes of existing pages. A planning agent researches and proposes; Tin checks each piece against your site and fills every week. Save to My system to prepare weekly batches. Does not write or publish anything. | audit_run_id, keyword_run_id, start_date, duration, pieces_per_batch, context_files, amendment_id |
— |
Research the content plancontent.plan_research |
The planning agent inside Plan upcoming content: reads the brief Tin prepared, the audit, keyword research, competitors, Code map and brand files, searches where a choice depends on what ranks, and proposes a prioritized portfolio of pages for every week. Started by Plan upcoming content, never on its own. | plan_run_id, brief_folder, brief_revision, host, slots |
reports/content-plan/{run_id}/PORTFOLIO.md |
Plan keyword opportunitiesorganic.keyword_plan |
Research buyer searches, competitor keywords, and a bounded sample of Google results. Get an evidence-backed keyword inventory for content planning. No audit or GitHub required; does not create a calendar, write articles, or publish. | site_url, market, buyer_context, seed_phrases, competitor_hosts, audit_run_id, use_search_console, max_cost_usd |
— |
Audit organic visibilityorganic.audit |
Audit technical SEO and AI visibility (GEO). Read robots.txt, sitemaps and Search Console queries, check up to 100 public pages by default, chosen by search impressions and URL section, and see whether AI answers mention, cite, or recommend your business, in the ChatGPT and Gemini apps, Google AI Mode and AI Overviews, and the Claude and Perplexity API models. Get prioritized findings with evidence and fixes. No GitHub required. | site_url, market, refresh_questions |
— |
Improve site healthsite.health_improve |
Retired: use Fix what the audit found, which repairs every finding of an organic audit in one pull request. Saved schedules of this workflow keep running: it inspects one public site against its GitHub repository, makes one bounded mechanical improvement and opens a pull request for review. | site_url, focus, change_budget, context |
Unmerged GitHub PR, receipt reports/site-health/{run_id}.md |
Audit AI visibilityvisibility.audit |
Retired: the organic audit measures AI visibility on the buyer prompt panel's questions. Saved schedules keep running: measure whether Luna finds and recommends a chosen target across five target-blind buyer questions, then publish AI_VISIBILITY.md. | target |
— |
Draft an answer page (human review)content.answer_page |
Retired: Draft planned content writes answer pages for the AI-visibility gaps your content plan schedules. Saved schedules keep running: create a public-facing Markdown content draft from the latest AI visibility findings; not for general advice or internal business questions. | — | — |
Draft a public article (human review)content.public_article |
Turn durable project evidence and original thinking into a rigorous, reviewable public article. | brief, audience, goal, length, source_policy, voice_notes |
content/articles/{run_folder}.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Build an email outreach shortlistoutreach.email_shortlist |
Review the connected Gmail and Calendar history to create a bounded, evidence-backed outreach shortlist in project Files. | objective, lookback_days, target_count, selection_notes, include_calendar |
outreach/email/SHORTLIST.csv |
Run an email outreach campaign (human review)outreach.email_campaign |
Snapshot selected shortlist recipients and exact email copy for approval, then send with reply-aware follow-up timers. | subject, body, follow_up_body, follow_up_delay_days, send_interval_seconds, daily_send_cap, send_window_start, send_window_end, send_timezone |
— |
Submit to awesome lists (human review)outreach.awesome_submit |
Take the lists an awesome lists run found, place your entry in each list's current file and show you every exact change. After you approve, Tin forks each list and opens one pull request or issue from your GitHub account. It never submits to the same list twice. | source_run_id, lists |
— |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Walk the signup as a new userqa.signup_walkthrough |
Sign up for your product as a stranger with a Tin-owned test account, verify the email, reach first activation, and report every break along the way. | product_url, notes |
reports/qa/signup/{host}/{started_at}.md |
Map the product from its codeproduct.code_map |
Read the connected GitHub repository and write the Code map section of project memory: every user-facing surface with its exposure, plans and gating, integrations, and tech stack, each cited to file and line. | focus, depth |
wiki/INDEX.md (Code map section) |
Map what the product actually doesproduct.deep_dive |
Read the docs, sign in and use your product with a Tin-owned account, reconcile with the code map, and write the Feature map section of project memory with evidence on every feature. | product_url, docs_urls, depth, notes |
wiki/INDEX.md (Feature map section) |
Audit the product feature by featureqa.product_audit |
Exercise every feature in the project's Feature map as a user with a Tin-owned account and report what works, what is broken, and what to improve, with reproducible evidence. | product_url, scope, depth, notes |
reports/qa/audit/{host}/{started_at}.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Design a brand character (human review)creative.character |
Use when the founder has an explicit brand-design need. Design a vector mascot as an animatable SVG character in project Files (three mouth shapes, a blink, and a payoff expression), ready to narrate demo videos and appear in marketing. Tin reads the product page and project memory itself and asks one model for the drawing; about two minutes, no sandbox. | slug, brief, product_url, notes |
— |
Make a product demo video (human review)creative.product_demo |
Capture the founder's live product at phone size and render a smooth 9:16 short-form demo video (TikTok, Reels, Shorts) with a pain hook, voiceover, word-synced captions, tap and scroll motion, and an optional narrating character from project Files. | slug, product_url, angle, character, voice, backdrop, language, notes |
demos/{slug}.mp4 |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Assess paid ads for this businessads.assessment |
Decide whether Google Search ads fit: a verdict, the constraint that binds it, a scorecard and a rough campaign shape from Keyword Planner, DataForSEO, Search Console when connected and the site. Advisory only; nothing is created or spent on ads. | product_url, market, onboarding_run_id, keyword_run_id, audit_run_id, budget, hard_nos, price_point, billing, gross_margin, conversion_event, ads_history, ads_platforms, ads_spend_usd, ads_clicks, ads_purchases, ads_soft_conversions, ads_notes, competitor_domains, notes, max_cost_usd |
— |
Launch a Google Ads campaign (human review)ads.launch |
Turn an assessment's campaign shape into one live Google Search campaign in your own Ads account. Creates nothing until you approve the exact plan. | assessment_run_id, daily_budget_usd, cpc_ceiling_usd, landing_page_url, campaign_name, notes, max_cost_usd |
— |
Check the Google Ads campaignads.monitor |
Read the launched campaign, add negatives from wasted search terms, pause disapproved ads and wasteful keywords on its own, and propose budget or bidding changes for your approval. | launch_run_id, auto_negatives_per_run, notes, max_cost_usd |
— |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Revise X writing (agent only)social.x_revise |
Revise an X draft and remember clear writing preferences from feedback. | source_run_id, post_id, feedback, review_token, snapshot, references |
— |
Draft for Xsocial.x_draft |
Describe a product update. Tin sets up your voice if needed, then writes a draft. | direction, post_count, notes, evidence_paths, plan_path, asset_paths, supplied_samples, source_path, preferences |
— |
Learn my X writing style (human review)social.x_style |
Learn your voice from your own public X posts and replies, up to 50 spread across your history, together with any writing you supply. Review the proposed guide before future X drafts use it. | sample_source, supplied_samples, source_path, account_id, preferences, direction |
— |
Publish an approved X post (agent only)social.x_publish |
Publish the exact post and media confirmed through Tin's X preview. | approval_id |
— |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Recover failed payments (human review)revenue.payment_recovery |
Find customers whose automatic Stripe payment failed and is still unpaid, and write each one a short personal email in your voice: their plan, why the card failed, their history with you and your latest mail with them, with Stripe's own payment link. After you approve, Tin checks each invoice again and sends only the unpaid ones from your Gmail. Runs weekly by default; a person is emailed at most once a month, and an unanswered Decision closes unsent after six days. | lookback_days, max_customers, products |
— |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Collect connectionsconnections.collect |
Collect visible second-degree connections through selected friends. | friends, keywords, execution |
— |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Capture writing style (human review)style.capture |
Use your coding agent to select writing samples, or add samples here. Review the proposed voice guide in Decisions; your coding agent can revise it first. Once you approve it, future content uses it. Nothing is published. | author_id, source_path, direction |
— |
Generate project designcontent.design_md |
Analyze a project repository and publish its DESIGN.md. | — | — |
Garden project memoryproject.memory |
Consolidate durable project outputs into the project wiki. | — | — |
Scan projectscan.report |
Review durable project knowledge against the system scanning guide and publish SCAN.md. | — | — |
Create a weekly project briefproject.weekly_brief |
Summarize what moved, what needs attention, and the smallest useful next steps from this project's durable week of activity. | detail, include_open_items, focus |
— |
One-off project task (task)project.task |
Use an isolated Codex task when the founder asks Tin to inspect, research, or change project files and no narrower registered workflow fits. | instruction, title |
— |
Research a question deeplyresearch.deep_dive |
Test a project question and its upstream assumptions against current, source-backed evidence. | question, depth, audience, known_assumptions, constraints |
reports/RESEARCH_DEEP_DIVE.md |
Create a diagram (human review)content.diagram |
Turn a process or system into one clear diagram using approved brand guidance. Its source stays editable in project Files. | brief, slug, direction, context |
diagrams/{slug}.mmd |
27 contributed packages from workflow_packages/ are selected in src/tin_lite/public_workflows.py and published with the next catalog sync. The package guide shows how they build on the built-ins.
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Find the errors your users search fororganic.error_surface |
Read the connected repository for the error messages your product shows users, check which your docs already answer, and get a ranked list of pages to write with the cause and fix from the code, ready to add to Plan upcoming content as a context file. It never writes pages, opens pull requests or estimates search volume. | focus, depth, self_hosted, max_opportunities, docs_paths |
reports/error-surface/{run_id}.md |
Turn unlinked mentions into backlink asksorganic.mention_backlinks |
Each week, find pages and AI-cited sources that name your product without linking to your site, and get one short ask per page in your voice, never repeating an ask from an earlier week. It never sends, posts or contacts anyone. | brand_name, domain, aliases, max_mentions, recency_days |
reports/backlink-asks/{run_id}.md |
Take a weekly traffic snapshot and growth readoutorganic.traffic_snapshot |
Each week, read Search Console, and PostHog when it is connected, once into one file. Per landing page it holds clicks, impressions and top searches, the latest audit's checks and, with PostHog, sessions by channel, first-touch signups and activation and reading depth; Page decisions, the page tree and the blog index read it instead of querying again. The same file carries the weekly growth readout: where visitors and signups came from, by channel and by named AI assistant, search with a brand split, content and landing pages (search only without PostHog), with a change called only when an exact test with Holm's correction says it is real, and each decision naming the workflow that acts on it. No model calls; a failed read stays empty, never zero. | signup_event, activation_event, activation_window_days, paid_event, website_hosts, brand_terms, exclude_email_domains, internal_flag_property, always_include, impressions_reliable_from, audit_run_id, content_paths, min_count, optional_rules, launch_dates |
analytics/traffic-snapshot.json |
Decide what each page needsorganic.content_efficacy |
Each week, judge every page the site shows in search from its clicks, visits, signups and audit findings: keep it, refresh it, rewrite it, merge it into a stronger page or retire it. Merges and retirements are held back whenever paid visits, links or a safe redirect target are unknown. website.change reads each URL change and asks you before it changes the site; pages to refresh or rewrite are listed. Edits nothing itself. | brand_terms, protected_paths, utility_paths, ad_paths, links_file, audit_run_id, max_rows |
content/efficacy.md |
Plan the site's page tree and redirectsorganic.site_architecture |
Plan the site's page tree, URL and navigation rules from live data: the latest organic audit's summary (click depth, inbound links and checks for each page it crawled), a year of Search Console clicks, the traffic snapshot's visits and Page decisions. One model call names and groups the sections; code computes the rest. When URLs must change, it lists the exact redirects for website.change, which asks you about each one before it changes the site. Follow-ups after a change compare clicks with the saved baseline. It does not read the repository: click depth and possible orphans come from the pages the audit read. Plans only; changes nothing itself. | mode, planned_change, new_paths, new_origin, applied_on, key_pages |
reports/organic/site-architecture/SITE_ARCHITECTURE.md |
Plan the blog indexcontent.blog_index |
Plan a blog index that makes every published article reachable within two clicks: trace where your connected repository keeps its posts, read it without changing it, and write a plan with the exact files for an index that lists them from that source, with dates, summaries, categories when there are enough posts, an RSS feed and sitemap dates taken from each post. Uses the route you chose for articles; if none is chosen yet, it asks you once instead. Reports each post's search clicks and impressions. Opens no pull request: website.change builds the index from the plan once you approve it. | mode, page_size, featured |
reports/blog-index/{run_id}/PLAN.md |
Choose the buyer questions AI visibility is measured onorganic.prompt_panel |
Write 36 buyer prompts in the words people type into an assistant: four intent families of eight, led by the category your product sells in, plus four that name your product. Code picks the families from your positioning and your own Search Console searches, leaving out searches for your name and comparison searches, and sets their weights; one model call writes the prompts, and code checks every rule before publishing. The organic audit asks the newest panel on its next run, so AI visibility is measured on the same questions every time. No review step: a panel that fails the checks is not published. | target, seed_keywords, competitor_names |
reports/research/prompt-panel/PROMPT_PANEL.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Find who pays and staysoutreach.paying_segment |
A founder with Stripe subscriptions learns which customers keep paying, and gets exact inputs for the outreach shortlist, keyword plan and ads assessment to aim at them. Read-only; no model calls, and it starts nothing itself. | retention_days, lookback_days, min_segment_size, exclude_domains, product_summary |
reports/outreach/PAYING_SEGMENT.md |
Find the talks and podcasts worth pitchingoutreach.speaking_shortlist |
Finds conferences, meetups and podcasts with an open call that fit what your business can speak to, verifies each deadline and submission rule, and drafts one pitch per venue in your voice. Skips venues pitched in earlier runs; never submits or emails anything. | expertise, format_preference, already_pitched, max_venues, tone_notes |
reports/outreach/speaking/{run_id}.md |
Get your product taught in the courses that pick students' toolsoutreach.syllabus_placement |
For a product students could learn on: finds public courses that teach its job, ranks them by when the instructor next picks tools, and drafts a teaching kit and one note per course in your voice. Skips courses earlier runs already listed; nothing is sent. | teaching_job, alternatives, subjects, geography, education_offer, max_courses |
reports/outreach/syllabus/{run_id}.md |
Get listed where your integrations' users already shopoutreach.marketplace_listings |
Reads the integrations in your Code map, checks each partner's app marketplace for you and your competitors, tests its listing rules against your site, and names the one to three listings to submit this week with the form filled in, in your voice. Never repeats a listing an earlier run prepared, and never submits anything. | product_url, max_picks, skip |
reports/outreach/marketplaces/{run_id}.md |
Find campus events to reach student buyersoutreach.campus_events |
For a business whose buyers are students: finds upcoming campus events near them, or compares ones you paste, ranks them and drafts one small activation to pitch. Research only; never contacts organizers, pays for a sponsorship or collects student data. | event_briefs, audience, business, budget |
reports/outreach/campus-events/{run_id}.md |
Get your product into the awesome lists that will actually accept itoutreach.awesome_lists |
A founder with a public product or repository gets the curated GitHub lists whose own rules it meets, ranked, with the exact entry and pull request text for each, and the one fix that would unlock the most others. Submit to awesome lists sends the entries you approve from your GitHub account. | product_url, repository_url, category, avoid |
reports/awesome-lists/{run_id}.md |
Find threads where people ask for what you make (human review)outreach.community_threads |
Finds open public threads on Reddit, Hacker News, GitHub Discussions and forums where someone is asking for what your product does, and drafts one helpful, disclosed reply per thread in your voice for you to post. Skips threads from earlier runs; never posts or messages anyone. | focus, competitors, platforms, lookback_days, max_opportunities |
reports/community-threads/{run_id}.md |
Get featured in the newsletters and communities your buyers readoutreach.newsletter_placements |
Finds newsletters and communities your buyers read that have a written way in, such as a featured-tool slot, reader submissions, a showcase thread or a sponsorship, verifies each one's rules, and drafts one submission per placement in your voice. Skips placements drafted in earlier runs; never submits, pays or contacts anyone. | focus, geography, budget_usd, max_picks |
reports/outreach/newsletters/{run_id}.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Product analytics briefproduct.analytics_brief |
A recurring PostHog brief: ordered activation, event trends, traffic, error signals and a supported breakdown, with reproducible evidence. | reporting_days, as_of_utc, event_mapping, exclusions, website_hosts, exclude_email_domains, internal_flag_property |
reports/analytics/{run_id}.md |
Check if a buyer would trust your checkout (human review)qa.buyer_trust |
Run before launch or after a signup walkthrough: get a fixed-rule PASS, FAIL or UNVERIFIED verdict on whether a careful buyer would trust your site and checkout, with ranked fixes handed to Improve site health or to you. Public GET requests only; it never signs in, submits forms, changes your site or claims CVE coverage. | product_url, depth, notes |
reports/BUYER_TRUST.md |
Turn what people say about your product into a copy fixqa.feedback_to_fix |
Read public threads where people react to your product, keep what at least two different people say in their own words, and plan the change to the page copy that caused it, or report why not. You approve the change in Decisions and website.change puts it on your site. Never replies or posts. | platforms, lookback_days |
reports/feedback-to-fix/{run_id}/PLAN.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Capture brand and design (human review)brand.capture |
Inspect your website and optional repository once. Propose a concise brand guide for future marketing and document the product design you have today. Review both before using them; your coding agent can revise them first. Existing documents stay unchanged. | product_url, notes, intent, include_repository, source_path |
brand/proposals/{run_folder}/BRAND.md |
Draft an embeddable score quiz (human review)growth.score_quiz |
Draft a self-contained scored quiz widget to paste onto your own site: a few questions about the visitor's situation, an instant verdict and a call to action. A free interactive tool is a lead magnet, not another article or email. Draft only; Tin never deploys it, and the widget makes no network calls. | product_name, quiz_topic, audience, signup_url, product_summary, voice_notes |
reports/SCORE_QUIZ.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Plan a sustainable social week (human review)social.content_plan |
Use current project context to make an editable social content plan with pillars, a weekly calendar, and a routine sized to available time. | goal, hours_per_week, platforms, context_text |
social/PLAN.md |
Draft social posts from a weekly plan or article (human review)social.post_batch |
Draft reviewable X and LinkedIn posts from an editable weekly plan and current source notes, or repurpose an article. Nothing is posted or scheduled. | mode, plan_path, sources_path, raw_material, article_path, article_text |
social/posts/{date}-{slug}.md |
Compose X posts directlysocial.x_compose |
Composition step; use Draft for X for automatic voice setup. Turn current project facts and your direction into one X draft or a small set of distinct drafts, ready for individual review and editing. | direction, post_count, notes, evidence_paths, plan_path, asset_paths, account_id |
social/x-drafts/{date}-{slug}.json |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Watch competitors for pricing and product changescompetitor.watch |
Each week Tin rereads your known competitors' public pricing and changelog pages and reports only material changes, with a suggested response. It never signs up, contacts anyone or changes your pricing. | competitor_urls, max_competitors, watch_for, our_positioning |
reports/competitor-watch/{run_id}.md |
Catch the users of a tool that is shutting downcompetitor.sunset_rescue |
Weekly or on demand: find a nearby tool that is shutting down, dropping its free plan, repricing or relicensing, check that your product can honestly take its users, and get a dated migration kit with their export mapped to your product, the import gap, and ready inputs for the migration page and the importer. Quiet weeks end with a short watch list. | known_event, lookback_days |
reports/sunset-rescue/{run_id}.md |
| Workflow | What it does | Inputs | Output |
|---|---|---|---|
Announce a new release (human review)content.release_announce |
Turn a changelog or release notes into posts written for X, LinkedIn, Reddit and Hacker News, plus a newsletter email for people who already follow the product, mentioning only what actually shipped. Drafts only: Tin never posts, sends or publishes them. | changelog, product_name, release_url, audience, tone, voice_notes |
content/releases/{date}-{slug}.md |
Add a starter developers can clonegrowth.framework_starter |
For a product developers build on: find the SDK, API, webhook or embed a developer calls first in your connected repository, pick the framework its users build with, and open an unmerged PR adding a small runnable starter under examples/ with a five-minute README. Says no when there is nothing a developer integrates, and never repeats a starter. Never merges, deploys, publishes a package or creates a repository. | framework, use_case |
Unmerged GitHub PR, receipt reports/framework-starter/{run_id}/RESULT.md |