# nodes

kind: Function
name: log_zoho_sync
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py::log_zoho_sync
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py
language: python
return_type: None
file_hash: 4fc28b3ca2307f0028a9a43949529833109a07ee5b231ca72af56d15fa4a99b5
extra: {}
params:
(
    session: Session,
    contact_id: int,
    action: str,
    zoho_id: str | None = None,
    details: str = "",
)


kind: Function
name: update_contact_status
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py::update_contact_status
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py
language: python
return_type: bool
file_hash: 4fc28b3ca2307f0028a9a43949529833109a07ee5b231ca72af56d15fa4a99b5
extra: {}
params:
(
    session: Session,
    name: str,
    status: str,
    company: str | None = None,
    notes: str | None = None,
)


kind: Function
name: list_contacts
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py::list_contacts
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py
language: python
return_type: dict
file_hash: 4fc28b3ca2307f0028a9a43949529833109a07ee5b231ca72af56d15fa4a99b5
extra: {}
params:
(
    session: Session,
    status: str | None = None,
    source_profile: str | None = None,
    company: str | None = None,
    search: str | None = None,
    sort_by: str = "latest_interaction",
    sort_dir: str = "desc",
    page: int = 1,
    per_page: int = 50,
    date_from: date | None = None,
    date_to: date | None = None,
)


kind: Function
name: get_review_contacts_with_suggestions
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py
language: python
params: (session: Session)
return_type: list[dict]
file_hash: 4fc28b3ca2307f0028a9a43949529833109a07ee5b231ca72af56d15fa4a99b5
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py::get_review_contacts_with_suggestions


kind: Function
name: list_companies
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py::list_companies
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_db.py
language: python
return_type: dict
file_hash: 4fc28b3ca2307f0028a9a43949529833109a07ee5b231ca72af56d15fa4a99b5
extra: {}
params:
(
    session: Session,
    tier: str | None = None,
    search: str | None = None,
    sort_by: str = "company",
    sort_dir: str = "asc",
    page: int = 1,
    per_page: int = 50,
    date_from: date | None = None,
    date_to: date | None = None,
)


kind: Function
name: _load_additional_sitehub_employees
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: ()
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_load_additional_sitehub_employees


kind: Function
name: show_learned_patterns_summary
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: ()
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::show_learned_patterns_summary


kind: Function
name: bootstrap_learning_from_existing
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (tracker_path: str | Path | None = None, verbose: bool = True)
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::bootstrap_learning_from_existing


kind: Function
name: _is_preposition_based_extraction
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (title: str, extracted: str)
return_type: bool
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_is_preposition_based_extraction


kind: Function
name: _extract_company_from_suffix_match
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (title: str)
return_type: str | None
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_extract_company_from_suffix_match


kind: Function
name: _extract_company_first_segment
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (title: str)
return_type: str | None
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_extract_company_first_segment


kind: Function
name: brave_lookup_company
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::brave_lookup_company
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: str | None
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    name: str,
    title: str = "",
    *,
    api_key: str | None = None,
    verbose: bool = True,
)


kind: Function
name: _extract_potential_company_candidates
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (title: str)
return_type: list[str]
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_extract_potential_company_candidates


kind: Function
name: enrich_missing_companies
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::enrich_missing_companies
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: tuple[int, int, int, int]
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    contacts: list[dict],
    *,
    ref: dict | None = None,
    use_web: bool = False,
    use_cvr: bool = False,
    verbose: bool = True,
    new_contacts_only: set[str] | None = None,
)


kind: Function
name: _load_tracker_companies_cache
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
params: (tracker_path: Path | None = None)
return_type: None
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_load_tracker_companies_cache


kind: Function
name: _analyze_suggestions
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_analyze_suggestions
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    contacts: list[dict],
    ref: dict,
    min_occurrences: int = 3,
    verbose: bool = True,
)


kind: Function
name: backfill_source_profile
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::backfill_source_profile
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: int
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    tracker_path: str | Path | None = None,
    source_name: str = "",
    verbose: bool = True,
)


kind: Function
name: _process_contacts_from_interactions
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: tuple[list[dict], set[str], dict, dict, int, int, int, int, dict]
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_process_contacts_from_interactions

params:
(
    all_interactions: list[dict],
    existing_contacts: list[dict],
    ref: dict,
    use_web: bool = False,
    use_cvr: bool = False,
    verbose: bool = True,
    new_interactions_count: int = 0,
)


kind: Function
name: _print_batch_summary
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::_print_batch_summary
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    new_count: int,
    new_contact_keys: set[str],
    new_status_counts: dict,
    contacts_list: list[dict],
    verbose: bool = True,
)


kind: Function
name: update_tracker
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::update_tracker
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    tracker_path: str | Path | None = None,
    reference_path: str | Path | None = None,
    new_interactions: list[dict] | None = None,
    use_web: bool = False,
    use_cvr: bool = False,
    verbose: bool = True,
)


kind: Function
name: generate_report
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::generate_report
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    tracker_path: str | Path | None = None,
    verbose: bool = True,
    write_to_sheet: bool = False,
)


kind: Function
name: analyze_classifications
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::analyze_classifications
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    tracker_path: str | Path | None = None,
    reference_path: str | Path | None = None,
    verbose: bool = True,
)


kind: Function
name: process_new_data
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::process_new_data
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
params:
(
    raw_text: str,
    tracker_path: str | Path | None = None,
    reference_path: str | Path | None = None,
    use_web: bool = False,
    use_cvr: bool = False,
    minimal_mode: bool = False,
)


kind: Function
name: import_manual_classifications
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py
language: python
return_type: dict
file_hash: c75a0eb4f54d05082211d4fccdd79e6b4f636ce265c854958f7e1ffd14b56764
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/icp_process.py::import_manual_classifications

params:
(
    source_path: str | Path,
    tracker_path: str | Path | None = None,
    verbose: bool = True,
)


kind: Function
name: register_blueprints
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/routes/__init__.py
language: python
params: (app: Flask)
file_hash: 29a71bbd0cedbfa6371d3b87595e317f6f87938fb53e76dbea6ae696ba6a2153
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/routes/__init__.py::register_blueprints


kind: Function
name: _extract_date_params
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/routes/dashboard.py
language: python
params: ()
file_hash: 91b6a0ac749ca652970e8b90bc87626e2589548f2f584259763539ec2ea9a2d2
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/routes/dashboard.py::_extract_date_params


kind: Function
name: renderStatusDoughnut
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/static/charts.js
language: javascript
params: (d)
file_hash: 138f1f8eced4f528bd222303a996c0c18c5707c843a90e5feaeb294903d9b223
extra: {}
qualified_name:
/tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/webapp/static/charts.js::renderStatusDoughnut


kind: Function
name: _api_request
qualified_name: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/zoho_client.py::_api_request
file_path: /tmp/core-sandbox/93a52038-45b6-4c0b-b3cf-8d2d742c26e0/zoho_client.py
language: python
return_type: dict
file_hash: dfa0f862ee639d480da7476a688dc37b55bd792c16601e3f3b9a09b59847384a
extra: {}
params:
(method: str, path: str, json_body: dict | None = None,
                 params: dict | None = None, _retry: bool = True)


