higherdata 0.6.0 → 0.7.1

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.
package/README.md CHANGED
@@ -11,7 +11,7 @@ node packages/cli/dist/index.js --help
11
11
  The package provides the `higherdata` command. After the first approved npm release,
12
12
  install with `npm install --global higherdata`, or run `npx higherdata --version`.
13
13
  Global flags are `--json`, `--jsonl` and `--api-url <url>`.
14
- `--help` and `--version` work without credentials or a config file.
14
+ `--help`, `--version` and `higherdata guide` work without credentials or a config file.
15
15
 
16
16
  Config lives at `~/.config/higherdata/config.json`. The config helpers write it
17
17
  atomically with mode 0600 and tighten an existing file to 0600 when read.
@@ -37,6 +37,37 @@ and `[::1]` for local development. Embedded URL credentials are refused.
37
37
  Exit codes: 0 success, 2 usage or configuration, 3 authentication, 4 limit,
38
38
  5 suppressed-only result, 6 needs approval.
39
39
 
40
+ ## Agent quick reference
41
+
42
+ `higherdata guide` prints this on one screen. It does not call the API.
43
+
44
+ Count first, then download. `higherdata count --country-code CA --json` estimates
45
+ companies and their contacts. A people count is
46
+ `higherdata tools search.count_people --input '{"filters":{"countryCodes":["CA"]}}' --json`.
47
+ Then download once:
48
+
49
+ ```sh
50
+ higherdata search people --country-code CA --title-keyword Operations --all --out people.jsonl
51
+ ```
52
+
53
+ `--all` requests 500 rows per page (the largest page the API allows for a download) and keeps at
54
+ most 3 pages ahead of the writer. Progress prints `344 rows` while it runs and
55
+ `453 rows (all)` when every matching row is saved. The 5,000 row cap is mentioned
56
+ only when a download hits it. Save the search to a list and export the list for
57
+ a larger set. `--out` writes the same fields as `--jsonl`, whether the file is
58
+ `.jsonl` or `.csv`. Do not download twice to recover missing columns.
59
+
60
+ Filter flags are on `higherdata search people --help` and
61
+ `higherdata search companies --help`. Allowed values come from
62
+ `higherdata tools search.facets --json` (country, state, industry, NAICS,
63
+ funding, department, seniority, role family, and city suggestions).
64
+ `--where "Canadian software companies"` proposes filters before the search.
65
+ A people search needs a country or an industry.
66
+
67
+ Do not call `lookup.company` once per person. When batch company lookup is
68
+ available, pass up to 100 `hdo_` ids in one `lookup.company` call. Until that
69
+ call accepts `ids`, it takes one domain, name, LinkedIn URL, or `hdo_` id.
70
+
40
71
  ## Interactive app
41
72
 
42
73
  Run `higherdata` in a terminal to open the keyboard app. The yellow
@@ -72,6 +103,8 @@ below preserve their behavior and output.
72
103
  ```sh
73
104
  higherdata tools search.companies --country-codes CA,US --employee-count-min 50 --json
74
105
  higherdata tools lookup.company --id hdo_EXAMPLE --json
106
+ higherdata lookup person --linkedin https://www.linkedin.com/in/avery-orchid --json
107
+ higherdata lookup company --linkedin https://www.linkedin.com/company/orchid-fixture --json
75
108
  higherdata tools email.verify --email avery@cedar.example --json
76
109
  higherdata tools email.verify --email avery@cedar.example --execute --yes --json
77
110
  higherdata tools changes.apply --id CHANGE_SET_ID --execute --yes --json
@@ -110,9 +143,11 @@ the issued key's space applies until `use` selects another authorized space.
110
143
  Logout removes the active profile's saved key. An environment key still applies.
111
144
 
112
145
  Commands use only `/api/v1`. Versioned device routes reuse the original device
113
- handlers. Requests time out after 30 seconds, refuse redirects and cap response
114
- bodies at 8 MiB. The CLI reports safe errors without printing credentials or
115
- provider error bodies. Production's alias can use the canonical approval URL.
146
+ handlers. Requests time out after 30 seconds and refuse redirects. Ordinary
147
+ response bodies stay at 8 MiB. A search download page can be up to ten times
148
+ that, matching a 500-row page. The CLI reports safe errors without printing
149
+ credentials or provider error bodies. Production's alias can use the canonical
150
+ approval URL.
116
151
 
117
152
  Repeat array flags, such as `--country-code CA --country-code US`, to add values.
118
153
  For advanced filters, use `--filters '{"requiredKeywordGroups":[["operations","logistics"]]}'`.
@@ -122,7 +157,8 @@ proposed values before the search. People searches need a selective country or
122
157
  industry, as enforced by the API.
123
158
 
124
159
  `--limit` is the page size, from 1 to 50. `--cursor` resumes an opaque cursor and
125
- `--all` walks the remaining pages. Repeated cursors stop with an error. JSON
160
+ `--all` walks the remaining pages. A search download with `--all` always requests
161
+ 500 rows per page and sets download to true. Repeated cursors stop with an error. JSON
126
162
  search output retains `items`, `nextCursor` and `zeroResults`; with `--all`, the
127
163
  items are combined and the final cursor is null. JSONL prints one record per
128
164
  line. Human output uses tables. Choose one of `--json` and `--jsonl`.
@@ -222,7 +258,7 @@ uses its last known policy; with no cached policy it allows the command. Failed
222
258
  checks are cached for a day too. A read-only cache directory allows commands but
223
259
  cannot persist the daily check, so subsequent invocations may check again.
224
260
 
225
- Download the loaded search page to a new file with `higherdata search companies --country-code CA --out results.csv`. Add `--all` to download up to 5,000 rows, or use a `.jsonl` destination for JSON Lines. The interactive results screen offers "This page" and "All results" when you press `d`. For larger sets, save the search to a list and export the list. Existing files are never overwritten.
261
+ Download the loaded search page to a new file with `higherdata search companies --country-code CA --out results.csv`. Add `--all` to walk every remaining page, up to 5,000 rows. `--all` requests 500 rows per page, keeps at most 3 pages ahead of the writer, and prints `344 rows` while it runs and `453 rows (all)` when the search is finished. The 5,000 cap is mentioned only when the download hits it. `.csv` and `.jsonl` files contain the same fields as `--jsonl` on stdout. The interactive results screen offers "This page" and "All results" when you press `d`. For larger sets, save the search to a list and export the list. Existing files are never overwritten. `higherdata guide` prints the same download recipes.
226
262
 
227
263
  ## Updates
228
264
 
@@ -259,3 +295,5 @@ The CLI stores saved API keys in macOS Keychain, Windows Credential Manager, or
259
295
  Server failures print the error code, user-safe message and request id to stderr. JSON and JSONL results stay on stdout. Non-interactive commands also print a one-line newer-version notice on stderr using the existing daily compatibility check.
260
296
 
261
297
  When `higherdata tools email.find` returns `status: ambiguous`, select an opaque id from `companyCandidates` and retry with `--company-id`. This choice does not submit verification requests. An exact match to one primary domain is selected automatically when the complete company match set is available.
298
+
299
+ `higherdata verify-email --email avery@cedar.example --execute --yes` refuses an address already held for a contact. Existing record email status is read-only. API callers who explicitly need another verification can add `--force`; this override is not offered in the interactive app. Finds wait automatically for their verification result.