ACTION_ID: get_employees_by_company_using_floqer_native NAME: Floqer: Find Employees at Company CATEGORY: scrape CREDITS: 0.005 Per employee found Find employees at a target company by domain or LinkedIn URL. Returns a structured array of employee records — first / last / full name, LinkedIn URL, current job title, country, and parent company identifiers — capped at the requested headcount. Optional filters narrow the results by job title, job level (seniority), and country. Floqer-native employee finder, useful when you need to fan out from a list of target accounts to per-employee outreach: combine with push_data_to_sheet to expand the structured array into individual rows on a new sheet for downstream enrichment (email, phone, LinkedIn) and outreach. INDEX: 1. Inputs 2. Outputs 3. How to configure 4. Key notes 5. Where it fits in a workflow 6. When to use 7. When not to use ================================================================================ 1. INPUTS ================================================================================ company_identifier (type: string, required) — Company Identifier Company domain or LinkedIn URL. Prefer domain or LinkedIn URL over company name — they're unique identifiers; a plain name is more likely to match the wrong company for common / generic names. number_of_employees (type: string, required) — Number Of Employees Maximum number of employees to return, sent as a string (e.g. "10"). Costs scale per employee found (0.005 credits each), so set this to the smallest number that meets your needs. job_title (type: string, optional) — Job Title Comma-separated list of job titles to filter by. Example: "Sales Representative, SEO specialist, Technical Support Engineer". Used to narrow results to employees whose title contains any of the supplied terms (see KEY NOTES for title vs job-level guidance). job_level (type: string, optional) — Job Level Multi-select filter for seniority. The value sent is a JSON array of one or more level IDs from the allowed list: "owner", "founder", "partner", "board member", "president", "c-suite", "vice president", "director", "senior manager", "manager", "senior non-managerial", "non-managerial", "junior", "advisor", "freelancer". Example value: ["c-suite", "vice president", "director"]. country_code (type: string, optional) — Country Code Multi-select filter for country, by ISO 3166-1 alpha-2 code. The value sent is a JSON array of one or more uppercase 2-letter country codes pulled from the source list at: https://storage.googleapis.com/json_document_bucket/country_code_iso_alpha2.json Example value: ["US", "CA", "GB"]. ================================================================================ 2. OUTPUTS ================================================================================ no_of_employees (type: number) — No. of Employees Number of employees actually returned (may be less than the requested `number_of_employees` if filters narrow the pool). employees (type: structured_array) — Employees Array of employees found, with one entry per person. Per-row fields: - first_name (type: string) — First Name First name of the employee. - last_name (type: string) — Last Name Last name of the employee. - full_name (type: string) — Full Name Full name of the employee. - linkedin_url (type: string) — LinkedIn URL Employee's LinkedIn profile URL. - company_name (type: string) — Company Name Current company name. - company_website (type: url) — Company Website Current company website. - company_linkedin (type: string) — Company LinkedIn Current company LinkedIn URL. - job_title (type: string) — Job Title Current job title. - country_name (type: string) — Country Name Country the employee is based in. ================================================================================ 3. HOW TO CONFIGURE ================================================================================ Configure Action body: { "inputs": { "company_identifier": "{{input.company_domain}}", "number_of_employees": "10", "job_title": "VP of Engineering, Director of Engineering", "job_level": ["vice president", "director"], "country_code": ["US", "CA"] } } Field-by-field: - company_identifier Company domain or LinkedIn URL. - number_of_employees Cap on employees returned. Cost is per employee — keep this tight. - job_title Optional comma-separated title filter. - job_level Optional JSON array of seniority IDs. - country_code Optional JSON array of ISO 3166-1 alpha-2 codes. ================================================================================ 4. KEY NOTES ================================================================================ - Filter strategy: job_title and job_level work best together. - For a *specific* employee search (you want a narrow set, e.g. "VP of Engineering"), put the specific title plus any function or seniority qualifier in job_title, AND set job_level to the matching seniority (e.g. job_title = "VP Engineering", job_level = ["vice president"]). The two filters compound and tighten the result set. - For *maximum coverage* (you want every senior person in a function), put just the function name in job_title (e.g. "engineering", "marketing", "sales") and set job_level to the seniorities you'll accept (e.g. ["c-suite", "vice president", "director"]). This catches title variants ("Director of Engineering", "VP, Engineering", "Head of Engineering") that a specific title-string filter would miss. - Cost scales per employee returned (0.005 credits each). - "No employees found" surfaces as a cell failure, not an empty result. When the job_title / job_level / country_code filters match zero employees at the target company, the cell status is `failed` with message "No employees found for this company" and the row's `row_status` flips to `has_failures`. Downstream actions still run (the chain doesn't halt — formatters that default the count with `Number(...) || 0` work fine), but the row-level status is misleading once set: even if every other cell on the row completes cleanly, `has_failures` is sticky. Treat NDF as expected signal (zero match), not an error — and read individual cell statuses, not row status, when checking whether downstream data is present. - Pair with push_data_to_sheet to fan out the structured_array into individual rows on a new sheet for per-employee enrichment (email, phone, LinkedIn) before outreach. If you're using more than one employee finder in parallel (e.g. running this action alongside get_employees_by_company_using_apollo or get_employees_by_company_using_sales_navigator on the same company to maximise coverage), merge the per-finder structured arrays into one with merge_employee_finder_structured_array first, then push the combined array to a sheet — that way you get a single deduped / unified row set on the new sheet rather than pushing each finder's output separately and ending up with duplicate rows. ================================================================================ 5. WHERE IT FITS IN A WORKFLOW ================================================================================ Pattern (account list -> per-employee outreach): start with a list of target accounts, find the right people at each, expand into rows on a new sheet, enrich each with a work email, then send to outreach. input (target company list — domain or LinkedIn URL per row) -> get_employees_by_company_using_floqer_native (returns `employees` as a structured_array of matched employees) -> push_data_to_sheet (one row per employee on a new sheet, with full_name, linkedin_url, company_name, etc. as inputs) -> person_work_email_waterfall (resolve work email per row) -> outreach. Pattern (account-level signal — count people in a function): use the No. of Employees output as a signal on the account row itself, without expanding to per-employee rows. E.g. "how many engineers does this company have?" or "do they have a head of revenue?". input (target company) -> get_employees_by_company_using_floqer_native (with job_title / job_level set to the function in question, number_of_employees set high enough to count) -> read `no_of_employees` as a per-account signal (filter / score on it) -> outreach prioritization. ================================================================================ 6. WHEN TO USE ================================================================================ Use get_employees_by_company_using_floqer_native when: - You have a list of target accounts and need to surface the right people inside each one for outreach (most common use). - You want a quick employee-count signal for a function or seniority at a target company — e.g. "how many engineers does this company have?", "do they have a head of revenue?". Filter to the relevant titles / levels and read `no_of_employees` as the answer (skip the row fan-out). - You need a Floqer-native employee finder (vs Apollo / Sales Nav variants) — this is the cheapest per-employee option. ================================================================================ 7. WHEN NOT TO USE ================================================================================ Need Apollo's employee data specifically (e.g. you already work with Apollo data and want consistency, or you need richer per-person attributes Apollo returns) -> get_employees_by_company_using_apollo (https://floqer.com/docs/action-detail/get_employees_by_company_using_apollo.txt) You specifically need Sales Navigator-sourced employee data — e.g. you trust Sales Nav's coverage / freshness for your ICP, or you want Sales Nav's view of seniority / function as the source of truth -> get_employees_by_company_using_sales_navigator (https://floqer.com/docs/action-detail/get_employees_by_company_using_sales_navigator.txt) Config is broadly similar to this action, but the data comes from Sales Nav and the cost is significantly higher per employee. Reach for Sales Nav only when the data source itself matters — otherwise this action is the cheaper default. You only need ONE specific person's contact info, not a list of employees at a company -> person_enrich_using_apollo or person_enrich_using_people_data_labs (https://floqer.com/docs/action-detail/person_enrich_using_apollo.txt) Use a person-enrich action with name + company instead of pulling the full employee list and filtering. You need a conditional / fallback search — e.g. "look for C-suite titles at this company; if there's no one at C-suite, fall back to VPs; if no VPs, fall back to Directors". This action returns a single filtered list per call and can't branch on whether the first filter found anyone -> llm_web_agents (https://floqer.com/docs/action-detail/llm_web_agents.txt) A web agent can run the conditional logic in one step ("find me the most senior person at this company in [function] — try C-suite first, then VP, then Director") and return whoever it finds. Use that instead of chaining several calls of this action with different filters. ICP is small, fragmented, or under-indexed in standard B2B databases — independent shops, family businesses, government contractors, regional service providers, anything below ~50 headcount in non-tech verticals. This action will return zero results for many such companies, which can halt the row's chain -> llm_web_agents with raw_array fan-out (https://floqer.com/docs/action-detail/llm_web_agents.txt sections 5 and 8) Use the web agent to read company websites, Companies House, news, YouTube, and other sources Floqer Native doesn't index. Apply size-tiered title logic in the prompt, return a raw_array of people, then pipe through raw_to_structured_array -> push_data_to_sheet. Reach for this action when targeting tech companies, mid-market and up, or any segment with dense LinkedIn coverage. ================================================================================ This file is maintained manually. Last updated: 2026-05-20. Full interactive reference: https://floqer.com/docs/reference Action catalog: https://floqer.com/docs/action-catalog.txt