> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# فلاتر الأشخاص + الشركة

> ادمج فلاتر مستوى الأشخاص ومستوى الشركة في استدعاء واحد لـ /people/search — نفس محرك الفلاتر المستخدم في /companies/search.

<Note>
  تقبل `POST /people/search` كل فلتر شركة تقبله `POST /companies/search`. لم تعد بحاجة إلى جلب الشركات مسبقًا، وجمع معرّفاتها، ثم تغذيتها في استعلام أشخاص ثانٍ — طلب واحد يغطي الطبقتين معًا.
</Note>

## عائلتا معاملات، نص طلب واحد

يُقسَّم نص طلب `/people/search` من الناحية المفاهيمية إلى عائلتي فلاتر. تعيشان في نفس المستوى داخل JSON، ويمكنك مزجهما بحرية.

<Tabs>
  <Tab title="مستوى الأشخاص">
    التصفية على سمات *الشخص*:

    | المعامل                | الوصف                                                     |
    | ---------------------- | --------------------------------------------------------- |
    | `people_titles`        | المسميات الوظيفية (نص حر أو slug)                         |
    | `management_levels`    | `founder`، `c_suite`، `vp`، `director`، `manager`، وغيرها |
    | `departments`          | `master_engineering`، `master_sales`، وغيرها              |
    | `department_functions` | slugs الأقسام الفرعية / الوظائف                           |
    | `people_locations`     | رموز الدول لموقع الشخص                                    |
    | `people_groups`        | معرّفات المجموعات المحفوظة                                |
    | `peoples`              | قيم `people_search_id` محددة                              |
    | `linkedin_urls`        | روابط LinkedIn للأشخاص                                    |
    | `social_media`         | مقابض التواصل الاجتماعي لكل شبكة                          |
  </Tab>

  <Tab title="مستوى الشركة">
    التصفية على سمات *الشركة* التي يعمل بها الشخص — نفس الأسماء المستخدمة في `/companies/search`، مع مجموعة صغيرة من مفاتيح المواقع ذات بادئة `company_`:

    | المعامل                     | الوصف                                              |
    | --------------------------- | -------------------------------------------------- |
    | `technologies`              | معرّفات slug للتقنيات التي تستخدمها الشركة         |
    | `categories`                | معرّفات slug للفئات                                |
    | `verticals`                 | معرّفات slug للقطاعات                              |
    | `vertical_categories`       | معرّفات slug لفئات القطاع                          |
    | `vertical_sub_categories`   | معرّفات slug للفئات الفرعية للقطاع                 |
    | `keywords`                  | كلمات مفتاحية نصية حرة تُطابَق مع وصف الشركة       |
    | `founded_dates`             | نطاق سنة التأسيس، مثل `[2015, 2023]`               |
    | `employees`                 | فئات عدد الموظفين، مثل `[[100, 500], [501, 1000]]` |
    | `revenues`                  | فئات الإيرادات بالدولار الأمريكي                   |
    | `company_locations`         | رموز الدول لمقر الشركة الرئيسي                     |
    | `company_exclude_locations` | رموز الدول المستبعدة                               |
    | `company_places`            | أسماء المدن / المناطق المراد تضمينها               |
    | `company_exclude_places`    | أسماء المدن / المناطق المراد استبعادها             |
    | `companies`                 | قيم `domain_search_id` محددة                       |
    | `domains`                   | نطاقات شركات محددة                                 |
    | `company_linkedin_urls`     | روابط LinkedIn للشركات                             |
  </Tab>
</Tabs>

<Note>
  توجد بادئة `company_` فقط على فلاتر المواقع/الأماكن لأن الأسماء المجردة `places` / `locations` مستخدمة بالفعل لعنوان *الشخص*. كل ما عدا ذلك يستخدم اسم الشركة المجرد (`technologies`، وليس `company_technologies`).
</Note>

***

## بناء استعلام في أربع خطوات

<Steps>
  <Step title="حدّد شرط الأشخاص">
    من بالضبط؟ المسمى الوظيفي، الأقدمية، القسم، الدولة. أبقِ هذه الطبقة في **المستوى الأعلى** من نص الطلب — عادةً ما تقوم شرط الشركة بعمل الدقة.
  </Step>

  <Step title="حدّد شرط الشركة">
    في أي شركات يجب أن يعملوا؟ الصناعة، الحجم، سنة التأسيس، دولة المقر الرئيسي، حزمة التقنيات. جمّع هذه ضمن كائن **`company_filters: {...}`** حتى يتضح إلى أي طبقة ينتمي كل مفتاح.
  </Step>

  <Step title="اختر AND/OR لكل فلتر عبر filter_conditions">
    لأي فلتر متعدد القيم يحتاج دقة (مثل "يستخدم *كل* هذه التقنيات")، أضف عبارة إلى `filter_conditions` *داخل* `company_filters`. القيم الافتراضية هي OR.
  </Step>

  <Step title="أرسل الطلب">
    `POST /people/search`. يُقبل كلا الأسلوبين، لكن `company_filters: {...}` أوضح للقراءة ويطابق شكل حمولة [Monitors](/ar/developer-guides/introduction).
  </Step>
</Steps>

### مثال كامل

الاستعلام: نواب رئيس الهندسة أو مدراء التقنية في شركات أمريكية متوسطة الحجم تأسست بين 2015 و2023، يعمل بها بين 100 و5000 شخص، تستخدم *كلًا* من Kubernetes وDocker، باستثناء الشركات التي يقع مقرها الرئيسي في سان فرانسيسكو.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.pubrio.com/people/search \
    -H "Content-Type: application/json" \
    -H "pubrio-api-key: YOUR_API_KEY" \
    -d '{
      "people_titles": ["VP of Engineering", "CTO"],

      "company_filters": {
        "company_locations": ["US"],
        "company_exclude_places": ["San Francisco"],
        "founded_dates": [2010, 2024],
        "employees": [[100, 500], [501, 1000], [1001, 5000]],
        "technologies": ["Kubernetes", "Docker"],
        "is_enable_similarity_search": true
      },

      "per_page": 25,
      "page": 1
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.pubrio.com/people/search",
      headers={
          "Content-Type": "application/json",
          "pubrio-api-key": "YOUR_API_KEY",
      },
      json={
          "people_titles": ["VP of Engineering", "CTO"],

          "company_filters": {
              "company_locations": ["US"],
              "company_exclude_places": ["San Francisco"],
              "founded_dates": [2010, 2024],
              "employees": [[100, 500], [501, 1000], [1001, 5000]],
              "technologies": ["Kubernetes", "Docker"],
              "is_enable_similarity_search": True,
          },

          "per_page": 25,
          "page": 1,
      },
  )
  print(response.json())
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://api.pubrio.com/people/search", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "pubrio-api-key": "YOUR_API_KEY",
    },
    body: JSON.stringify({
      people_titles: ["VP of Engineering", "CTO"],

      company_filters: {
        company_locations: ["US"],
        company_exclude_places: ["San Francisco"],
        founded_dates: [2010, 2024],
        employees: [[100, 500], [501, 1000], [1001, 5000]],
        technologies: ["Kubernetes", "Docker"],
        is_enable_similarity_search: true,
      },

      per_page: 25,
      page: 1,
    }),
  });
  console.log(await response.json());
  ```
</CodeGroup>

***

## مرجع إعادة تعيين المفاتيح

عندما يُسلِّم `/people/search` فلاتر الشركة إلى المحرك المشترك، تُعاد تسمية مفاتيح المواقع/الأماكن إلى أشكالها المجرّدة. الأسماء المجرّدة هي ما يراه المحرك فعليًا — و`filter_conditions[].key`:

| ترسل (اسم واجهة API للأشخاص)                                                                                                                      | يرى المحرك (اسم واجهة API للشركة) |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |
| `company_locations`                                                                                                                               | `locations`                       |
| `company_exclude_locations`                                                                                                                       | `exclude_locations`               |
| `company_places`                                                                                                                                  | `places`                          |
| `company_exclude_places`                                                                                                                          | `exclude_places`                  |
| `technologies`، `verticals`، `vertical_categories`، `vertical_sub_categories`، `categories`، `keywords`، `founded_dates`، `employees`، `revenues` | تمر دون تغيير                     |

لهذا السبب يستخدم `filter_conditions[].key` لمواقع مستوى الشركة الأسماء المجرّدة:

```json theme={null}
{
  "company_places": ["New York", "Boston"],
  "filter_conditions": [
    { "key": "places", "operator": "and" }
  ]
}
```

<Warning>
  `{ "key": "company_places", "operator": "and" }` يُتجاهل بصمت — المحرك لا يتعرّف على الاسم ذي البادئة. استخدم دائمًا اسم المحرك في `filter_conditions`.
</Warning>

***

## الربط خلف الكواليس

إضافة *أي* فلتر على مستوى الشركة يُحوِّل الربط بين الأشخاص والشركات من `LEFT JOIN` إلى `INNER JOIN`. يُستبعد الأشخاص الذين ليس لديهم شركة معروفة مسجَّلة من النتيجة، حتى لو طابقوا كل فلتر على مستوى الأشخاص.

<Info>
  إذا انخفض بحثك إلى صفر صفوف بمجرد إضافة `company_locations` أو `technologies`، تحقق مما إذا كانت بياناتك تحتوي على شركات مرتبطة بالأشخاص الذين تتوقعهم. يُفضِّل المحرك هنا الدقة على الشمولية — فهو لا يخترع شركات أبدًا لإرضاء الفلتر.
</Info>

سترى نفس سلوك الربط هذا منعكسًا في الاستجابة: يتضمن كل شخص مُعاد كائن `company` معبّأ كلما طُبِّق أي فلتر شركة.

***

## أنماط شائعة

<AccordionGroup>
  <Accordion title="التسويق القائم على الحسابات (ABM)" icon="bullseye">
    استهدف قائمة ثابتة من الشركات (`companies` أو `domains`)، ثم أضف فلاتر مستوى الأشخاص لإيجاد المشترين المناسبين داخل كل واحدة منها.

    ```json theme={null}
    {
      "people_titles": ["VP Marketing", "CMO"],
      "management_levels": ["vp", "c_suite"],
      "company_filters": {
        "companies": ["67c4696b-…", "f1e2d3c4-…", "0a9b8c7d-…"]
      }
    }
    ```
  </Accordion>

  <Accordion title="اكتشاف الملف الشخصي المثالي للعميل (ICP)" icon="user-plus">
    صِف شكل الشركة، وليس حسابات محددة. استخدم النطاقات والقطاعات — يُعيد المحرك الأشخاص الذين يتناسبون.

    ```json theme={null}
    {
      "people_titles": ["Head of Engineering"],
      "company_filters": {
        "verticals": [12, 47],
        "company_locations": ["US", "CA"],
        "founded_dates": [2015, 2023],
        "employees": [[51, 200], [201, 500]],
        "filter_conditions": [
          { "key": "verticals", "operator": "and" }
        ]
      }
    }
    ```
  </Accordion>

  <Accordion title="استكشاف العملاء المدفوع بالتقنية" icon="microchip">
    اعثر على المشترين في الشركات التي تُشغّل حزمة تقنية محددة. AND على `technologies` هو التجاوز النموذجي.

    ```json theme={null}
    {
      "people_titles": ["RevOps", "Sales Operations"],
      "departments": ["master_sales"],
      "company_filters": {
        "technologies": [114, 287, 452],
        "filter_conditions": [
          { "key": "technologies", "operator": "and" }
        ]
      }
    }
    ```
  </Accordion>

  <Accordion title="إزاحة المنافس" icon="arrows-rotate">
    اعثر على صانعي القرار في الشركات التي تستخدم منتج منافس (تقنية واحدة) لكن ليس منتجك (مستبعد عبر `categories` أو تمريرة فلتر منفصلة).

    ```json theme={null}
    {
      "people_titles": ["VP Sales"],
      "management_levels": ["vp"],
      "company_filters": {
        "technologies": [287]
      }
    }
    ```

    ثم أعد التشغيل باستخدام `technologies: [114]` (معرّف وسم منتجك) وقارن الفروق من جهة العميل.
  </Accordion>
</AccordionGroup>

***

## الخطوات التالية

<CardGroup cols={2}>
  <Card title="filter_conditions" icon="code-merge" href="/ar/developer-guides/filters/filter-conditions">
    مرجع كامل — كل مفتاح، وكل قيمة افتراضية، ووصفات AND/OR جاهزة للنسخ.
  </Card>

  <Card title="نظرة عامة على الفلاتر" icon="filter" href="/ar/developer-guides/filters/overview">
    النموذج الذهني وراء محرك الفلاتر الموحّد.
  </Card>

  <Card title="مرجع بحث الأشخاص" icon="user" href="/ar/api-reference/endpoint/people/search">
    مخطط الطلب/الاستجابة الكامل لـ `/people/search`.
  </Card>

  <Card title="مرجع بحث الشركات" icon="building" href="/ar/api-reference/endpoint/companies/search">
    مخطط الطلب/الاستجابة الكامل لـ `/companies/search`.
  </Card>
</CardGroup>
