I maintain this Actor. This is an AI-assisted technical walkthrough, fact-checked against its accepted source contract and saved acceptance evidence.
A shared professional name is a weak basis for joining company appointments. Dates add another trap: a missing resignation date can look like an appointment that continues forever. A useful overlap report needs an explicit person key and enough temporal evidence to support the comparison.
The Company Officer Appointment Overlap Actor transforms supplied Companies House-style appointment records into assessments. Its sole cross-company person key is an exact nonempty bounded officerId. It does not join people by name, address, nationality, occupation, or date of birth. Public output is limited to relevant professional information and source evidence.
Keep identity and chronology separate
An exact officer ID supports grouping observations about appointments. It does not make every date interval complete. Appointment and resignation dates still need their own validation, and contradictory or impossible chronology remains visible. A record with a resignation before its appointment cannot support an ordinary overlap calculation.
Missing endpoints do not automatically establish that an appointment is active. Where the source claims an active status, it remains a source claim. Optional asOf supports the documented treatment of active observations with explicit assumptions. Keep that comparison date with the result rather than allowing a later reader to assume it was measured against today's clock.
Interpret a negative result within its coverage
The saved acceptance example has status single_company, action review_appointments, and medium confidence. A single-company assessment is useful, but it cannot establish that the officer has no appointments elsewhere. Likewise, overlapDetected: false does not prove that no overlap exists across a complete network. It describes the sufficiently supported intervals in the supplied batch.
Fields such as overlapPairs, insufficientBasisPairCount, invalidChronologyAppointmentCount, and chronologyInvalidPairsExcluded explain the comparison. Preserve these alongside the headline Boolean. If a review interface shows only the Boolean, it hides the difference between enough evidence for no overlap and insufficient evidence to compare an interval at all.
Bound display without hiding coverage
Nested officer collections are scanned within the bounded input before display limits are applied. Omitted sibling entries and omitted evidence are recorded. An evidence cap is a presentation limit, not permission to pretend that the displayed subset was the entire source. Professional names can help a reviewer recognize a record, while the exact source identifier remains the join key.
For a small integration test, use two distinct officer IDs with the same name, one ID with two complete overlapping intervals, and an appointment with a missing endpoint. Add an invalid chronology in a clearly labelled synthetic fixture. Verify separation of the same-name people, inspection of the supported overlap, and explicit insufficient basis for the incomplete interval. Keep excluded personal fields out of your downstream public examples too. Appointment overlap is a factual temporal observation; it does not establish misconduct, an undisclosed relationship, or any adverse conclusion about a person.
Run a small saved snapshot
Start with an existing Dataset you are authorized to read. Replace the Dataset placeholder below with its actual ID. Supported input can also use a source run ID or inline records; choose one explicit source. This Actor does not launch the upstream collection for you.
curl --request POST \
'https://api.apify.com/v2/acts/zinin~company-officer-appointment-overlap/runs?maxTotalChargeUsd=0.10' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"datasetId":"REPLACE_WITH_YOUR_DATASET_ID","maxInputRows":100,"maxResults":10}'
The response identifies an asynchronous run. Save that run ID and check its status before reading its default Dataset. A client timeout does not cancel a server run; inspect the existing ID before starting another one. maxInputRows bounds ingestion and maxResults caps useful output. Neither option establishes complete coverage of a larger source. The API charge limit is a ceiling, not a promise that ten results will fit.
Price and evidence limits
On 15 October 2026 the observed FREE-plan price is $0.03 per appointment assessment, with no paid start event for this Actor. Other subscription tiers can have different prices; verify the current Actor page before use. Source collection is a separate activity and may carry its own charges. Free diagnostic rows do not count as paid useful assessments.
The examples discussed here come from saved owner acceptance runs. They show specific observed behavior, rather than customer acceptance, profitability, or an exhaustive guarantee for every input. A new run of identical input can be charged again without adding new source evidence. Retain input provenance, the actual build ID, and the source observation window when comparing results over time.
Top comments (0)