[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DKGG3F7M564WBQTNPDA2J7":3,"skill-same:01M6DKGG3F7M564WBQTNPDA2J7":104},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":37,"publishedAt":58,"linkOnly":59,"markdownContent":60,"markdownBody":61,"frontMatter":62,"refName":80,"commitSha":81,"skillDirectory":82,"forksCount":83,"repositoryHtmlUrl":84,"repositoryHomepageUrl":85,"ownerHtmlUrl":86,"ownerBlogUrl":87,"ownerDescription":88,"updatedAt":89,"install":90,"resources":103},"01M6DKGG3F7M564WBQTNPDA2J7","openseo-competitor-analysis",null,"Deep-dive ONE competitor's organic footprint — exact ranking keywords and URLs, content themes, backlink profile, and exploitable gaps — with findings written into brand\u002Fcompetitors.md. Use this skill when the user names a competitor and wants to know what to learn from them, counter, or outrank, including head-to-head comparisons against the user's own domain. For market-level mapping first, use openseo-competitive-landscape. Triggers: \"analyze competitor\", \"competitor keywords\", \"competitor backlinks\", \"beat \u003Ccompetitor>\", \"competitor seo teardown\".","MoizIbnYousaf\u002Fmarketing-cli","MoizIbnYousaf","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F148609638?v=4","01M6DK31T63X0A4VD3HV88V5E4","Abdul Moiz Shahzad","01M6DK31ZWA28MZK3202BZRXAB",35,"MIT","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Fopenseo-competitor-analysis\u002FSKILL.md",[18,23,26,29,34],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000035","市场营销",[38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57],"openseo competitor analysis","analysis","competitor analysis","strategy","triggers","teardown","deep","landscape","positioning","domain","catalog","MCP","brand","analyze","competitors","Bash","api","seo","learn","run","2026-11-10 10:12:30",false,"---\nname: openseo-competitor-analysis\ndescription: >-\n  Deep-dive ONE competitor's organic footprint — exact ranking keywords and\n  URLs, content themes, backlink profile, and exploitable gaps — with\n  findings written into brand\u002Fcompetitors.md. Use this skill when the user\n  names a competitor and wants to know what to learn from them, counter, or\n  outrank, including head-to-head comparisons against the user's own domain.\n  For market-level mapping first, use openseo-competitive-landscape.\n  Triggers: \"analyze competitor\", \"competitor keywords\", \"competitor\n  backlinks\", \"beat \u003Ccompetitor>\", \"competitor seo teardown\".\ncategory: seo\ntier: nice-to-have\nlayer: strategy\nreads:\n  - brand\u002Fcompetitors.md\n  - brand\u002Fpositioning.md\nwrites:\n  - brand\u002Fcompetitors.md\nenv_vars:\n  - OPENSEO_API_KEY\n  - OPENSEO_MCP_URL\ntriggers:\n  - analyze competitor\n  - competitor keywords\n  - competitor backlinks\n  - beat competitor\n  - competitor seo teardown\nallowed-tools:\n  - Bash(mktg catalog *)\n  - Bash(mktg run *)\n---\n\n# OpenSEO Competitor Analysis\n\nAnalyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank. Findings merge into `brand\u002Fcompetitors.md` — mktg's competitor memory that `competitive-intel` maintains qualitatively and this skill now grounds in measured rows.\n\n## On Activation\n\n1. **Readiness + binding**: `mktg seo status --json --fields readiness,catalog.endpointError,project`. `not_configured` → hand off to `competitive-intel` (Exa qualitative), labeling metrics `unknown`. For a ready state, verify live access with the free `whoami` MCP tool before paid calls.\n2. **Brand grounding**: read `brand\u002Fcompetitors.md` + `brand\u002Fpositioning.md` (tolerate templates). If the competitor isn't named, ask — never guess the domain.\n\n## OpenSEO MCP Tools\n\n- `get_domain_overview`: baseline organic traffic + keyword count (both domains when comparing).\n- `get_ranked_keywords`: exact keyword\u002FURL\u002Frank\u002Fintent\u002Ftraffic rows. Use `maxRank`, `minSearchVolume`, `excludeBrandTerms`, `resultTypes` filters to keep rows relevant.\n- `get_backlinks_overview`: backlink\u002Freferring-domain profile (may be unavailable — continue without it).\n- `get_backlinks_profile`: link-level sources, anchors, authority\u002Fspam signals, and lost\u002Fbroken state when the decision needs more than a summary. Preserve target scope and pagination.\n- `find_serp_competitors`: validate the named competitor actually overlaps in search.\n- `get_serp_results`: head-to-head SERP checks for the important shared terms.\n- `get_search_console_performance`: when comparing to the user's domain and GSC is connected, the USER's baseline is first-party — never estimate your own side from third-party data.\n- `research_keywords`: expand gap terms.\n\n## Workflow\n\n1. `get_domain_overview` for the competitor (and the user's domain when comparing).\n2. `get_ranked_keywords` for the competitor with sensible filters; same for the user, or `get_serp_results` for shared terms when a lighter check suffices.\n3. `find_serp_competitors` when the supplied competitor's search overlap is unclear.\n4. Group keywords into themes: product\u002Fcategory, alternatives\u002Fcomparisons, templates\u002Ftools, educational guides, branded demand.\n5. `get_backlinks_overview` when authority appears to explain rankings.\n6. `get_serp_results` for the important head-to-head terms.\n7. Synthesize the plan: what they do well, where they're vulnerable, which pages\u002Fkeywords to pursue, what NOT to copy.\n8. Merge into `brand\u002Fcompetitors.md` (preserve existing sections; date the entry; confirm before overwriting populated competitor entries).\n9. Hand off: `competitor-alternatives` for \"X vs Y\" pages, `seo-content` for gap-driven briefs, `openseo-keyword-clustering` for page mapping.\n\n## Output Format\n\nStart with: snapshot, biggest lesson, best opportunity to beat them. Then:\n\n| Area | Competitor pattern | Evidence | OpenSEO opportunity |\n| ---- | ------------------ | -------- | ------------------- |\n\n## Anti-Patterns\n\n- **Treating every competitor keyword as desirable** — because ranking for a term and PROFITING from a term are different things; filter through positioning before anything lands in a plan.\n- **Inferring page-level content strategy from keyword rows alone** — because a keyword list can't tell you WHY a page works (structure, depth, format). Use SERP\u002Fweb evidence for page-level claims.\n- **Estimating the user's own performance from third-party data when GSC exists** — because first-party clicks\u002Fimpressions\u002Fposition are free and exact; third-party estimates of your own site are the worst data in the room.\n- **Recommending \"copy what they do\"** — because imitation pages lose to the original on authority and freshness. Recommend a stronger angle on the same intent, never a replica.\n- **Separating evidence from inference nowhere** — because \"they rank for X\" (evidence) and \"their content strategy is Y\" (inference) carry different confidence and must read differently in `brand\u002Fcompetitors.md`.\n\n## Close the loop\n\nAfter writing files, log completion so `mktg plan` \u002F `mktg status` count the work (bare `mktg run` only logs `loaded`):\n\n```bash\nmktg run openseo-competitor-analysis --complete --writes \u003Cpaths written> --result success --json\n```\n\n\n---\n\n*Adapted from [every-app\u002Fopen-seo](https:\u002F\u002Fgithub.com\u002Fevery-app\u002Fopen-seo) `.agents\u002Fskills\u002Fcompetitor-analysis` (MIT). Workflow upstream; mktg brand-memory writes and handoff wiring added here.*\n","# OpenSEO Competitor Analysis\n\nAnalyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank. Findings merge into `brand\u002Fcompetitors.md` — mktg's competitor memory that `competitive-intel` maintains qualitatively and this skill now grounds in measured rows.\n\n## On Activation\n\n1. **Readiness + binding**: `mktg seo status --json --fields readiness,catalog.endpointError,project`. `not_configured` → hand off to `competitive-intel` (Exa qualitative), labeling metrics `unknown`. For a ready state, verify live access with the free `whoami` MCP tool before paid calls.\n2. **Brand grounding**: read `brand\u002Fcompetitors.md` + `brand\u002Fpositioning.md` (tolerate templates). If the competitor isn't named, ask — never guess the domain.\n\n## OpenSEO MCP Tools\n\n- `get_domain_overview`: baseline organic traffic + keyword count (both domains when comparing).\n- `get_ranked_keywords`: exact keyword\u002FURL\u002Frank\u002Fintent\u002Ftraffic rows. Use `maxRank`, `minSearchVolume`, `excludeBrandTerms`, `resultTypes` filters to keep rows relevant.\n- `get_backlinks_overview`: backlink\u002Freferring-domain profile (may be unavailable — continue without it).\n- `get_backlinks_profile`: link-level sources, anchors, authority\u002Fspam signals, and lost\u002Fbroken state when the decision needs more than a summary. Preserve target scope and pagination.\n- `find_serp_competitors`: validate the named competitor actually overlaps in search.\n- `get_serp_results`: head-to-head SERP checks for the important shared terms.\n- `get_search_console_performance`: when comparing to the user's domain and GSC is connected, the USER's baseline is first-party — never estimate your own side from third-party data.\n- `research_keywords`: expand gap terms.\n\n## Workflow\n\n1. `get_domain_overview` for the competitor (and the user's domain when comparing).\n2. `get_ranked_keywords` for the competitor with sensible filters; same for the user, or `get_serp_results` for shared terms when a lighter check suffices.\n3. `find_serp_competitors` when the supplied competitor's search overlap is unclear.\n4. Group keywords into themes: product\u002Fcategory, alternatives\u002Fcomparisons, templates\u002Ftools, educational guides, branded demand.\n5. `get_backlinks_overview` when authority appears to explain rankings.\n6. `get_serp_results` for the important head-to-head terms.\n7. Synthesize the plan: what they do well, where they're vulnerable, which pages\u002Fkeywords to pursue, what NOT to copy.\n8. Merge into `brand\u002Fcompetitors.md` (preserve existing sections; date the entry; confirm before overwriting populated competitor entries).\n9. Hand off: `competitor-alternatives` for \"X vs Y\" pages, `seo-content` for gap-driven briefs, `openseo-keyword-clustering` for page mapping.\n\n## Output Format\n\nStart with: snapshot, biggest lesson, best opportunity to beat them. Then:\n\n| Area | Competitor pattern | Evidence | OpenSEO opportunity |\n| ---- | ------------------ | -------- | ------------------- |\n\n## Anti-Patterns\n\n- **Treating every competitor keyword as desirable** — because ranking for a term and PROFITING from a term are different things; filter through positioning before anything lands in a plan.\n- **Inferring page-level content strategy from keyword rows alone** — because a keyword list can't tell you WHY a page works (structure, depth, format). Use SERP\u002Fweb evidence for page-level claims.\n- **Estimating the user's own performance from third-party data when GSC exists** — because first-party clicks\u002Fimpressions\u002Fposition are free and exact; third-party estimates of your own site are the worst data in the room.\n- **Recommending \"copy what they do\"** — because imitation pages lose to the original on authority and freshness. Recommend a stronger angle on the same intent, never a replica.\n- **Separating evidence from inference nowhere** — because \"they rank for X\" (evidence) and \"their content strategy is Y\" (inference) carry different confidence and must read differently in `brand\u002Fcompetitors.md`.\n\n## Close the loop\n\nAfter writing files, log completion so `mktg plan` \u002F `mktg status` count the work (bare `mktg run` only logs `loaded`):\n\n```bash\nmktg run openseo-competitor-analysis --complete --writes \u003Cpaths written> --result success --json\n```\n\n\n---\n\n*Adapted from [every-app\u002Fopen-seo](https:\u002F\u002Fgithub.com\u002Fevery-app\u002Fopen-seo) `.agents\u002Fskills\u002Fcompetitor-analysis` (MIT). Workflow upstream; mktg brand-memory writes and handoff wiring added here.*\n",{"name":5,"tier":63,"layer":41,"reads":64,"writes":67,"category":55,"env_vars":68,"triggers":71,"description":7,"allowed-tools":77},"nice-to-have",[65,66],"brand\u002Fcompetitors.md","brand\u002Fpositioning.md",[65],[69,70],"OPENSEO_API_KEY","OPENSEO_MCP_URL",[72,73,74,75,76],"analyze competitor","competitor keywords","competitor backlinks","beat competitor","competitor seo teardown",[78,79],"Bash(mktg catalog *)","Bash(mktg run *)","main","65a0c0d1e5a6f4ac9fb5281a72c91cbf7e9257aa","skills\u002Fopenseo-competitor-analysis",5,"https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli","https:\u002F\u002Fwww.marketing-cli.com\u002F","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf","https:\u002F\u002Fmoiz.ai","AI Engineer\r\n","2026-10-20 15:05:36",{"source":8,"skillName":5,"commands":91,"prompt":101,"zipAvailable":102},[92,95,98],{"tool":93,"command":94},"npx","npx skills add MoizIbnYousaf\u002Fmarketing-cli --skill openseo-competitor-analysis",{"tool":96,"command":97},"bunx","bunx skills add MoizIbnYousaf\u002Fmarketing-cli --skill openseo-competitor-analysis",{"tool":99,"command":100},"pnpm","pnpm dlx skills add MoizIbnYousaf\u002Fmarketing-cli --skill openseo-competitor-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Fopenseo-competitor-analysis\u002FSKILL.md",true,[],[105,124,148,177,204,230],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":58},"01M6DKQDNVS30J8TB3YYM13PJ2","cmo-studio-integration","When mktg-studio is running on this machine, \u002Fcmo proactively narrates work into the dashboard via Bash + curl against the localhost HTTP API. Detect via \u002Fapi\u002Fhealth, then log every meaningful action — the user sees what \u002Fcmo is doing in real time.","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fstudio\u002Fskills\u002Fcmo-studio-integration\u002FSKILL.md",[],[112,113,114,115,116,117,54,118,53,119,120,121,122,123],"integration","cmo","cmo studio integration","real time","dashboard","http","health","work","curl","user","log","time",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":134,"publishedAt":58},"01M6DKQ8KH8EZ27YY7PEDSZGMT","voice-extraction","Reverse-engineer any person's writing voice from their content. Paste in posts, articles, tweets, or essays and this skill launches 10 parallel Sonnet subagents to analyze every dimension of the voice, then synthesizes into a voice file. Use when someone says 'match this voice,' 'analyze this writing,' 'extract their voice,' 'make me sound like this,' 'study this person's writing,' or pastes in content they want to learn from.","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Fvoice-extraction\u002FSKILL.md",[130,131],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":132,"categoryName":133,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000036","内容创作者",[135,136,137,138,56,139,140,51,141,142,143,144,145,146,147],"extraction","voice","voice extraction","writing","content","file","parallel","extract","subagents","use","engineer","study","me",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":159,"publishedAt":58},"01M6DKPZAQ4NTERXENEFKFACZZ","visual-style","Build a persistent visual brand identity for image generation. Defines how the brand looks visually — aesthetic, lighting, composition, mood — and writes it to brand\u002Fcreative-kit.md so \u002Fimage-gen and other creative skills produce consistent on-brand visuals. Three modes: Extract (from website\u002FURL), Build (interview), Reference (mood board\u002Fexamples). Use when starting any project that needs images, when the user says \"visual style\", \"brand aesthetic\", \"image style\", \"visual identity\", \"how should our images look\", \"build visual brand\", \"define our look\", or when \u002Fimage-gen outputs feel generic because no visual style exists yet.","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-style\u002FSKILL.md",[154,155,158],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},[160,161,162,163,164,165,166,167,168,169,50,170,144,171,172,173,174,46,175,176],"visual","style","visual style","image","identity","visuals","produce","website","Composition","how","interview","images","aesthetic","three","lighting","project","define",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":188,"publishedAt":58},"01M6DKPR2K3YJ1MAJG8XT815VP","video-content","Three-tier video pipeline: ffmpeg Quick (5s, instant) → ffmpeg Enhanced with Ken Burns (15s, polished) → Remotion Animated (60-90s, production-grade). Takes static slides from Paper MCP or any PNGs and assembles them into platform-ready video. Make sure to use this skill whenever the user has slides, images, or PNGs and wants to turn them into video — even if they just say 'make a video from these', 'animate my slides', 'I have images and need a TikTok', or 'stitch these together'. Also use when they mention ffmpeg video assembly, Remotion-animated slide assembly, Ken Burns effects, or any slides-to-video pipeline. Owns the slides→MP4 assembly pipeline; for writing, debugging, or running `remotion render` on Remotion code itself, see \u002Fremotion-best-practices; for screen-recorded product demos, see \u002Fmarketing-demo. Works with any PNG source — Paper exports, Canva, screenshots, anything.","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-content\u002FSKILL.md",[183,184,185,186,187],{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},{"categoryNo":132,"categoryName":133,"taxonomyType":32,"taxonomyTypeDesc":33},[139,189,190,49,138,191,192,193,194,195,196,53,197,198,199,200,171,201,202,203],"Video","video content","status","debugging","code","product","pipeline","Remotion","marketing","instant","assemble","ready","stitch","tiktok","screen",{"skillNo":205,"name":206,"nameZh":6,"description":207,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":208,"categories":209,"keywords":215,"publishedAt":58},"01M6DKPKDPTV6JFSW4SK3CKQCH","typefully","Create, schedule, and manage social media posts via Typefully. ALWAYS use this skill when asked to draft, schedule, post, or check tweets, posts, threads, or social media content for Twitter\u002FX, LinkedIn, Threads, Bluesky, or Mastodon.","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Ftypefully\u002FSKILL.md",[210,211,212,213,214],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},[206,216,217,218,53,197,136,50,219,220,221,222,223,144,224,225,226,227,228,229],"create","SET","Media","schedule","twitter","linkedin","social media","check","manage","bluesky","social","draft","distribution","scripts",{"skillNo":231,"name":232,"nameZh":6,"description":233,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":234,"categories":235,"keywords":240,"publishedAt":58},"01M6DKP7X0YHAK9QZ1ZRKFQ596","tiktok-slideshow","Orchestrator skill that chains \u002Fslideshow-script → \u002Fpaper-marketing → \u002Fvideo-content for end-to-end TikTok slideshow production. Each phase is an independent Lego block — this orchestrator is just one recipe that combines them. Produces 5 publishable TikTok videos from a single positioning angle. Triggers on \"TikTok slideshow\", \"TikTok video\", \"make TikTok\", \"slideshow video\", \"TikTok content\".","https:\u002F\u002Fgithub.com\u002FMoizIbnYousaf\u002Fmarketing-cli\u002Fblob\u002Fmain\u002Fskills\u002Ftiktok-slideshow\u002FSKILL.md",[236,237,238,239],{"categoryNo":156,"categoryName":157,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":35,"categoryName":36,"taxonomyType":32,"taxonomyTypeDesc":33},[202,241,191,139,242,189,196,53,197,243,244,245,46,246,42,247,248],"tiktok slideshow","Production","just","orchestrator","bun","end","ffmpeg","paper"]