autotouch-cli 0.2.79__tar.gz → 0.2.80__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/PKG-INFO +14 -4
  2. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/README.md +13 -3
  3. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/search.py +6 -6
  4. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/data/CLI_REFERENCE.md +4 -4
  5. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/data/cli-manifest.json +10 -10
  6. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/PKG-INFO +14 -4
  7. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/search_contract.py +13 -13
  8. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/pyproject.toml +1 -1
  9. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/MANIFEST.in +0 -0
  10. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/__init__.py +0 -0
  11. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/cli.py +0 -0
  12. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/cli_contracts.py +0 -0
  13. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/__init__.py +0 -0
  14. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/agents.py +0 -0
  15. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/auth.py +0 -0
  16. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/cells.py +0 -0
  17. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/columns.py +0 -0
  18. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/jobs.py +0 -0
  19. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/leads.py +0 -0
  20. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/linkedin.py +0 -0
  21. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/list_build.py +0 -0
  22. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/prompts.py +0 -0
  23. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/rows.py +0 -0
  24. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/sequences.py +0 -0
  25. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/tables.py +0 -0
  26. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/tasks.py +0 -0
  27. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/webhooks.py +0 -0
  28. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/commands/workspace_secrets.py +0 -0
  29. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/__init__.py +0 -0
  30. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/auth.py +0 -0
  31. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/config.py +0 -0
  32. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/csv_import.py +0 -0
  33. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/http.py +0 -0
  34. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/io.py +0 -0
  35. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/output.py +0 -0
  36. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/polling.py +0 -0
  37. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/run.py +0 -0
  38. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/core/validation.py +0 -0
  39. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/exceptions.py +0 -0
  40. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/mongo_status.py +0 -0
  41. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/parser.py +0 -0
  42. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/parser_groups.py +0 -0
  43. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/sequence_support.py +0 -0
  44. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli/templates.py +0 -0
  45. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/SOURCES.txt +0 -0
  46. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/dependency_links.txt +0 -0
  47. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/entry_points.txt +0 -0
  48. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/requires.txt +0 -0
  49. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_cli.egg-info/top_level.txt +0 -0
  50. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/__init__.py +0 -0
  51. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/linkedin_contract.py +0 -0
  52. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/linkedin_filters.py +0 -0
  53. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/list_build_contract.py +0 -0
  54. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/autotouch_shared/provider_registry.py +0 -0
  55. {autotouch_cli-0.2.79 → autotouch_cli-0.2.80}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autotouch-cli
3
- Version: 0.2.79
3
+ Version: 0.2.80
4
4
  Summary: Autotouch Smart Table CLI
5
5
  Project-URL: Homepage, https://app.autotouch.ai
6
6
  Project-URL: Documentation, https://github.com/nicolonic/autotouch_main/tree/main/docs/research-table/reference
@@ -132,9 +132,9 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
132
132
  - Inspect rows: `autotouch rows list`, `autotouch rows get`
133
133
  - Inspect one cell: `autotouch cells get`
134
134
  - Create a workflow column: `autotouch columns recipe`, `autotouch columns create`
135
- - Run provider-hidden search: `autotouch search companies`, `autotouch search people`
135
+ - Run neural search for niche/specific company or people discovery: `autotouch search companies`, `autotouch search people`
136
136
  - Inspect LinkedIn filters: `autotouch linkedin filters --category people`
137
- - Build a durable lead list on Smart Table workers: `autotouch list-build leads --title 'Account Executive OR SDR' --geo-id 103644278 --num-results 1000 --wait`
137
+ - Build durable company and lead lists on Smart Table workers: `autotouch list-build companies`, `autotouch list-build leads`
138
138
  - Run one LinkedIn search page/debug replay: `autotouch linkedin search`
139
139
  - Run controlled slices: `autotouch columns run-next`
140
140
  - Poll authoritative state: `autotouch jobs get`
@@ -142,13 +142,23 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
142
142
  - Query leads: `autotouch leads query`
143
143
  - Find a lead by email or phone: `autotouch leads query --search '<email-or-phone>' --limit 10`
144
144
 
145
+ ## Neural Search vs Durable List Build
146
+
147
+ Autotouch has two different company/people discovery paths.
148
+
149
+ Use `autotouch search companies` and `autotouch search people` for neural search when the target is niche, semantic, or hard to express with structured filters. Examples: "companies like Clay for healthcare", "AI workflow startups selling to law firms", or "RevOps operators at PLG SaaS companies". Neural company/people search returns at most 10 results per API call and costs 1 credit per API call.
150
+
151
+ Use `autotouch list-build companies` and `autotouch list-build leads` for structured, repeatable list construction. This is the default path for larger company and lead lists using filters like geography IDs, company size, industry IDs, title/persona, and current company IDs. Durable list builds run as background jobs with status/results endpoints and cost 1 credit per successful non-empty result page.
152
+
153
+ For account-first prospecting, build companies first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use neural search as a default pre-step for every list build; use it when the user's target is genuinely semantic or niche.
154
+
145
155
  ## More
146
156
 
147
157
  For automation or agent-driven setup, use:
148
158
  - `autotouch cli-manifest --output json` for the local machine-readable command contract
149
159
  - `autotouch cli-reference` for the shipped parser-generated reference
150
160
  - `autotouch capabilities --output json` for provider/workflow contracts
151
- - `autotouch --version` should be `0.2.79` or newer for provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
161
+ - `autotouch --version` should be `0.2.80` or newer for the 10-result neural search cap and provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
152
162
  - `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
153
163
  - `autotouch list-build companies` and `autotouch list-build leads` for durable provider-hidden company and lead list builds with Smart Table-owned background workers, visible progress, and no user-owned network connection requirement
154
164
  - `autotouch linkedin search` for one-page LinkedIn/Sales Navigator replay/debug searches; it is not the recommended path for large lists
@@ -107,9 +107,9 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
107
107
  - Inspect rows: `autotouch rows list`, `autotouch rows get`
108
108
  - Inspect one cell: `autotouch cells get`
109
109
  - Create a workflow column: `autotouch columns recipe`, `autotouch columns create`
110
- - Run provider-hidden search: `autotouch search companies`, `autotouch search people`
110
+ - Run neural search for niche/specific company or people discovery: `autotouch search companies`, `autotouch search people`
111
111
  - Inspect LinkedIn filters: `autotouch linkedin filters --category people`
112
- - Build a durable lead list on Smart Table workers: `autotouch list-build leads --title 'Account Executive OR SDR' --geo-id 103644278 --num-results 1000 --wait`
112
+ - Build durable company and lead lists on Smart Table workers: `autotouch list-build companies`, `autotouch list-build leads`
113
113
  - Run one LinkedIn search page/debug replay: `autotouch linkedin search`
114
114
  - Run controlled slices: `autotouch columns run-next`
115
115
  - Poll authoritative state: `autotouch jobs get`
@@ -117,13 +117,23 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
117
117
  - Query leads: `autotouch leads query`
118
118
  - Find a lead by email or phone: `autotouch leads query --search '<email-or-phone>' --limit 10`
119
119
 
120
+ ## Neural Search vs Durable List Build
121
+
122
+ Autotouch has two different company/people discovery paths.
123
+
124
+ Use `autotouch search companies` and `autotouch search people` for neural search when the target is niche, semantic, or hard to express with structured filters. Examples: "companies like Clay for healthcare", "AI workflow startups selling to law firms", or "RevOps operators at PLG SaaS companies". Neural company/people search returns at most 10 results per API call and costs 1 credit per API call.
125
+
126
+ Use `autotouch list-build companies` and `autotouch list-build leads` for structured, repeatable list construction. This is the default path for larger company and lead lists using filters like geography IDs, company size, industry IDs, title/persona, and current company IDs. Durable list builds run as background jobs with status/results endpoints and cost 1 credit per successful non-empty result page.
127
+
128
+ For account-first prospecting, build companies first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use neural search as a default pre-step for every list build; use it when the user's target is genuinely semantic or niche.
129
+
120
130
  ## More
121
131
 
122
132
  For automation or agent-driven setup, use:
123
133
  - `autotouch cli-manifest --output json` for the local machine-readable command contract
124
134
  - `autotouch cli-reference` for the shipped parser-generated reference
125
135
  - `autotouch capabilities --output json` for provider/workflow contracts
126
- - `autotouch --version` should be `0.2.79` or newer for provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
136
+ - `autotouch --version` should be `0.2.80` or newer for the 10-result neural search cap and provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
127
137
  - `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
128
138
  - `autotouch list-build companies` and `autotouch list-build leads` for durable provider-hidden company and lead list builds with Smart Table-owned background workers, visible progress, and no user-owned network connection requirement
129
139
  - `autotouch linkedin search` for one-page LinkedIn/Sales Navigator replay/debug searches; it is not the recommended path for large lists
@@ -67,7 +67,7 @@ def cmd_search_companies(args: argparse.Namespace, *, runtime: SearchCommandRunt
67
67
  runtime=runtime,
68
68
  default_payload={
69
69
  "query": str(getattr(args, "query", "") or "").strip(),
70
- "limit": max(1, min(int(getattr(args, "limit", 25) or 25), 100)),
70
+ "limit": max(1, min(int(getattr(args, "limit", 10) or 10), 10)),
71
71
  },
72
72
  )
73
73
  data = runtime.request_api(
@@ -86,7 +86,7 @@ def cmd_search_companies(args: argparse.Namespace, *, runtime: SearchCommandRunt
86
86
  def cmd_search_people(args: argparse.Namespace, *, runtime: SearchCommandRuntime) -> None:
87
87
  token = runtime.resolve_token(args.token, required=True)
88
88
  payload: Dict[str, Any] = {
89
- "limit": max(1, min(int(getattr(args, "limit", 25) or 25), 100)),
89
+ "limit": max(1, min(int(getattr(args, "limit", 10) or 10), 10)),
90
90
  }
91
91
  query = str(getattr(args, "query", "") or "").strip()
92
92
  company = str(getattr(args, "company", "") or "").strip()
@@ -121,7 +121,7 @@ def cmd_search_similar_companies(args: argparse.Namespace, *, runtime: SearchCom
121
121
  token = runtime.resolve_token(args.token, required=True)
122
122
  payload: Dict[str, Any] = {
123
123
  "company_name": str(getattr(args, "company_name", "") or "").strip(),
124
- "limit": max(1, min(int(getattr(args, "limit", 25) or 25), 100)),
124
+ "limit": max(1, min(int(getattr(args, "limit", 10) or 10), 10)),
125
125
  }
126
126
  company_domain = str(getattr(args, "company_domain", "") or "").strip()
127
127
  company_description = str(getattr(args, "company_description", "") or "").strip()
@@ -266,7 +266,7 @@ def register_search_subcommands(
266
266
 
267
267
  companies_parser = search_sub.add_parser("companies", help="Find companies with provider-hidden neural search")
268
268
  companies_parser.add_argument("--query", help="Free-text company query")
269
- companies_parser.add_argument("--limit", type=int, default=25, help="Max results, 1-100 (default: 25)")
269
+ companies_parser.add_argument("--limit", type=int, default=10, help="Max results, 1-10 (default: 10)")
270
270
  companies_parser.add_argument("--data-json", help="Explicit request payload JSON")
271
271
  companies_parser.add_argument("--data-file", help="Path to request payload JSON file")
272
272
  add_api_common_arguments(companies_parser)
@@ -277,7 +277,7 @@ def register_search_subcommands(
277
277
  people_parser.add_argument("--company", help="Optional company name")
278
278
  people_parser.add_argument("--location", help="Optional location")
279
279
  people_parser.add_argument("--skill", action="append", help="Optional skill (repeatable; comma-separated also supported)")
280
- people_parser.add_argument("--limit", type=int, default=25, help="Max results, 1-100 (default: 25)")
280
+ people_parser.add_argument("--limit", type=int, default=10, help="Max results, 1-10 (default: 10)")
281
281
  people_parser.add_argument("--data-json", help="Explicit request payload JSON")
282
282
  people_parser.add_argument("--data-file", help="Path to request payload JSON file")
283
283
  add_api_common_arguments(people_parser)
@@ -287,7 +287,7 @@ def register_search_subcommands(
287
287
  similar_parser.add_argument("--company-name", help="Seed company name")
288
288
  similar_parser.add_argument("--company-domain", help="Official company domain to ground similarity search")
289
289
  similar_parser.add_argument("--company-description", help="Short semantic company description to improve peer matching")
290
- similar_parser.add_argument("--limit", type=int, default=25, help="Max results, 1-100 (default: 25)")
290
+ similar_parser.add_argument("--limit", type=int, default=10, help="Max results, 1-10 (default: 10)")
291
291
  similar_parser.add_argument("--data-json", help="Explicit request payload JSON")
292
292
  similar_parser.add_argument("--data-file", help="Path to request payload JSON file")
293
293
  add_api_common_arguments(similar_parser)
@@ -1,6 +1,6 @@
1
1
  # Autotouch CLI Reference
2
2
 
3
- Generated from the installed parser for `autotouch-cli` `0.2.79`.
3
+ Generated from the installed parser for `autotouch-cli` `0.2.80`.
4
4
  Manifest schema version: `2`.
5
5
 
6
6
  ## Output Modes
@@ -3774,7 +3774,7 @@ Find companies with provider-hidden neural search
3774
3774
  --json-pointer JSON_POINTER] [--verbose]`
3775
3775
  - Options:
3776
3776
  - `--query` (kind=string): Free-text company query
3777
- - `--limit` (kind=integer; default=25): Max results, 1-100 (default: 25)
3777
+ - `--limit` (kind=integer; default=10): Max results, 1-10 (default: 10)
3778
3778
  - `--data-json` (kind=json; input=json): Explicit request payload JSON
3779
3779
  - `--data-file` (kind=file; input=file): Path to request payload JSON file
3780
3780
  - `--base-url` (kind=string; default=https://app.autotouch.ai): API base URL (default: https://app.autotouch.ai)
@@ -3914,7 +3914,7 @@ Find people with provider-hidden neural search
3914
3914
  - `--company` (kind=string): Optional company name
3915
3915
  - `--location` (kind=string): Optional location
3916
3916
  - `--skill` (kind=string; repeatable; comma-separated): Optional skill (repeatable; comma-separated also supported)
3917
- - `--limit` (kind=integer; default=25): Max results, 1-100 (default: 25)
3917
+ - `--limit` (kind=integer; default=10): Max results, 1-10 (default: 10)
3918
3918
  - `--data-json` (kind=json; input=json): Explicit request payload JSON
3919
3919
  - `--data-file` (kind=file; input=file): Path to request payload JSON file
3920
3920
  - `--base-url` (kind=string; default=https://app.autotouch.ai): API base URL (default: https://app.autotouch.ai)
@@ -4026,7 +4026,7 @@ Find companies similar to a seed company
4026
4026
  - `--company-name` (kind=string): Seed company name
4027
4027
  - `--company-domain` (kind=string): Official company domain to ground similarity search
4028
4028
  - `--company-description` (kind=string): Short semantic company description to improve peer matching
4029
- - `--limit` (kind=integer; default=25): Max results, 1-100 (default: 25)
4029
+ - `--limit` (kind=integer; default=10): Max results, 1-10 (default: 10)
4030
4030
  - `--data-json` (kind=json; input=json): Explicit request payload JSON
4031
4031
  - `--data-file` (kind=file; input=file): Path to request payload JSON file
4032
4032
  - `--base-url` (kind=string; default=https://app.autotouch.ai): API base URL (default: https://app.autotouch.ai)
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.79",
2
+ "version": "0.2.80",
3
3
  "manifest_schema_version": 2,
4
4
  "entry_points": {
5
5
  "autotouch": "autotouch_cli.cli:main",
@@ -6324,11 +6324,11 @@
6324
6324
  {
6325
6325
  "dest": "limit",
6326
6326
  "required": false,
6327
- "help": "Max results, 1-100 (default: 25)",
6327
+ "help": "Max results, 1-10 (default: 10)",
6328
6328
  "kind": "integer",
6329
6329
  "action": "store",
6330
- "default_when_omitted": 25,
6331
- "default": 25,
6330
+ "default_when_omitted": 10,
6331
+ "default": 10,
6332
6332
  "flags": [
6333
6333
  "--limit"
6334
6334
  ],
@@ -6579,11 +6579,11 @@
6579
6579
  {
6580
6580
  "dest": "limit",
6581
6581
  "required": false,
6582
- "help": "Max results, 1-100 (default: 25)",
6582
+ "help": "Max results, 1-10 (default: 10)",
6583
6583
  "kind": "integer",
6584
6584
  "action": "store",
6585
- "default_when_omitted": 25,
6586
- "default": 25,
6585
+ "default_when_omitted": 10,
6586
+ "default": 10,
6587
6587
  "flags": [
6588
6588
  "--limit"
6589
6589
  ],
@@ -6821,11 +6821,11 @@
6821
6821
  {
6822
6822
  "dest": "limit",
6823
6823
  "required": false,
6824
- "help": "Max results, 1-100 (default: 25)",
6824
+ "help": "Max results, 1-10 (default: 10)",
6825
6825
  "kind": "integer",
6826
6826
  "action": "store",
6827
- "default_when_omitted": 25,
6828
- "default": 25,
6827
+ "default_when_omitted": 10,
6828
+ "default": 10,
6829
6829
  "flags": [
6830
6830
  "--limit"
6831
6831
  ],
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: autotouch-cli
3
- Version: 0.2.79
3
+ Version: 0.2.80
4
4
  Summary: Autotouch Smart Table CLI
5
5
  Project-URL: Homepage, https://app.autotouch.ai
6
6
  Project-URL: Documentation, https://github.com/nicolonic/autotouch_main/tree/main/docs/research-table/reference
@@ -132,9 +132,9 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
132
132
  - Inspect rows: `autotouch rows list`, `autotouch rows get`
133
133
  - Inspect one cell: `autotouch cells get`
134
134
  - Create a workflow column: `autotouch columns recipe`, `autotouch columns create`
135
- - Run provider-hidden search: `autotouch search companies`, `autotouch search people`
135
+ - Run neural search for niche/specific company or people discovery: `autotouch search companies`, `autotouch search people`
136
136
  - Inspect LinkedIn filters: `autotouch linkedin filters --category people`
137
- - Build a durable lead list on Smart Table workers: `autotouch list-build leads --title 'Account Executive OR SDR' --geo-id 103644278 --num-results 1000 --wait`
137
+ - Build durable company and lead lists on Smart Table workers: `autotouch list-build companies`, `autotouch list-build leads`
138
138
  - Run one LinkedIn search page/debug replay: `autotouch linkedin search`
139
139
  - Run controlled slices: `autotouch columns run-next`
140
140
  - Poll authoritative state: `autotouch jobs get`
@@ -142,13 +142,23 @@ autotouch rows get --table-id "$TABLE_ID" --row-id "$ROW_ID" --output json
142
142
  - Query leads: `autotouch leads query`
143
143
  - Find a lead by email or phone: `autotouch leads query --search '<email-or-phone>' --limit 10`
144
144
 
145
+ ## Neural Search vs Durable List Build
146
+
147
+ Autotouch has two different company/people discovery paths.
148
+
149
+ Use `autotouch search companies` and `autotouch search people` for neural search when the target is niche, semantic, or hard to express with structured filters. Examples: "companies like Clay for healthcare", "AI workflow startups selling to law firms", or "RevOps operators at PLG SaaS companies". Neural company/people search returns at most 10 results per API call and costs 1 credit per API call.
150
+
151
+ Use `autotouch list-build companies` and `autotouch list-build leads` for structured, repeatable list construction. This is the default path for larger company and lead lists using filters like geography IDs, company size, industry IDs, title/persona, and current company IDs. Durable list builds run as background jobs with status/results endpoints and cost 1 credit per successful non-empty result page.
152
+
153
+ For account-first prospecting, build companies first, inspect the returned company IDs, then pass those IDs to `autotouch list-build leads --current-company-id ...`. Do not use neural search as a default pre-step for every list build; use it when the user's target is genuinely semantic or niche.
154
+
145
155
  ## More
146
156
 
147
157
  For automation or agent-driven setup, use:
148
158
  - `autotouch cli-manifest --output json` for the local machine-readable command contract
149
159
  - `autotouch cli-reference` for the shipped parser-generated reference
150
160
  - `autotouch capabilities --output json` for provider/workflow contracts
151
- - `autotouch --version` should be `0.2.79` or newer for provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
161
+ - `autotouch --version` should be `0.2.80` or newer for the 10-result neural search cap and provider-hidden `autotouch list-build ...`; older CLIs may still show the removed `autotouch linkedin list-build` surface
152
162
  - `autotouch capabilities --output json --select list_builds` for documented list-build inputs such as geography IDs, company size buckets, profile language, and company IDs
153
163
  - `autotouch list-build companies` and `autotouch list-build leads` for durable provider-hidden company and lead list builds with Smart Table-owned background workers, visible progress, and no user-owned network connection requirement
154
164
  - `autotouch linkedin search` for one-page LinkedIn/Sales Navigator replay/debug searches; it is not the recommended path for large lists
@@ -16,7 +16,7 @@ _SEARCH_ENDPOINTS: Dict[str, Dict[str, Any]] = {
16
16
  "required_scope": SEARCH_SCOPE,
17
17
  "body": {
18
18
  "query": "required free-text company search query",
19
- "limit": "optional 1-100 (default 25)",
19
+ "limit": "optional 1-10 (default 10)",
20
20
  },
21
21
  "response": {"items_field": "items", "item_type": "company"},
22
22
  },
@@ -29,7 +29,7 @@ _SEARCH_ENDPOINTS: Dict[str, Dict[str, Any]] = {
29
29
  "company": "optional target company name",
30
30
  "location": "optional location string",
31
31
  "skills": "optional string[]",
32
- "limit": "optional 1-100 (default 25)",
32
+ "limit": "optional 1-10 (default 10)",
33
33
  },
34
34
  "response": {"items_field": "items", "item_type": "person"},
35
35
  },
@@ -41,7 +41,7 @@ _SEARCH_ENDPOINTS: Dict[str, Dict[str, Any]] = {
41
41
  "company_name": "required seed company name",
42
42
  "company_domain": "optional official company domain",
43
43
  "company_description": "optional short semantic description to improve peer matching",
44
- "limit": "optional 1-100 (default 25)",
44
+ "limit": "optional 1-10 (default 10)",
45
45
  },
46
46
  "response": {"items_field": "items", "item_type": "company"},
47
47
  },
@@ -119,11 +119,11 @@ _SEARCH_CAPABILITIES: Dict[str, Any] = {
119
119
  ],
120
120
  },
121
121
  "pricing": {
122
- "charge_on": "actual_results_returned",
122
+ "charge_on": "api_call_or_actual_results_returned",
123
123
  "families": {
124
- "companies": {"credits_per_bucket": 1, "bucket_size": 10, "rule": "1 credit per 10 results"},
125
- "people": {"credits_per_bucket": 1, "bucket_size": 10, "rule": "1 credit per 10 results"},
126
- "similar_companies": {"credits_per_bucket": 1, "bucket_size": 10, "rule": "1 credit per 10 results"},
124
+ "companies": {"credits_per_call": 1, "max_results_per_call": 10, "rule": "1 credit per neural search API call"},
125
+ "people": {"credits_per_call": 1, "max_results_per_call": 10, "rule": "1 credit per neural search API call"},
126
+ "similar_companies": {"credits_per_call": 1, "max_results_per_call": 10, "rule": "1 credit per neural search API call"},
127
127
  "news": {"credits_per_bucket": 1, "bucket_size": 25, "rule": "1 credit per 25 results"},
128
128
  "local_businesses": {"credits_per_bucket": 1, "bucket_size": 25, "rule": "1 credit per 25 results"},
129
129
  "reviews": {"credits_per_bucket": 1, "bucket_size": 25, "rule": "1 credit per 25 results"},
@@ -140,11 +140,11 @@ _SEARCH_CAPABILITIES: Dict[str, Any] = {
140
140
 
141
141
  _SEARCH_RECIPES: Dict[str, Dict[str, Any]] = {
142
142
  "companies": {
143
- "payload": {"query": "remote IT asset management", "limit": 25},
143
+ "payload": {"query": "remote IT asset management", "limit": 10},
144
144
  "usage": "autotouch search companies --data-file <payload.json>",
145
145
  "notes": [
146
146
  "Use this when you need to discover target accounts first.",
147
- "Pricing: 1 credit per 10 returned companies.",
147
+ "Pricing: 1 credit per neural search API call. Max 10 returned companies per call.",
148
148
  ],
149
149
  },
150
150
  "people": {
@@ -153,12 +153,12 @@ _SEARCH_RECIPES: Dict[str, Dict[str, Any]] = {
153
153
  "company": "Rippling",
154
154
  "location": "United States",
155
155
  "skills": ["endpoint management", "IT operations"],
156
- "limit": 25,
156
+ "limit": 10,
157
157
  },
158
158
  "usage": "autotouch search people --data-file <payload.json>",
159
159
  "notes": [
160
160
  "Use this when you already know the target companies or persona.",
161
- "Pricing: 1 credit per 10 returned people.",
161
+ "Pricing: 1 credit per neural search API call. Max 10 returned people per call.",
162
162
  ],
163
163
  },
164
164
  "similar_companies": {
@@ -166,13 +166,13 @@ _SEARCH_RECIPES: Dict[str, Dict[str, Any]] = {
166
166
  "company_name": "Rippling",
167
167
  "company_domain": "rippling.com",
168
168
  "company_description": "Workforce management and HR software platform for businesses",
169
- "limit": 25,
169
+ "limit": 10,
170
170
  },
171
171
  "usage": "autotouch search similar-companies --data-file <payload.json>",
172
172
  "notes": [
173
173
  "Good for expanding a seed account list.",
174
174
  "Best results come from providing company_domain and a short company_description when known.",
175
- "Pricing: 1 credit per 10 returned companies.",
175
+ "Pricing: 1 credit per neural search API call. Max 10 returned companies per call.",
176
176
  ],
177
177
  },
178
178
  "news": {
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "autotouch-cli"
7
- version = "0.2.79"
7
+ version = "0.2.80"
8
8
  description = "Autotouch Smart Table CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes