dhisana 0.0.1.dev245__tar.gz → 0.0.1.dev247__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.
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/PKG-INFO +1 -1
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/setup.py +1 -1
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/schemas/sales.py +1 -7
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/apollo_tools.py +49 -39
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/PKG-INFO +1 -1
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/README.md +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/pyproject.toml +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/setup.cfg +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/cli/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/cli/cli.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/cli/datasets.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/cli/models.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/cli/predictions.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/schemas/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/schemas/common.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/ui/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/ui/components.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/add_mapping.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/agent_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/assistant_tool_tag.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/built_with_api_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/cache_output_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/cache_output_tools_local.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/check_email_validity_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/check_for_intent_signal.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/check_linkedin_url_validity.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/clay_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/clean_properties.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/company_utils.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/compose_salesnav_query.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/compose_search_query.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/compose_three_step_workflow.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/composite_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/dataframe_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/domain_parser.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/email_body_utils.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/email_parse_helpers.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/email_provider.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/enrich_lead_information.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/extract_email_content_for_llm.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/fetch_openai_config.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/field_validators.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/g2_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_content.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_custom_message.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_email.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_email_response.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_flow.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_leads_salesnav.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_linkedin_connect_message.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_linkedin_response_message.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_structured_output_internal.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/google_custom_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/google_oauth_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/google_workspace_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/hubspot_clearbit.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/hubspot_crm_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/instantly_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/linkedin_crawler.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/lusha_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/mailgun_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/mailreach_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/microsoft365_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openai_assistant_and_file_utils.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openai_helpers.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_spec_to_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_tool/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_tool/api_models.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_tool/convert_openai_spec_to_tool.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_tool/openapi_tool.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/parse_linkedin_messages_txt.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/profile.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/proxy_curl_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/proxycurl_search_leads.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/python_function_to_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/research_lead.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/sales_navigator_crawler.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/salesforce_crm_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/search_router.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/search_router_jobs.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/sendgrid_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serarch_router_local_business.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_additional_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_google_jobs.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_google_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_local_business_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_search_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serperdev_google_jobs.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serperdev_local_business.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serperdev_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/smtp_email_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/test_connect.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/trasform_json.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/web_download_parse_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/workflow_code_model.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/zoominfo_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/workflow/__init__.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/workflow/agent.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/workflow/flow.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/workflow/task.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/workflow/test.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/SOURCES.txt +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/dependency_links.txt +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/entry_points.txt +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/requires.txt +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana.egg-info/top_level.txt +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_agent_tools.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_apollo_company_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_apollo_lead_search.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_connectivity.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_email_body_utils.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_google_document.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_hubspot_call_logs.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_linkedin_serper.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_mailreach.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_mcp_connectivity.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_proxycurl_get_company_search_id.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_proxycurl_job_count.py +0 -0
- {dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/tests/test_structured_output_with_mcp.py +0 -0
|
@@ -754,13 +754,7 @@ class LeadsQueryFilters(BaseModel):
|
|
|
754
754
|
# CHANGED: Renamed to be more descriptive
|
|
755
755
|
company_domains: Optional[List[str]] = Field(
|
|
756
756
|
default=None,
|
|
757
|
-
description="Domains of the person's employer (e.g., ['microsoft.com']). Maps to
|
|
758
|
-
)
|
|
759
|
-
|
|
760
|
-
# NEW: Exclude specific company domains from search results
|
|
761
|
-
exclude_company_domains: Optional[List[str]] = Field(
|
|
762
|
-
default=None,
|
|
763
|
-
description="Domains of companies to exclude from results (e.g., ['competitor.com']). Maps to organization_not_domains."
|
|
757
|
+
description="Domains of the person's employer (e.g., ['apollo.io', 'microsoft.com']). Maps to q_organization_domains_list in Apollo API. Accepts up to 1,000 domains. Do not include www. or @ symbol."
|
|
764
758
|
)
|
|
765
759
|
|
|
766
760
|
# CHANGED: Renamed to be more descriptive
|
|
@@ -549,8 +549,7 @@ async def search_leads_with_apollo(
|
|
|
549
549
|
"currentlyUsingAnyOfTechnologyUids": "currently_using_any_of_technology_uids",
|
|
550
550
|
"organizationIndustryTagIds": "organization_industry_tag_ids",
|
|
551
551
|
"notOrganizationIds": "not_organization_ids",
|
|
552
|
-
"
|
|
553
|
-
"organizationNotDomains": "organization_not_domains",
|
|
552
|
+
"qOrganizationDomainsList": "q_organization_domains_list",
|
|
554
553
|
}
|
|
555
554
|
|
|
556
555
|
for raw_key, raw_value_list in query_params.items():
|
|
@@ -608,8 +607,7 @@ async def search_leads_with_apollo(
|
|
|
608
607
|
"person_titles",
|
|
609
608
|
"person_seniorities",
|
|
610
609
|
"organization_locations",
|
|
611
|
-
"
|
|
612
|
-
"organization_not_domains",
|
|
610
|
+
"q_organization_domains_list",
|
|
613
611
|
"contact_email_status",
|
|
614
612
|
"organization_ids",
|
|
615
613
|
"organization_num_employees_ranges",
|
|
@@ -634,17 +632,28 @@ async def search_leads_with_apollo(
|
|
|
634
632
|
# -----------------------------------
|
|
635
633
|
else:
|
|
636
634
|
dynamic_payload = {
|
|
637
|
-
"person_titles": query.person_current_titles or [],
|
|
638
|
-
"person_locations": query.person_locations or [],
|
|
639
|
-
"search_signal_ids": query.filter_by_signals or [],
|
|
640
|
-
"q_keywords": query.search_keywords or "",
|
|
641
|
-
"organization_num_employees_ranges": (
|
|
642
|
-
query.organization_num_employees_ranges
|
|
643
|
-
or [f"{query.min_employees_in_organization or 1},{query.max_employees_in_organization or 1000}"]
|
|
644
|
-
),
|
|
645
635
|
"page": 1,
|
|
646
636
|
"per_page": min(max_items, 100),
|
|
647
637
|
}
|
|
638
|
+
|
|
639
|
+
# Only add fields if they have values (don't pass empty defaults)
|
|
640
|
+
if query.person_current_titles:
|
|
641
|
+
dynamic_payload["person_titles"] = query.person_current_titles
|
|
642
|
+
if query.person_locations:
|
|
643
|
+
dynamic_payload["person_locations"] = query.person_locations
|
|
644
|
+
if query.filter_by_signals:
|
|
645
|
+
dynamic_payload["search_signal_ids"] = query.filter_by_signals
|
|
646
|
+
if query.search_keywords:
|
|
647
|
+
dynamic_payload["q_keywords"] = query.search_keywords
|
|
648
|
+
|
|
649
|
+
# Only add employee ranges if explicitly provided
|
|
650
|
+
if query.organization_num_employees_ranges:
|
|
651
|
+
dynamic_payload["organization_num_employees_ranges"] = query.organization_num_employees_ranges
|
|
652
|
+
elif query.min_employees_in_organization is not None or query.max_employees_in_organization is not None:
|
|
653
|
+
min_emp = query.min_employees_in_organization or 1
|
|
654
|
+
max_emp = query.max_employees_in_organization or 1000000
|
|
655
|
+
dynamic_payload["organization_num_employees_ranges"] = [f"{min_emp},{max_emp}"]
|
|
656
|
+
|
|
648
657
|
if query.job_openings_with_titles:
|
|
649
658
|
dynamic_payload["q_organization_job_titles"] = query.job_openings_with_titles
|
|
650
659
|
if query.latest_funding_stages:
|
|
@@ -657,10 +666,7 @@ async def search_leads_with_apollo(
|
|
|
657
666
|
dynamic_payload["person_seniorities"] = query.person_seniorities
|
|
658
667
|
# Add company domains to include in search
|
|
659
668
|
if query.company_domains:
|
|
660
|
-
dynamic_payload["
|
|
661
|
-
# Add company domains to exclude from search
|
|
662
|
-
if query.exclude_company_domains:
|
|
663
|
-
dynamic_payload["organization_not_domains"] = query.exclude_company_domains
|
|
669
|
+
dynamic_payload["q_organization_domains_list"] = query.company_domains
|
|
664
670
|
|
|
665
671
|
# -----------------------------
|
|
666
672
|
# C) Fetch multiple pages
|
|
@@ -778,8 +784,7 @@ async def search_leads_with_apollo_page(
|
|
|
778
784
|
"currentlyUsingAnyOfTechnologyUids": "currently_using_any_of_technology_uids",
|
|
779
785
|
"organizationIndustryTagIds": "organization_industry_tag_ids",
|
|
780
786
|
"notOrganizationIds": "not_organization_ids",
|
|
781
|
-
"
|
|
782
|
-
"organizationNotDomains": "organization_not_domains",
|
|
787
|
+
"qOrganizationDomainsList": "q_organization_domains_list",
|
|
783
788
|
}
|
|
784
789
|
|
|
785
790
|
for raw_key, raw_value_list in query_params.items():
|
|
@@ -822,8 +827,7 @@ async def search_leads_with_apollo_page(
|
|
|
822
827
|
"person_titles",
|
|
823
828
|
"person_seniorities",
|
|
824
829
|
"organization_locations",
|
|
825
|
-
"
|
|
826
|
-
"organization_not_domains",
|
|
830
|
+
"q_organization_domains_list",
|
|
827
831
|
"contact_email_status",
|
|
828
832
|
"organization_ids",
|
|
829
833
|
"organization_num_employees_ranges",
|
|
@@ -843,16 +847,26 @@ async def search_leads_with_apollo_page(
|
|
|
843
847
|
# B) No example_url -> build from `query`
|
|
844
848
|
# -----------------------------------
|
|
845
849
|
else:
|
|
846
|
-
dynamic_payload = {
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
"
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
850
|
+
dynamic_payload = {}
|
|
851
|
+
|
|
852
|
+
# Only add fields if they have values (don't pass empty defaults)
|
|
853
|
+
if query.person_current_titles:
|
|
854
|
+
dynamic_payload["person_titles"] = query.person_current_titles
|
|
855
|
+
if query.person_locations:
|
|
856
|
+
dynamic_payload["person_locations"] = query.person_locations
|
|
857
|
+
if query.filter_by_signals:
|
|
858
|
+
dynamic_payload["search_signal_ids"] = query.filter_by_signals
|
|
859
|
+
if query.search_keywords:
|
|
860
|
+
dynamic_payload["q_keywords"] = query.search_keywords
|
|
861
|
+
|
|
862
|
+
# Only add employee ranges if explicitly provided
|
|
863
|
+
if query.organization_num_employees_ranges:
|
|
864
|
+
dynamic_payload["organization_num_employees_ranges"] = query.organization_num_employees_ranges
|
|
865
|
+
elif query.min_employees_in_organization is not None or query.max_employees_in_organization is not None:
|
|
866
|
+
min_emp = query.min_employees_in_organization or 1
|
|
867
|
+
max_emp = query.max_employees_in_organization or 1000000
|
|
868
|
+
dynamic_payload["organization_num_employees_ranges"] = [f"{min_emp},{max_emp}"]
|
|
869
|
+
|
|
856
870
|
if query.job_openings_with_titles:
|
|
857
871
|
dynamic_payload["q_organization_job_titles"] = query.job_openings_with_titles
|
|
858
872
|
if query.latest_funding_stages:
|
|
@@ -867,13 +881,9 @@ async def search_leads_with_apollo_page(
|
|
|
867
881
|
if query.q_not_organization_keyword_tags:
|
|
868
882
|
dynamic_payload["q_not_organization_keyword_tags"] = query.q_not_organization_keyword_tags
|
|
869
883
|
|
|
870
|
-
# Add company domains to include in search
|
|
884
|
+
# Add company domains to include in search (Apollo API: q_organization_domains_list[])
|
|
871
885
|
if query.company_domains:
|
|
872
|
-
dynamic_payload["
|
|
873
|
-
|
|
874
|
-
# Add company domains to exclude from search
|
|
875
|
-
if query.exclude_company_domains:
|
|
876
|
-
dynamic_payload["organization_not_domains"] = query.exclude_company_domains
|
|
886
|
+
dynamic_payload["q_organization_domains_list"] = query.company_domains
|
|
877
887
|
|
|
878
888
|
page_payload = dict(dynamic_payload)
|
|
879
889
|
page_payload["page"] = page
|
|
@@ -1390,7 +1400,7 @@ async def search_companies_with_apollo_page(
|
|
|
1390
1400
|
"organizationIndustries": "organization_industries",
|
|
1391
1401
|
"organizationIndustryTagIds": "organization_industry_tag_ids",
|
|
1392
1402
|
"qKeywords": "q_keywords",
|
|
1393
|
-
"
|
|
1403
|
+
"qOrganizationDomainsList": "q_organization_domains_list",
|
|
1394
1404
|
"sortAscending": "sort_ascending",
|
|
1395
1405
|
"sortByField": "sort_by_field",
|
|
1396
1406
|
"organizationLatestFundingStageCd": "organization_latest_funding_stage_cd",
|
|
@@ -1454,7 +1464,7 @@ async def search_companies_with_apollo_page(
|
|
|
1454
1464
|
"organization_locations",
|
|
1455
1465
|
"organization_industries",
|
|
1456
1466
|
"organization_industry_tag_ids",
|
|
1457
|
-
"
|
|
1467
|
+
"q_organization_domains_list",
|
|
1458
1468
|
"q_organization_keyword_tags",
|
|
1459
1469
|
"organization_ids",
|
|
1460
1470
|
"not_organization_ids",
|
|
@@ -1509,7 +1519,7 @@ async def search_companies_with_apollo_page(
|
|
|
1509
1519
|
dynamic_payload["q_not_organization_keyword_tags"] = query.q_not_organization_keyword_tags
|
|
1510
1520
|
|
|
1511
1521
|
if query.q_organization_domains:
|
|
1512
|
-
dynamic_payload["
|
|
1522
|
+
dynamic_payload["q_organization_domains_list"] = query.q_organization_domains
|
|
1513
1523
|
if query.revenue_range_min is not None:
|
|
1514
1524
|
dynamic_payload["revenue_range_min"] = query.revenue_range_min
|
|
1515
1525
|
if query.revenue_range_max is not None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/check_email_validity_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/check_linkedin_url_validity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/compose_three_step_workflow.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/extract_email_content_for_llm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/generate_linkedin_connect_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openai_assistant_and_file_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/openapi_tool/openapi_tool.py
RENAMED
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/parse_linkedin_messages_txt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serarch_router_local_business.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dhisana-0.0.1.dev245 → dhisana-0.0.1.dev247}/src/dhisana/utils/serpapi_local_business_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|