This reference describes the Signals discovery-monitor contract. Check the selected server’s capabilities and Signals catalog for supported sources, criteria, cadences and current billing. API availability does not enable monitoring or establish provider readiness, completed collection or delivered Signals.
Choose the saved population or discovery source
Start with saved Signals when organization-visible evidence can answer the request. To follow existing saved Companies, use Company enrollment. For recurring discovery beyond saved Companies, create one monitor for jobs, linkedin_posts or job_changes. Reading a Signal, collecting one and saving its person into Leads are separate actions.
Use a key with Signals permissions
In Settings → Developer API, create a key with Signals Read, Write and Run selected for the complete monitoring workflow. Read alone queries saved evidence, the catalog and monitors. Company monitoring/enrollment requires Read and Write. Discovery preview requires Read and Run; create, update, pause/resume and explicit run require all three because an update can schedule paid collection. The existing complete Company/Lead/Search scope combinations remain supported on these Signals routes. Signals permissions do not grant general CRM or Search access. Saving a chosen person to Leads separately requires leads:write; supported Research Table destinations/creation retain their table scopes. CLI calls use the same key and checks as HTTP.
Read contracts and pricing first
Get the catalog for the five complete criteria schemas, allowed frequencies, defaults and source billing policy. Search industries without buying candidates. Job changes expects industry labels; LinkedIn posts expects numeric industry IDs. Job changes uses actual employee bands, including 501–1,000 and 1,001+, and separate employer-HQ/person country filters.
LinkedIn posts
Use criteria.keywordPhrases for added keywords or phrases. The server normalizes the list and searches for any phrase with one quoted OR query, for example "outbound sales" OR "pipeline generation" OR "sales development". Industry and author-profile filters apply to that whole query. A list of terms does not create separate monitors or one search per term. For an existing raw Boolean query, send keywords without keywordPhrases; the raw query is preserved. If both are sent, the phrase list determines keywords.
Read industry options and use numeric IDs for authorsIndustryId. The following create request searches post text for any of three phrases, with the same Software Development and author-profile filters applied to all three:
{
"name": "Outbound sales conversations",
"source": "linkedin_posts",
"criteria": {
"keywordPhrases": [
"outbound sales",
"pipeline generation",
"sales development"
],
"authorsIndustryId": "4",
"authorKeywords": "RevOps",
"excludePromotions": true
},
"frequency": "hourly",
"enabled": true,
"runNow": true,
"requestId": "linkedin-post-monitor-example-1"
}Hourly sets the check cadence; it does not apply a last-hour post filter. The current LinkedIn discovery criteria do not expose a posted-date or lookback field. The feed’s window_days filters saved evidence when reading it; it does not change what a monitor collects.
Post relevance is inferred automatically from the search intent and available organization context. Search intent stays primary; organization context can clarify relevance but cannot override it. Omit the legacy topic and relevanceMode fields in new requests.
Jobs/posts default daily; LinkedIn posts also supports hourly. Job changes defaults weekly, with daily/weekly only. FDA activity is weekly only. SEC filings supports daily and weekly. Its source date windows use one- or seven-day lookbacks and event dates can differ; do not treat them as exact rolling occurrence-time guarantees. Required company facts must be verified. Missing industry, size or country evidence cannot pass a selected filter.
Job openings
Use criteria.providerSelection="automatic" without a provider list to select compatible Indeed, Google Jobs, LinkedIn and Glassdoor sources that enforce every active filter. Unsupported combinations are rejected. Existing manual lists remain supported. Supply title keywords, or select jobType="remote" for remote-only acquisition without a title query. Search market/location is not employer HQ or worldwide work eligibility.
Job monitor windows and employment types
For source=jobs, frequency=daily is the default and selects a past-day search; weekly selects the past seven days. The same window applies to preview, create, update and fresh scheduled checks. Omit the deprecated datePosted and linkedinDateRestrict inputs: they do not override monitor frequency.
Automatic routing can use Indeed, Google Jobs and LinkedIn when the other filters are compatible. Google Jobs uses its native posting-date filter. LinkedIn uses Scrappa’s Google-based search-date restriction, which is not an independently verified job-posting cutoff. Indeed checks returned posting dates before preview or delivery and excludes old, future, missing or unreadable dates; first-seen time never substitutes for posting time. Indeed requests date sorting unless another sort was saved, and still pages past old rows within bounded batches. Glassdoor has no supported lookback and is excluded from automatic date-window searches.
Omit jobType or use an empty string for Any job type. Current filters are part_time, contract, internship and remote. Legacy full_time/fulltime values are unrestricted. Paid continuation batches keep their saved search, date bounds and cursors; fresh checks use the current cadence. Selected-server deployment is separate from CLI 0.2.127 and these source-contract docs; inspect its catalog before relying on new behavior.
FDA activity
Use source="fda" to follow FDA activity for any firm, including firms outside the CRM. Every record below is collected once for all organizations; each monitor chooses what to include with activities (default device_recalls, device_clearances, device_warning_letters). Adverse-event reports and establishment registrations are not collected.
- Medical devices:
device_recalls(with FDA's root cause),device_clearances(510(k)),pma_approvals(original PMAs),pma_supplements(including 30-day manufacturing-change notices),device_warning_letters. - Drugs & biologics:
drug_recalls,drug_approvals(original NDA/BLA),generic_approvals(original ANDA),drug_warning_letters. - Food & supplements:
food_recalls,food_warning_letters. - Other:
other_warning_letters(tobacco, veterinary and anything else).
Saved recalls and clearances map to device_recalls and device_clearances. FDA publishes in weekly batches, so frequency is weekly only and is the default. Each check reads the trailing 35 days and skips FDA records the organization already received, so records FDA publishes after their own date are still delivered once. Warning letters are dated by when FDA posted them, usually weeks after issue.
Other criteria are optional, and each applies only to records that carry its field: recallClasses (I, II, III; default I and II; all recalls), recallRootCauses (device recalls: design, manufacturing, supplier, labeling, undetermined, other), specialties (device review panel codes such as CV or OR; 510(k) and PMA), letterViolations (warning letters: quality_system for 21 CFR 820, drug_cgmp, food_safety, reporting, unapproved_products, clinical_research; from the regulations each letter cites), countries (ISO-2 firm country), usStates (two-letter states; only US firms in those states match) and productKeywords (up to ten terms matched against product, recall reason, root cause, device name or warning letter text). Drug approvals carry no address, so location filters exclude them. Filters use FDA's own fields; there is no relevance qualification step.
FDA previews are free: they return counts by product area and up to ten matching records from the last 35 days without identifying firms. FDA signals are not billed. Each firm is matched to a company website, using a warning letter's business contact domain when it agrees with the firm name; firms that cannot be matched still deliver under the FDA firm name. Saved evidence uses signal_type=regulatory_action with subtypes fda_device_recall, fda_510k_clearance, fda_pma_approval, fda_pma_supplement, fda_drug_recall, fda_drug_approval, fda_generic_approval, fda_food_recall and fda_warning_letter.
SEC filings
Use source="sec_filings" to follow new SEC EDGAR filings by any company, including companies outside the CRM. Every filing below is collected once for all organizations; each monitor chooses what to include with filingKinds (default funding_rounds, executive_changes, acquisitions; amendments are excluded):
- Funding:
funding_rounds(Form D private raises),public_offerings(8-K Item 3.02, 424B4/424B5),debt_financing(8-K Item 2.03),ipo_filings(S-1/F-1). - Leadership & ownership:
executive_changes(8-K Item 5.02),change_in_control(8-K Item 5.01),activist_stakes(Schedule 13D; the signal is on the target company and the investor is listed as another party). - Deals:
acquisitions(8-K Item 2.01),mergers_tender_offers(S-4/F-4, SC TO-T),material_agreements(8-K Item 1.01),terminated_agreements(8-K Item 1.02). - Risk & distress:
restructuring(8-K Item 2.05),cybersecurity_incidents(8-K Item 1.05),auditor_changes(8-K Item 4.01),delisting_notices(8-K Item 3.01). - Other disclosures:
earnings(8-K Item 2.02),other_events(8-K Item 8.01),annual_reports(10-K/20-F; most useful withfilingKeywords).
Monitors check daily or weekly (default weekly) and read the last 2 or 8 days; filings already delivered are skipped. One 8-K can produce a signal for each selected item.
Which companies (optional): sectors (curated keys mapped to SIC codes, and to the Form D industry group for private raises), states (filer business address) and filingKeywords (up to five EDGAR full-text terms). Private raises only: minOfferingAmount in US dollars and includeFunds to also include funds and investment vehicles such as SPVs and holding LLCs (default false).
SEC previews and signals are free. Each operating-company filer is matched to a company website; unmatched filers keep the SEC filer name. Saved evidence uses funding (funding_round, public_offering, debt_financing, ipo_filing), job_change (executive_appointment, company scope without a person), acquisition (acquisition_completed, acquisition_announced, change_in_control, activist_stake), regulatory_action (sec_material_agreement, sec_agreement_terminated, sec_auditor_change, sec_delisting_notice, sec_annual_report) and news (restructuring, security_incident, earnings, company_announcement).
Preview deliberately
Jobs/posts previews collect up to ten candidates before relevance qualification; fewer sample rows may be returned. They do not save a monitor, deliver feed Signals or create Leads. Uncertain or unclassified candidates can be retained for review; inspect qualification status and warnings. No application delivery credits are charged for these previews; provider acquisition costs are separate. A sample is useful for checking the query, not estimating complete coverage. Use the same keywordPhrases and author filters as the monitor you intend to save.
Preview Job changes with previewMode=count first: it is free, returns no candidate rows and can be an estimate before firmographic filters or duplicate role results are resolved. It still requires signals:read and signals:run, or the complete legacy CRM-read and search:run combination. A paid sample is a separate explicit purchase of at most one candidate for up to 2 organization credits, even if the candidate cannot meet every Company filter. Sample evidence is never delivered to the feed. Read creditsUsed and warnings rather than equating a sample with a qualified match.
Create, then inspect progress
Create returns saved configuration and a nullable asynchronous run receipt. Enabled monitors request an initial check by default; use runNow=false to wait for the next cadence. Job changes defaults to all available affordable candidates: omit or send null for maxCandidates and maxCreditsPerCheck for no user-set cap, or set strict positive whole-number limits. At least one role, department or seniority is required; titles are optional when a department/seniority is selected. New unique Job changes delivery costs 2 app credits; jobs/posts cost 0.2 app credit per new unique delivered job/post. Duplicate organization delivery is free.
Jobs/posts collect available valid matches in resumable batches. Omit the legacy maxResults field; a processing batch does not cap the total matches retained. Source coverage, provider failures or credit holds can still limit a check. Poll discovery monitors for lastRunStatus, warnings, match counts and collectionStatus. A completed run is not proof of complete provider coverage.
Query saved matches with monitor_id and an appropriate window_days; 0 includes all saved event dates. Add signal_type=linkedin_posts, hiring, job_change, funding, acquisition or regulatory_action when needed for the selected source. That feed date window does not change acquisition criteria. Discovery run IDs do not belong to the Company-subscription run-status endpoint.
Edit, pause, resume or explicitly run
Update using the current expectedRevision. Source is immutable; supplied criteria replace the full criteria object. Set enabled=false to pause: the monitor cancels queued/running work owned by its prior revision, clears its active-run and next-run scheduling, and retains completed Signals. Collection checkpoints are retained when criteria are unchanged; replacing criteria clears the old checkpoint. A provider HTTP request already in flight cannot be recalled. Set enabled=true to resume future due checks, which can collect paid Signals. A saved update is not completed collection. Run explicitly admits a check using the newly read revision. Reuse request IDs only for unchanged explicit actions; a 409 is a conflict or reconciliation signal, not permission to purchase again automatically.
Save a chosen person to Leads
Monitor delivery does not auto-ingest Leads. After reviewing an unlocked saved LinkedIn author or job-change person Signal, call Save person with the workspace row ID. Exact existing Lead identity is reused. Employer handles from a Job change go through the shared Company resolver, preserving the transition’s observed employer. Masked surname initials remain unknown. Inspect disposition, linked and completed/partial status; reconcile the same action when needed instead of launching a competing generic Lead create.
API, Command Center and CLI boundaries
The new operations have typed authenticated API adapters. Catalog, industry lookup and monitor listing have read-only Command Center tools and corresponding source CLI commands: autotouch signals catalog, autotouch signals discovery-industries --q software --limit 20, and autotouch signals list-discovery-monitors. Verify the installed CLI version and selected server before relying on them. Command Center has native create_signal_discovery_monitor and update_signal_discovery_monitor tools that prepare approval plans for creating monitors and editing their name, criteria, cadence or enabled state. Pause and resume use the update tool; read the current monitor revision first. Creating enabled monitors and resuming checks can schedule paid work, which the approval must describe. Preview, explicit Run and Save person retain API-only mutation adapters. CLI source 0.2.126 adds autotouch signals create-discovery-monitor and update-discovery-monitor, accepting complete --data-json/--data-file payloads or named flags and complete --criteria-json. Dedicated pause-discovery-monitor and resume-discovery-monitor commands submit only the revision and enabled state, preserving omitted criteria. Update, pause and resume require an exact --monitor-id and current --expected-revision, or equivalent JSON fields. A stale revision is returned without automatic rereading or retry. Package publication and backend deployment are separate from source support. The existing Signals query tool/CLI reads saved evidence only. Use capability discovery for the selected deployed surface; API support does not imply identical Command Center or CLI execution.
