Skip to content
SlashClone

Tam builder

@gtmengineer/tam-builder

Define your ICP and size the market from a companies CSV (a CRM export or any company list). Applies market filters for SAM, scores every company into A, B, and C tiers with reasons, values each layer with ACV by size band, and writes a tiered account list ready for territories or outbound.

SkillDatav1.0.0 (latest)Tested
Activity
New: be the first to try it
  1. 1{
  2. 2 "name": "tam-builder",
  3. 3 "owner": "gtmengineer",
  4. 4 "version": "1.0.0",
  5. 5 "type": "skill",
  6. 6 "description": "Define your ICP and size the market from a companies CSV (a CRM export or any company list). Applies market filters for SAM, scores every company into A, B, and C tiers with reasons, values each layer with ACV by size band, and writes a tiered account list ready for territories or outbound.",
  7. 7 "category": "data",
  8. 8 "license": "MIT",
  9. 9 "compat": [
  10. 10 "claude-code"
  11. 11 ],
  12. 12 "permissions": {
  13. 13 "shell": [
  14. 14 "node scripts/tam.mjs"
  15. 15 ],
  16. 16 "files": {
  17. 17 "read": [
  18. 18 "./data/**"
  19. 19 ],
  20. 20 "write": [
  21. 21 "./data/**",
  22. 22 "./out/**"
  23. 23 ]
  24. 24 }
  25. 25 },
  26. 26 "tests": {
  27. 27 "cases": [
  28. 28 {
  29. 29 "name": "TAM, SAM, and tiers with country names, ranges, and exclusions",
  30. 30 "inputs": {
  31. 31 "data/companies.csv": "Company Name,Website,Industry,Employees,Country,Technologies,Funding Stage,Headcount Growth (%)\nNorthwind Traders,northwind.example,Software,350,United States,salesforce; slack,Series B,18\nContoso Robotics,contoso.example,Manufacturing,1200,Germany,hubspot,Series C,6\nFabrikam Health,fabrikam.example,Healthcare,4200,US,salesforce,Private equity,3\nTailspin Toys,tailspin.example,Retail,45,US,shopify,Seed,25\nLitware,litware.example,Software,12,Canada,hubspot,Seed,40\nAdventure Works,adventure.example,Software,600,United Kingdom,salesforce; hubspot,Series C,22\nWide World Importers,wideworld.example,Logistics,250,GB,,Bootstrapped,2\nProseware,proseware.example,Software,51-200,US,hubspot,Series A,30\nCoho Winery,coho.example,Food and beverage,80,France,,Bootstrapped,1\nLucerne Publishing,lucerne.example,Media,150,US,salesforce,Series B,12\nWoodgrove Bank,woodgrove.example,Financial services,9000,US,salesforce,Public,4\nAlpine Ski House,alpine.example,Hospitality,,Switzerland,,Bootstrapped,\nCity Power and Light,citypower.example,Government,3000,US,salesforce,,0\nTrey Research,trey.example,Financial services,900,Canada,hubspot,Series B,15\nMargie's Travel,margies.example,Software,2000+,US,salesforce,Series D,9\n",
  32. 32 "data/icp.json": "{\n \"name\": \"Mid-market B2B software and fintech, North America and UK\",\n \"market\": {\n \"countries\": [\"US\", \"CA\", \"GB\"],\n \"employees_min\": 50,\n \"employees_max\": 10000,\n \"exclude_industries\": [\"Government\", \"Education\"]\n },\n \"score\": [\n { \"field\": \"industry\", \"op\": \"in\", \"value\": [\"Software\", \"Financial services\"], \"points\": 30, \"label\": \"Core industry\" },\n { \"field\": \"employees\", \"op\": \"between\", \"value\": [200, 2000], \"points\": 25, \"label\": \"200 to 2,000 employees\" },\n { \"field\": \"technologies\", \"op\": \"contains_any\", \"value\": [\"salesforce\", \"hubspot\"], \"points\": 20, \"label\": \"Uses a CRM we integrate with\" },\n { \"field\": \"funding_stage\", \"op\": \"in\", \"value\": [\"Series B\", \"Series C\", \"Series D\"], \"points\": 15, \"label\": \"Growth-stage funding\" },\n { \"field\": \"headcount_growth\", \"op\": \">=\", \"value\": 10, \"points\": 10, \"label\": \"Headcount growing 10%+\" }\n ],\n \"tiers\": [\n { \"name\": \"A\", \"min_score\": 75 },\n { \"name\": \"B\", \"min_score\": 50 },\n { \"name\": \"C\", \"min_score\": 25 }\n ],\n \"target_tiers\": [\"A\", \"B\"],\n \"bands\": [\n { \"name\": \"SMB\", \"max\": 199, \"acv\": 8000 },\n { \"name\": \"Mid-market\", \"max\": 999, \"acv\": 25000 },\n { \"name\": \"Enterprise\", \"acv\": 60000 }\n ]\n}\n"
  33. 33 },
  34. 34 "checks": [
  35. 35 {
  36. 36 "type": "command_exits_zero",
  37. 37 "command": "node scripts/tam.mjs data/companies.csv data/icp.json --out out"
  38. 38 },
  39. 39 {
  40. 40 "type": "file_exists",
  41. 41 "path": "out/tam-accounts.csv"
  42. 42 },
  43. 43 {
  44. 44 "type": "file_contains",
  45. 45 "path": "out/tam-accounts.csv",
  46. 46 "text": "Proseware,proseware.example,Software,US,126,SMB,B,60"
  47. 47 },
  48. 48 {
  49. 49 "type": "output_matches_schema",
  50. 50 "path": "out/tam.json",
  51. 51 "schema": {
  52. 52 "type": "object",
  53. 53 "required": [
  54. 54 "tam",
  55. 55 "sam",
  56. 56 "target",
  57. 57 "by_tier"
  58. 58 ],
  59. 59 "properties": {
  60. 60 "tam": {
  61. 61 "type": "object",
  62. 62 "properties": {
  63. 63 "companies": {
  64. 64 "const": 15
  65. 65 },
  66. 66 "dollars": {
  67. 67 "const": 440000
  68. 68 }
  69. 69 }
  70. 70 },
  71. 71 "sam": {
  72. 72 "type": "object",
  73. 73 "properties": {
  74. 74 "companies": {
  75. 75 "const": 9
  76. 76 },
  77. 77 "dollars": {
  78. 78 "const": 296000
  79. 79 }
  80. 80 }
  81. 81 },
  82. 82 "target": {
  83. 83 "type": "object",
  84. 84 "properties": {
  85. 85 "companies": {
  86. 86 "const": 6
  87. 87 },
  88. 88 "dollars": {
  89. 89 "const": 203000
  90. 90 }
  91. 91 }
  92. 92 },
  93. 93 "by_tier": {
  94. 94 "type": "object",
  95. 95 "properties": {
  96. 96 "A": {
  97. 97 "type": "object",
  98. 98 "properties": {
  99. 99 "companies": {
  100. 100 "const": 4
  101. 101 }
  102. 102 }
  103. 103 }
  104. 104 }
  105. 105 },
  106. 106 "missing_data": {
  107. 107 "type": "object",
  108. 108 "properties": {
  109. 109 "employees": {
  110. 110 "const": 1
  111. 111 }
  112. 112 }
  113. 113 }
  114. 114 }
  115. 115 }
  116. 116 }
  117. 117 ]
  118. 118 },
  119. 119 {
  120. 120 "name": "HubSpot-style headers and no market filters",
  121. 121 "inputs": {
  122. 122 "data/co.csv": "Company name,Company Domain Name,Industry,Number of Employees,Country/Region\nA Co,a.example,COMPUTER_SOFTWARE,500,United States\nB Co,b.example,RETAIL,20,United States\n",
  123. 123 "data/icp.json": "{\"score\":[{\"field\":\"industry\",\"op\":\"in\",\"value\":[\"computer_software\"],\"points\":50}],\"tiers\":[{\"name\":\"A\",\"min_score\":50}],\"bands\":[{\"name\":\"Small\",\"max\":99,\"acv\":5000},{\"name\":\"Large\",\"acv\":20000}]}"
  124. 124 },
  125. 125 "checks": [
  126. 126 {
  127. 127 "type": "command_exits_zero",
  128. 128 "command": "node scripts/tam.mjs data/co.csv data/icp.json --out out"
  129. 129 },
  130. 130 {
  131. 131 "type": "output_matches_schema",
  132. 132 "path": "out/tam.json",
  133. 133 "schema": {
  134. 134 "type": "object",
  135. 135 "properties": {
  136. 136 "sam": {
  137. 137 "type": "object",
  138. 138 "properties": {
  139. 139 "companies": {
  140. 140 "const": 2
  141. 141 },
  142. 142 "dollars": {
  143. 143 "const": 25000
  144. 144 }
  145. 145 }
  146. 146 },
  147. 147 "target": {
  148. 148 "type": "object",
  149. 149 "properties": {
  150. 150 "companies": {
  151. 151 "const": 1
  152. 152 },
  153. 153 "dollars": {
  154. 154 "const": 20000
  155. 155 }
  156. 156 }
  157. 157 }
  158. 158 }
  159. 159 }
  160. 160 }
  161. 161 ]
  162. 162 }
  163. 163 ]
  164. 164 }