[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F7F8XMM6BA4RYN7D6E75TN":3,"skill-same:01M6F7F8XMM6BA4RYN7D6E75TN":81},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":36,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":66,"install":67,"resources":80},"01M6F7F8XMM6BA4RYN7D6E75TN","hunt-forgot-password",null,"Hunt Forgot Password \u002F Account Recovery Authentication Flaws","boisenoise\u002Fskills-collections","boisenoise","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F193180?v=4","01M6CDBDQK6BDN55ZMA6B6PKBM","01M6CDBDVSJ3JPTBYN26FZ7TZK",12,"MIT","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-hunt-forgot-password\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"hunt forgot password","password","hunt","community","2026","hackerone","blob","for","relevant","helper","scripts","scope","commands","main","testing","only","public","recovery","https","license","authentication","testing tools","research","github","2026-11-10 10:12:30",false,"---\nname: hunt-forgot-password\ndescription: Hunt Forgot Password \u002F Account Recovery Authentication Flaws\ncategory: security\nrisk: offensive\nsource: https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter\nsource_repo: elementalsouls\u002FClaude-BugHunter\nsource_type: community\ndate_added: '2026-09-20'\nlicense: MIT\nlicense_source: https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter\u002Fblob\u002Fmain\u002FLICENSE\ncompatibility: Requires explicit written authorization for a target scope plus the\n  relevant testing tools for this technique. Docs-only; helper scripts and commands\n  not bundled.\nsources: hackerone_public, public_research\nreport_count: 6\n---\n> **⚠️ AUTHORIZED USE ONLY**\n> This skill is for educational purposes or authorized security assessments only.\n> You must have explicit, written permission from the system owner before using this tool.\n> Misuse of this tool is illegal and strictly prohibited.\n\n> **Mandatory confirmation gate**\n> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:\n> 1. Ask the user to state the exact target URL, IP, account, or resource.\n> 2. Ask the user to confirm written authorization and the permitted scope.\n> 3. Show the exact command(s) and explain their expected effect.\n> 4. Wait for explicit confirmation in the current conversation.\n>\n> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.\n\n## Autonomous Testing Priority\n\n**Start with username enumeration — it's the fastest win and gates the rest.**\n\n**Pattern 1 — Username enumeration (response difference for valid vs invalid email):**\n1. POST to the forgot-password endpoint with a clearly invalid email (e.g. `nonexistent@fakedomain12345.com`) — record the response body, status code, and length\n2. POST with an email you know exists (or try common patterns like `admin@target.com`, `test@target.com`, `user@target.com`)\n3. Compare responses: different message (\"Email sent\" vs \"Email not found\"), different HTTP status, or meaningfully different body length = username enumeration confirmed\n4. Proof: enumeration is confirmed when the two responses differ measurably (baseline vs probe) in message text, status code, or body length\n\n**Pattern 2 — Reset token exposed in the API response:**\nSome APIs return the reset token directly in the response body (instead of only emailing it). POST to the forgot-password endpoint and look for a token, link, or code in the JSON\u002FHTML response. If a token appears that lets you reset the password, that's an immediate account-takeover vector.\n\n**Pattern 3 — Reset token replay (reuse after use):**\n1. Complete a full password reset cycle: request token → use it to reset password\n2. Immediately try submitting the same token again to the reset-password endpoint\n3. If the second submission returns 200 or \"success\" → token not invalidated after use\n\n**Pattern 4 — No rate limit on reset requests:**\nSubmit the forgot-password endpoint 10-20 times rapidly with the same email. A short run without a 429 does not prove limits are absent: inspect email delivery\u002Fcooldowns and authorized thresholds, and report only the measured rate\u002Fwindow. Do not flood real inboxes.\n\n**Content-type:** Forgot-password endpoints are often JSON-based REST APIs. Use `application\u002Fx-www-form-urlencoded` only if the endpoint is a traditional HTML form (check the login page's HTML to determine form encoding).\n\n**Proof:** Username enumeration = measurably different response (body\u002Fstatus\u002Flength). Token exposure = token in response body. Token replay = second successful use of a consumed token.\n\n---\n\n## Vulnerability Classes in This Skill\n\n### 1. Username Enumeration via Password Reset\nDifferent error messages for valid vs invalid accounts leaks the user list without authentication. Even timing differences (fast \"no user found\" vs slow \"email queued\") count.\n\nHigh-value targets: admin accounts, employee email patterns, API keys derived from usernames.\n\n### 2. Weak \u002F Predictable Reset Tokens\nA reset token derived from timestamp, username, or sequential IDs can be brute-forced:\n- `base64(email + timestamp)` — decodable\n- 4-6 digit numeric code — 10,000 to 1,000,000 possibilities before considering expiry and server-side attempt limits\n- Sequential `token=1234`, `token=1235` — trivially enumerable\n\n### 3. Token Scope and Account Binding\nEmail reset links commonly work across browsers and networks. This alone is not a vulnerability. Verify that the token is unguessable, short-lived, single-use and bound to the intended account\u002Freset purpose; demonstrate a concrete unauthorized path using only approved test accounts.\n\n**Token leak via `Referer` \u002F third-party resources.** When the token rides in the reset-page URL (`\u002Freset?token=…`) and that page loads any cross-origin resource (analytics, ads, fonts, a CDN image), a permissive referrer policy may leak the full URL. Modern default cross-origin policies generally send only the origin; prove leakage from captured requests rather than assuming it. Check the reset page's outbound requests: if the token appears in any cross-origin `Referer`, it's harvestable without the victim's inbox. Same leak via a `\u003Cmeta name=referrer>` misconfig or an outbound link the victim clicks from the reset page. Disclosed token-leak→ATO class: \u003Chttps:\u002F\u002Fhackerone.com\u002Freports\u002F173551>.\n\n### 4. Reset Link Doesn't Expire\nCommon best practice: reset tokens expire within ~15–60 minutes (no hard RFC mandates the exact value; OWASP recommends a short, single-use lifetime). If a token from 24 hours ago still works → persistence risk for phishing attacks.\n\n### 5. No Rate Limit on Reset Endpoint\nAn uncapped reset endpoint enables:\n- Email flooding (DoS against victim's inbox)\n- Token brute-force if the token space is small\n- Username enumeration at scale\n\n---\n\n## Related Skills\n\n- **`hunt-ato`** — owns the account-takeover CHAIN (password-reset is its path #1). This skill finds\u002Fproves the recovery-flow primitive; hand off to hunt-ato to assemble the full takeover.\n- **`hunt-cache-poison`** — host-header injection during reset email generation (different vulnerability, same flow)\n- **`hunt-brute-force`** — rate-limit testing pattern applies to the reset endpoint too\n- **`hunt-auth-bypass`** — if the reset flow can be skipped entirely (go to `\u002Freset-password?token=` with empty\u002Fnull token)\n- **`hunt-mfa-bypass`** — if MFA is required after reset, test the bypass there\n\n## When to Use\n\n- You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.\n- You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.\n\n## Limitations\n\n- Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.\n- Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.\n- Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.\n\n### Example\n\n```bash\n# Read-only first step; confirm scope before anything active.\ncat scope.txt  # target list from the authorized engagement brief\n```\n\n> Adapted from [elementalsouls\u002FClaude-BugHunter](https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter) (MIT); frontmatter, When to Use\u002FLimitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.\n\nLength\u002Fstatus differences are leads, not sufficient proof by themselves: repeat controlled valid\u002Finvalid test-account comparisons to exclude dynamic content, timing noise and localization. A replay requires observing that the second request really changes the approved account state, not merely HTTP 200. [OWASP reset guidance](https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FForgot_Password_Cheat_Sheet.html).\n","> **⚠️ AUTHORIZED USE ONLY**\n> This skill is for educational purposes or authorized security assessments only.\n> You must have explicit, written permission from the system owner before using this tool.\n> Misuse of this tool is illegal and strictly prohibited.\n\n> **Mandatory confirmation gate**\n> Before running any command that probes, exploits, changes, persists on, extracts data from, or attempts credential access against a target:\n> 1. Ask the user to state the exact target URL, IP, account, or resource.\n> 2. Ask the user to confirm written authorization and the permitted scope.\n> 3. Show the exact command(s) and explain their expected effect.\n> 4. Wait for explicit confirmation in the current conversation.\n>\n> Without that confirmation, remain read-only and provide defensive guidance only. Prefer a sandbox, disposable VM, or controlled lab.\n\n## Autonomous Testing Priority\n\n**Start with username enumeration — it's the fastest win and gates the rest.**\n\n**Pattern 1 — Username enumeration (response difference for valid vs invalid email):**\n1. POST to the forgot-password endpoint with a clearly invalid email (e.g. `nonexistent@fakedomain12345.com`) — record the response body, status code, and length\n2. POST with an email you know exists (or try common patterns like `admin@target.com`, `test@target.com`, `user@target.com`)\n3. Compare responses: different message (\"Email sent\" vs \"Email not found\"), different HTTP status, or meaningfully different body length = username enumeration confirmed\n4. Proof: enumeration is confirmed when the two responses differ measurably (baseline vs probe) in message text, status code, or body length\n\n**Pattern 2 — Reset token exposed in the API response:**\nSome APIs return the reset token directly in the response body (instead of only emailing it). POST to the forgot-password endpoint and look for a token, link, or code in the JSON\u002FHTML response. If a token appears that lets you reset the password, that's an immediate account-takeover vector.\n\n**Pattern 3 — Reset token replay (reuse after use):**\n1. Complete a full password reset cycle: request token → use it to reset password\n2. Immediately try submitting the same token again to the reset-password endpoint\n3. If the second submission returns 200 or \"success\" → token not invalidated after use\n\n**Pattern 4 — No rate limit on reset requests:**\nSubmit the forgot-password endpoint 10-20 times rapidly with the same email. A short run without a 429 does not prove limits are absent: inspect email delivery\u002Fcooldowns and authorized thresholds, and report only the measured rate\u002Fwindow. Do not flood real inboxes.\n\n**Content-type:** Forgot-password endpoints are often JSON-based REST APIs. Use `application\u002Fx-www-form-urlencoded` only if the endpoint is a traditional HTML form (check the login page's HTML to determine form encoding).\n\n**Proof:** Username enumeration = measurably different response (body\u002Fstatus\u002Flength). Token exposure = token in response body. Token replay = second successful use of a consumed token.\n\n---\n\n## Vulnerability Classes in This Skill\n\n### 1. Username Enumeration via Password Reset\nDifferent error messages for valid vs invalid accounts leaks the user list without authentication. Even timing differences (fast \"no user found\" vs slow \"email queued\") count.\n\nHigh-value targets: admin accounts, employee email patterns, API keys derived from usernames.\n\n### 2. Weak \u002F Predictable Reset Tokens\nA reset token derived from timestamp, username, or sequential IDs can be brute-forced:\n- `base64(email + timestamp)` — decodable\n- 4-6 digit numeric code — 10,000 to 1,000,000 possibilities before considering expiry and server-side attempt limits\n- Sequential `token=1234`, `token=1235` — trivially enumerable\n\n### 3. Token Scope and Account Binding\nEmail reset links commonly work across browsers and networks. This alone is not a vulnerability. Verify that the token is unguessable, short-lived, single-use and bound to the intended account\u002Freset purpose; demonstrate a concrete unauthorized path using only approved test accounts.\n\n**Token leak via `Referer` \u002F third-party resources.** When the token rides in the reset-page URL (`\u002Freset?token=…`) and that page loads any cross-origin resource (analytics, ads, fonts, a CDN image), a permissive referrer policy may leak the full URL. Modern default cross-origin policies generally send only the origin; prove leakage from captured requests rather than assuming it. Check the reset page's outbound requests: if the token appears in any cross-origin `Referer`, it's harvestable without the victim's inbox. Same leak via a `\u003Cmeta name=referrer>` misconfig or an outbound link the victim clicks from the reset page. Disclosed token-leak→ATO class: \u003Chttps:\u002F\u002Fhackerone.com\u002Freports\u002F173551>.\n\n### 4. Reset Link Doesn't Expire\nCommon best practice: reset tokens expire within ~15–60 minutes (no hard RFC mandates the exact value; OWASP recommends a short, single-use lifetime). If a token from 24 hours ago still works → persistence risk for phishing attacks.\n\n### 5. No Rate Limit on Reset Endpoint\nAn uncapped reset endpoint enables:\n- Email flooding (DoS against victim's inbox)\n- Token brute-force if the token space is small\n- Username enumeration at scale\n\n---\n\n## Related Skills\n\n- **`hunt-ato`** — owns the account-takeover CHAIN (password-reset is its path #1). This skill finds\u002Fproves the recovery-flow primitive; hand off to hunt-ato to assemble the full takeover.\n- **`hunt-cache-poison`** — host-header injection during reset email generation (different vulnerability, same flow)\n- **`hunt-brute-force`** — rate-limit testing pattern applies to the reset endpoint too\n- **`hunt-auth-bypass`** — if the reset flow can be skipped entirely (go to `\u002Freset-password?token=` with empty\u002Fnull token)\n- **`hunt-mfa-bypass`** — if MFA is required after reset, test the bypass there\n\n## When to Use\n\n- You have explicit, written authorization to assess the target in scope, and the task matches this skill's vulnerability class or technique within a bug-bounty or penetration-test engagement.\n- You need the recon, exploitation, or validation workflow described below — executed strictly inside the approved scope.\n\n## Limitations\n\n- Authorized scope only: the confirmation gate above is mandatory before any probing, exploitation, or credential-access command.\n- Docs-only import: upstream helper scripts, commands, engine, and research assets are not bundled; reinstall tooling from the source repo when needed.\n- Validate every finding (see `triage-validation`) before reporting; report via `report-writing`. Prefer a sandbox, disposable VM, or controlled lab.\n\n### Example\n\n```bash\n# Read-only first step; confirm scope before anything active.\ncat scope.txt  # target list from the authorized engagement brief\n```\n\n> Adapted from [elementalsouls\u002FClaude-BugHunter](https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter) (MIT); frontmatter, When to Use\u002FLimitations, and safety boundaries added for upstream compliance. Docs-only import: executable helpers, commands, engine, and research assets not bundled.\n\nLength\u002Fstatus differences are leads, not sufficient proof by themselves: repeat controlled valid\u002Finvalid test-account comparisons to exclude dynamic content, timing noise and localization. A replay requires observing that the second request really changes the approved account state, not merely HTTP 200. [OWASP reset guidance](https:\u002F\u002Fcheatsheetseries.owasp.org\u002Fcheatsheets\u002FForgot_Password_Cheat_Sheet.html).\n",{"name":5,"risk":52,"source":53,"license":14,"sources":54,"category":55,"date_added":56,"description":7,"source_repo":57,"source_type":26,"report_count":58,"compatibility":59,"license_source":60},"offensive","https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter","hackerone_public, public_research","security","2026-09-20","elementalsouls\u002FClaude-BugHunter",6,"Requires explicit written authorization for a target scope plus the relevant testing tools for this technique. Docs-only; helper scripts and commands not bundled.","https:\u002F\u002Fgithub.com\u002Felementalsouls\u002FClaude-BugHunter\u002Fblob\u002Fmain\u002FLICENSE","7bf2279c8a65758319526a721d5c4b75683aec9c","skills\u002Fantigravity-hunt-forgot-password",3,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections","https:\u002F\u002Fgithub.com\u002Fboisenoise","2026-11-13 14:20:47",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add boisenoise\u002Fskills-collections --skill hunt-forgot-password",{"tool":73,"command":74},"bunx","bunx skills add boisenoise\u002Fskills-collections --skill hunt-forgot-password",{"tool":76,"command":77},"pnpm","pnpm dlx skills add boisenoise\u002Fskills-collections --skill hunt-forgot-password","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-hunt-forgot-password\u002FSKILL.md",true,[],[82,110,133,157,175,197],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":87,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":47},"01M6WNH92BHVFXHGPDZCPJ0AG0","web-access","Use Treg for public web or platform data only when existing search, browser and connected tools cannot cover the task, with explicit cost and data boundaries.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-web-access\u002FSKILL.md",[],[91,92,93,94,95,96,97,98,99,100,101,38,102,103,104,105,106,107,108,109,27],"web","access","web access","official","development","browser","search","data","Tools","read","fetch","youtube","free tools","platform","critical","free","cover","normal","when",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":114,"sourceHtmlUrl":115,"categories":116,"keywords":120,"publishedAt":47},"01M6WNF9XAYAB2CZDDJBAKNM93","treg","Use the Treg CLI or MCP catalog to discover, price and call authorized external tools with team-scoped credentials and a user-approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-treg\u002FSKILL.md",[117],{"categoryNo":118,"categoryName":119,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[112,121,122,46,94,95,42,99,123,124,125,126,127,128,129,105,130,131,132,29,27],"MCP","cli","Budget","credentials","team","catalog","use","call","discover","external tools","with","scoped",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":137,"sourceHtmlUrl":138,"categories":139,"keywords":145,"publishedAt":47},"01M6WN93MEAZ4E41DYAHJRPHQT","recruit","Turn a job description into an evidence-linked candidate shortlist through Treg, with job-related ranking and optional authorized business contact enrichment.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-recruit\u002FSKILL.md",[140],{"categoryNo":141,"categoryName":142,"taxonomyType":143,"taxonomyTypeDesc":144},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[135,46,94,42,41,146,147,148,149,150,105,151,152,153,131,30,154,155,156,29,112,27],"email","enrichment","business","evidence","phone","ranking","post","job description","person","candidate","reason",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":161,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":47},"01M6WN8R5RXSMHM9B4D9FAFX42","rea-growth","Analyze a company’s public growth and content through Treg, distinguish observations from hypotheses, and produce an evidence-linked playbook within an approved budget.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-rea-growth\u002FSKILL.md",[],[165,166,167,46,94,42,168,169,41,170,123,171,172,39,149,105,173,174,29,112,27],"growth","rea","rea growth","produce","content","playbook","marketing","analyze","observations","company",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":179,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":47},"01M6WN2EVE3RQRGWAKBT4S7YT2","make-ugc","Create original AI UGC-style product videos through Treg: research hooks, approve a licensed presenter and voice, generate clips, add captions and report costs.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-make-ugc\u002FSKILL.md",[],[183,184,46,45,94,185,42,186,187,188,189,190,105,191,192,193,194,195,196,29],"make","make ugc","create","Video","Captions","ads","short","hooks","head","style","niche","trending","talking-head","approve",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":86,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":204,"publishedAt":47},"01M6WN10ARAA63Y8K1YNGXJ2RM","lead-signals","Find and qualify public buying signals through Treg, rank fitting business accounts and optionally enrich authorized business contact information.","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-lead-signals\u002FSKILL.md",[],[205,206,207,46,94,42,208,209,148,210,211,105,212,213,214,215,216,217,218,29],"signals","lead","lead signals","how","find","ready","as","how to","qualify","people","information","enrich","changes","funding"]