Fiber AI - People & Company Intelligence

People, company, investor, and job search with LinkedIn data enrichment

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/lead-generation/capabilities/people-company-search-fiber#main ~/.claude/skills/people-company-search-fiber

For one project only, change the path to .claude/skills/people-company-search-fiber.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text366 lines
people-company-search-fiber/SKILL.md366 lines19.1 KBpushed 96d agoRawView on GitHub

Fiber AI - People & Company Intelligence

Cost Reference

Endpoint Cost Notes
/v1/natural-language-search/profiles $0.02/record (pageSize × $0.02) Default $0.50 if no pageSize
/v1/people-search $0.02/record (pageSize × $0.02) Default $0.50 if no pageSize
/v1/natural-language-search/companies Varies
/v1/kitchen-sink/person Varies Single lookup
/v1/validate-email/single ~$0.02

Cheaper alternative for people search: Apollo mixed_people/search costs $0.01 flat per call regardless of result count. Use $GOOSEWORKS_API_BASE/v1/proxy/apollo/mixed_people/search when possible.

Tip: Use the dedicated proxy route $GOOSEWORKS_API_BASE/v1/proxy/fiber/... instead of the generic orthogonal proxy for cleaner billing tracking.

Setup

Read your credentials from ~/.gooseworks/credentials.json:

export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")

If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login

All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"

Comprehensive search and enrichment for people, companies, investors, and jobs.

Capabilities

  • Search profiles from text: Takes free-form text (e
  • Search companies from text: Takes free-form text (e
  • Find person by email: Do a reverse lookup: given an email address, find someone's LinkedIn profile and personal details
  • Live fetch LinkedIn profile: Returns an enriched profile with details for a given LinkedIn profile identifier
  • Validate a single email: Checks if a given email is likely to bounce using a waterfall of strategies
  • Kitchen sink person lookup: Search for a person using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information
  • Kitchen sink company lookup: Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc
  • Investor search: Search for investors with flexible filtering capabilities
  • Fetch LinkedIn profile posts: Fetches recent posts from a LinkedIn profile
  • Live fetch LinkedIn company: Returns an enriched company with details for a given LinkedIn company identifier
  • People search: Search for people using filters
  • Fetch LinkedIn post comments: Fetches paginated comments for a LinkedIn post
  • Company search: Search for companies using filters
  • Convert text into company search filters: Takes free-form text (e
  • Convert text into profile search filters: Takes free-form text (e
  • Job postings search: Search for job postings with flexible filtering capabilities
  • Fetch LinkedIn post reactions: Fetches paginated reactions of a specific type for a LinkedIn post

Usage

Search profiles from text

Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles.

Parameters:

  • query* (string)
  • pageSize (integer) - The number of profiles to return, if you need to get more results, you can paginate.
  • getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
  • getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
  • cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/natural-language-search/profiles","body":{"query":"Software engineers in San Francisco with 5+ years experience"}}'

Search companies from text

Takes free-form text (e.g., 'Series A startups in USA with 50–200 employees') and returns a list of matching companies.

Parameters:

  • query* (string)
  • pageSize (integer) - The number of companies to return, if you need to get more results, you can paginate.
  • cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/natural-language-search/companies","body":{"query":"Series A startups in fintech with 50-200 employees"}}'

Find person by email

Do a reverse lookup: given an email address, find someone's LinkedIn profile and personal details. Note: if you also have the person's name, company, etc., you'll get better results with the Kitchen Sink endpoint, where you can pass all the information you have.

Parameters:

  • email* (string) - The person's email address for which you want to do a reverse lookup
  • num_profiles (['number', 'null']) - Number of profiles to return. Maximum 10 profiles can be returned for given query. The returned profiles will be sorted by best match first.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/email-to-person/single","body":{"email":"[email protected]"}}'

Live fetch LinkedIn profile

Returns an enriched profile with details for a given LinkedIn profile identifier

Parameters:

  • identifier* (string) - Identifier can be a profile's LinkedIn slug (e.g. 'williamhgates' from <linkedin.com/in/williamhgates>), a Sales Navigator URN (e.g. 'ACwAAA.....'), or a full LinkedIn URL (e.g. 'https://www.linkedin.com/in/williamhgates/')
  • getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
  • getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile/single","body":{"identifier":"https://linkedin.com/in/johndoe"}}'

Validate a single email

Checks if a given email is likely to bounce using a waterfall of strategies. Works for catch-all email addresses, which are increasingly common yet hard for other APIs to validate.

Parameters:

  • email* (string) - The email to validate
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/validate-email/single","body":{"email":"[email protected]"}}'

Kitchen sink person lookup

Search for a person using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information. Returns profile data for the person if found.

Parameters:

  • profileIdentifier (string) - If provided and correct, we would always be able to find the profile. You do not need to pass in any other info if you pass this.
  • emailAddress (['string', 'null']) - The email address of the person to search for
  • personName (['object', 'null'])
  • jobTitle (['object', 'null'])
  • companyIdentifier (string) - The company the profile is currently working at. If provided the accuracy of the lookup increases. You do not need to pass in any other company parameters if you pass this.
  • companyName (['object', 'null'])
  • companyDomain (['object', 'null'])
  • numProfiles (integer) - The maximum number of profiles you want to fetch. Profiles are sorted by best match first.
  • liveFetch (['boolean', 'null']) - Whether to fetch the freshest copy of the found profiles's LinkedIn data (costs extra). If omitted or set to false, we'll give the cached data present in our database. The boolean flag is deprecated and will be removed in future. Please use the object instead.
  • forceCompanyMatch (['boolean', 'null']) - Whether to strictly match the company. If true, we will strictly lookup prospects which belong to given company details.
  • fuzzySearch (['boolean', 'null']) - Whether to use fuzzy search on names, job titles and other parameters. This is good if you are not sure about the exact name or job title.
  • getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
  • getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/kitchen-sink/person","body":{"linkedin_url":"https://linkedin.com/in/johndoe"}}'

Kitchen sink company lookup

Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc. Returns complete company data if found.

Parameters:

  • companyIdentifier (string) - A unique identifier for the company. Accepts one of: linkedinSlug, linkedinUrl, or linkedinOrgID. Providing this increases the accuracy and speed of the lookup. If this is provided, you do not need to supply companyName or companyDomain.
  • companyName (['object', 'null'])
  • companyDomain (['object', 'null'])
  • numCompanies (integer) - The number of companies you want to fetch. Companies are sorted by best match first.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/kitchen-sink/company","body":{"domain":"openai.com"}}'

Investor search

Search for investors with flexible filtering capabilities

Parameters:

  • searchParams* (object) - Investor search filter parameters
  • pageSize (integer) - Number of investors to return per page (max 1000)
  • cursor (['string', 'null']) - Pagination cursor returned from a previous search response. Use this to fetch the next page of results. Null for the first page.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/investor-search"}'
  "searchParams": {
    "investment_stages": ["Seed", "Series A"],
    "industries": ["AI", "SaaS"]
  }
}'

Fetch LinkedIn profile posts

Fetches recent posts from a LinkedIn profile. Returns a paginated feed of posts with optional cursor for pagination. Each page returns up to 50 posts.

Parameters:

  • identifier* (string) - Identifier can be a profile's LinkedIn slug (e.g. 'williamhgates' from <linkedin.com/in/williamhgates>), a Sales Navigator URN (e.g. 'ACwAAA.....'), or a full LinkedIn URL (e.g. 'https://www.linkedin.com/in/williamhgates/')
  • cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile-posts","body":{"identifier":"https://linkedin.com/in/johndoe"}}'

Live fetch LinkedIn company

Returns an enriched company with details for a given LinkedIn company identifier

Parameters:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/company/single","body":{"identifier":"https://linkedin.com/company/openai"}}'

People search

Search for people using filters

Parameters:

  • searchParams (object) - Search parameters for people search.
  • pageSize (integer) - The number of profiles to return, if you need to get more results, you can paginate.
  • cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
  • currentCompanies (['array', 'null']) - Filter people by the companies they are currently working for. If you want to search over many companies, we suggest using the Combined Search API, which is optimized for this use case.
  • prospectExclusionListIDs (['array', 'null']) - Filter out people which belong to the given prospect exclusion lists
  • companyExclusionListIDs (['array', 'null']) - Filter out people who work at companies which belong to the given company exclusion lists
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/people-search"}'
  "searchParams": {
    "job_titles": ["CTO", "VP Engineering"],
    "locations": ["San Francisco", "New York"]
  }
}'

Fetch LinkedIn post comments

Fetches paginated comments for a LinkedIn post. Each page contains up to 10 comments.

Parameters:

  • contentId* (string) - You can get LinkedIn posts from the Profile or Company Posts endpoints. (e.g., 'urn:li:activity:7123456789012345678' or 'urn:li:ugcPost:7391650829398675456')
  • cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/post-comments","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'

Company search

Search for companies using filters

Parameters:

  • searchParams* (object) - Search parameters for company search API.
  • pageSize (integer) - The number of companies to return, if you need to get more results, you can paginate.
  • cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
  • companyExclusionListIDs (['array', 'null']) - Filter out companies which belong to the given company exclusion lists. You can create company exclusion lists via /v1/exclusions/companies/create-list
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/company-search"}'
  "searchParams": {
    "industries": ["Software", "AI"],
    "employee_count_min": 50,
    "employee_count_max": 500
  }
}'

Convert text into company search filters

Takes free-form text (e.g., 'Series A startups in USA with 50–200 employees') and converts it into a structured set of filters for company search.

Parameters:

  • query* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/text-to-search-params/companies","body":{"query":"AI startups in healthcare"}}'

Convert text into profile search filters

Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and converts it into a structured set of filters for profile search.

Parameters:

  • query* (string)
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/text-to-search-params/profiles","body":{"query":"Senior engineers at FAANG companies"}}'

Job postings search

Search for job postings with flexible filtering capabilities

Parameters:

  • searchParams* (object) - Job search filter parameters
  • pageSize (integer) - Number of jobs to return per page (max 1000)
  • cursor (['string', 'null']) - Pagination cursor for fetching next page of results
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/job-search"}'
  "searchParams": {
    "job_titles": ["Software Engineer"],
    "locations": ["Remote"]
  }
}'

Fetch LinkedIn post reactions

Fetches paginated reactions of a specific type for a LinkedIn post. Each page contains up to 10 reactions.

Parameters:

  • contentId* (string) - You can get LinkedIn posts from the Profile or Company Posts endpoints. (e.g., 'urn:li:activity:7123456789012345678' or 'urn:li:ugcPost:7391650829398675456')
  • reactionType (['string', 'null']) - Type of reaction to fetch. If null, all reactions will be fetched.
  • cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/post-reactions","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'

Use Cases

  1. Recruiting: Find candidates matching specific criteria
  2. Sales Prospecting: Build targeted lead lists
  3. Fundraising: Research investors in your space
  4. Competitive Intel: Track companies and their employees
  5. Job Search: Find relevant job opportunities

Discover More

For full endpoint details and parameters:

curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"fiber API endpoints"}' List all endpoints
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
  -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}'   # Get endpoint details
1---
2name: people-company-search-fiber
3description: People, company, investor, and job search with LinkedIn data enrichment
4source: orthogonal
5---
6 
7 
8# Fiber AI - People & Company Intelligence
9 
10## Cost Reference
11 
12| Endpoint | Cost | Notes |
13|----------|------|-------|
14| `/v1/natural-language-search/profiles` | **$0.02/record** (pageSize × $0.02) | Default $0.50 if no pageSize |
15| `/v1/people-search` | **$0.02/record** (pageSize × $0.02) | Default $0.50 if no pageSize |
16| `/v1/natural-language-search/companies` | Varies | |
17| `/v1/kitchen-sink/person` | Varies | Single lookup |
18| `/v1/validate-email/single` | ~$0.02 | |
19 
20**Cheaper alternative for people search:** Apollo `mixed_people/search` costs **$0.01 flat** per call regardless of result count. Use `$GOOSEWORKS_API_BASE/v1/proxy/apollo/mixed_people/search` when possible.
21 
22**Tip:** Use the dedicated proxy route `$GOOSEWORKS_API_BASE/v1/proxy/fiber/...` instead of the generic orthogonal proxy for cleaner billing tracking.
23 
24## Setup
25 
26Read your credentials from ~/.gooseworks/credentials.json:
27```bash
28export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
29export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
30```
31 
32If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`
33 
34All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"`
35 
36 
37Comprehensive search and enrichment for people, companies, investors, and jobs.
38 
39## Capabilities
40 
41- **Search profiles from text**: Takes free-form text (e
42- **Search companies from text**: Takes free-form text (e
43- **Find person by email**: Do a reverse lookup: given an email address, find someone's LinkedIn profile and personal details
44- **Live fetch LinkedIn profile**: Returns an enriched profile with details for a given LinkedIn profile identifier
45- **Validate a single email**: Checks if a given email is likely to bounce using a waterfall of strategies
46- **Kitchen sink person lookup**: Search for a person using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information
47- **Kitchen sink company lookup**: Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc
48- **Investor search**: Search for investors with flexible filtering capabilities
49- **Fetch LinkedIn profile posts**: Fetches recent posts from a LinkedIn profile
50- **Live fetch LinkedIn company**: Returns an enriched company with details for a given LinkedIn company identifier
51- **People search**: Search for people using filters
52- **Fetch LinkedIn post comments**: Fetches paginated comments for a LinkedIn post
53- **Company search**: Search for companies using filters
54- **Convert text into company search filters**: Takes free-form text (e
55- **Convert text into profile search filters**: Takes free-form text (e
56- **Job postings search**: Search for job postings with flexible filtering capabilities
57- **Fetch LinkedIn post reactions**: Fetches paginated reactions of a specific type for a LinkedIn post
58 
59## Usage
60 
61### Search profiles from text
62Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles.
63 
64Parameters:
65- query* (string)
66- pageSize (integer) - The number of profiles to return, if you need to get more results, you can paginate.
67- getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
68- getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
69- cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
70 
71```bash
72curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
73 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
74 -H "Content-Type: application/json" \
75 -d '{"api":"fiber","path":"/v1/natural-language-search/profiles","body":{"query":"Software engineers in San Francisco with 5+ years experience"}}'
76```
77 
78### Search companies from text
79Takes free-form text (e.g., 'Series A startups in USA with 50–200 employees') and returns a list of matching companies.
80 
81Parameters:
82- query* (string)
83- pageSize (integer) - The number of companies to return, if you need to get more results, you can paginate.
84- cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
85 
86```bash
87curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
88 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
89 -H "Content-Type: application/json" \
90 -d '{"api":"fiber","path":"/v1/natural-language-search/companies","body":{"query":"Series A startups in fintech with 50-200 employees"}}'
91```
92 
93### Find person by email
94Do a reverse lookup: given an email address, find someone's LinkedIn profile and personal details. Note: if you also have the person's name, company, etc., you'll get better results with the Kitchen Sink endpoint, where you can pass all the information you have.
95 
96Parameters:
97- email* (string) - The person's email address for which you want to do a reverse lookup
98- num_profiles (['number', 'null']) - Number of profiles to return. Maximum 10 profiles can be returned for given query. The returned profiles will be sorted by best match first.
99 
100```bash
101curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
102 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
103 -H "Content-Type: application/json" \
104 -d '{"api":"fiber","path":"/v1/email-to-person/single","body":{"email":"[email protected]"}}'
105```
106 
107### Live fetch LinkedIn profile
108Returns an enriched profile with details for a given LinkedIn profile identifier
109 
110Parameters:
111- identifier* (string) - Identifier can be a profile's LinkedIn slug (e.g. 'williamhgates' from <linkedin.com/in/williamhgates>), a Sales Navigator URN (e.g. 'ACwAAA.....'), or a full LinkedIn URL (e.g. 'https://www.linkedin.com/in/williamhgates/')
112- getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
113- getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
114 
115```bash
116curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
117 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
118 -H "Content-Type: application/json" \
119 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile/single","body":{"identifier":"https://linkedin.com/in/johndoe"}}'
120```
121 
122### Validate a single email
123Checks if a given email is likely to bounce using a waterfall of strategies. Works for catch-all email addresses, which are increasingly common yet hard for other APIs to validate.
124 
125Parameters:
126- email* (string) - The email to validate
127 
128```bash
129curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
130 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
131 -H "Content-Type: application/json" \
132 -d '{"api":"fiber","path":"/v1/validate-email/single","body":{"email":"[email protected]"}}'
133```
134 
135### Kitchen sink person lookup
136Search for a person using a variety of parameters such as LinkedIn slug, LinkedIn URL, or their current company information. Returns profile data for the person if found.
137 
138Parameters:
139- profileIdentifier (string) - If provided and correct, we would always be able to find the profile. You do not need to pass in any other info if you pass this.
140- emailAddress (['string', 'null']) - The email address of the person to search for
141- personName (['object', 'null'])
142- jobTitle (['object', 'null'])
143- companyIdentifier (string) - The company the profile is currently working at. If provided the accuracy of the lookup increases. You do not need to pass in any other company parameters if you pass this.
144- companyName (['object', 'null'])
145- companyDomain (['object', 'null'])
146- numProfiles (integer) - The maximum number of profiles you want to fetch. Profiles are sorted by best match first.
147- liveFetch (['boolean', 'null']) - Whether to fetch the freshest copy of the found profiles's LinkedIn data (costs extra). If omitted or set to false, we'll give the cached data present in our database. The boolean flag is deprecated and will be removed in future. Please use the object instead.
148- forceCompanyMatch (['boolean', 'null']) - Whether to strictly match the company. If true, we will strictly lookup prospects which belong to given company details.
149- fuzzySearch (['boolean', 'null']) - Whether to use fuzzy search on names, job titles and other parameters. This is good if you are not sure about the exact name or job title.
150- getDetailedEducation (['boolean', 'null']) - Whether to include deep details about each educational item, like the school's LinkedIn URL, website, location, etc. That'll be put in the detailedEducation array. This slows down the API call, so only enable this if you need it.
151- getDetailedWorkExperience (['boolean', 'null']) - Whether to include deep details about each work experience item, like the company's LinkedIn URL, website, location, etc. That'll be put in the detailedWorkExperience array. This slows down the API call, so only enable this if you need it.
152 
153```bash
154curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
155 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
156 -H "Content-Type: application/json" \
157 -d '{"api":"fiber","path":"/v1/kitchen-sink/person","body":{"linkedin_url":"https://linkedin.com/in/johndoe"}}'
158```
159 
160### Kitchen sink company lookup
161Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc. Returns complete company data if found.
162 
163Parameters:
164- companyIdentifier (string) - A unique identifier for the company. Accepts one of: linkedinSlug, linkedinUrl, or linkedinOrgID. Providing this increases the accuracy and speed of the lookup. If this is provided, you do not need to supply companyName or companyDomain.
165- companyName (['object', 'null'])
166- companyDomain (['object', 'null'])
167- numCompanies (integer) - The number of companies you want to fetch. Companies are sorted by best match first.
168 
169```bash
170curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
171 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
172 -H "Content-Type: application/json" \
173 -d '{"api":"fiber","path":"/v1/kitchen-sink/company","body":{"domain":"openai.com"}}'
174```
175 
176### Investor search
177Search for investors with flexible filtering capabilities
178 
179Parameters:
180- searchParams* (object) - Investor search filter parameters
181- pageSize (integer) - Number of investors to return per page (max 1000)
182- cursor (['string', 'null']) - Pagination cursor returned from a previous search response. Use this to fetch the next page of results. Null for the first page.
183 
184```bash
185curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
186 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
187 -H "Content-Type: application/json" \
188 -d '{"api":"fiber","path":"/v1/investor-search"}'
189 "searchParams": {
190 "investment_stages": ["Seed", "Series A"],
191 "industries": ["AI", "SaaS"]
192 }
193}'
194```
195 
196### Fetch LinkedIn profile posts
197Fetches recent posts from a LinkedIn profile. Returns a paginated feed of posts with optional cursor for pagination. Each page returns up to 50 posts.
198 
199Parameters:
200- identifier* (string) - Identifier can be a profile's LinkedIn slug (e.g. 'williamhgates' from <linkedin.com/in/williamhgates>), a Sales Navigator URN (e.g. 'ACwAAA.....'), or a full LinkedIn URL (e.g. 'https://www.linkedin.com/in/williamhgates/')
201- cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
202 
203```bash
204curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
205 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
206 -H "Content-Type: application/json" \
207 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/profile-posts","body":{"identifier":"https://linkedin.com/in/johndoe"}}'
208```
209 
210### Live fetch LinkedIn company
211Returns an enriched company with details for a given LinkedIn company identifier
212 
213Parameters:
214- type* (string)
215- value* (string) - The company's LinkedIn slug (e.g., 'microsoft'), LinkedIn URL (e.g., 'https://www.linkedin.com/company/microsoft' or 'https://www.linkedin.com/company/1441'), LinkedIn organization ID (e.g., '1441' for Google), or Fiber company ID (e.g., 'comp_1441')
216 
217```bash
218curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
219 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
220 -H "Content-Type: application/json" \
221 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/company/single","body":{"identifier":"https://linkedin.com/company/openai"}}'
222```
223 
224### People search
225Search for people using filters
226 
227Parameters:
228- searchParams (object) - Search parameters for people search.
229- pageSize (integer) - The number of profiles to return, if you need to get more results, you can paginate.
230- cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
231- currentCompanies (['array', 'null']) - Filter people by the companies they are currently working for. If you want to search over many companies, we suggest using the Combined Search API, which is optimized for this use case.
232- prospectExclusionListIDs (['array', 'null']) - Filter out people which belong to the given prospect exclusion lists
233- companyExclusionListIDs (['array', 'null']) - Filter out people who work at companies which belong to the given company exclusion lists
234 
235```bash
236curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
237 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
238 -H "Content-Type: application/json" \
239 -d '{"api":"fiber","path":"/v1/people-search"}'
240 "searchParams": {
241 "job_titles": ["CTO", "VP Engineering"],
242 "locations": ["San Francisco", "New York"]
243 }
244}'
245```
246 
247### Fetch LinkedIn post comments
248Fetches paginated comments for a LinkedIn post. Each page contains up to 10 comments.
249 
250Parameters:
251- contentId* (string) - You can get LinkedIn posts from the Profile or Company Posts endpoints. (e.g., 'urn:li:activity:7123456789012345678' or 'urn:li:ugcPost:7391650829398675456')
252- cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
253 
254```bash
255curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
256 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
257 -H "Content-Type: application/json" \
258 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/post-comments","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'
259```
260 
261### Company search
262Search for companies using filters
263 
264Parameters:
265- searchParams* (object) - Search parameters for company search API.
266- pageSize (integer) - The number of companies to return, if you need to get more results, you can paginate.
267- cursor (['string', 'null']) - A pagination cursor returned from a previous search response. Use this to fetch the next page of results.
268- companyExclusionListIDs (['array', 'null']) - Filter out companies which belong to the given company exclusion lists. You can create company exclusion lists via /v1/exclusions/companies/create-list
269 
270```bash
271curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
272 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
273 -H "Content-Type: application/json" \
274 -d '{"api":"fiber","path":"/v1/company-search"}'
275 "searchParams": {
276 "industries": ["Software", "AI"],
277 "employee_count_min": 50,
278 "employee_count_max": 500
279 }
280}'
281```
282 
283### Convert text into company search filters
284Takes free-form text (e.g., 'Series A startups in USA with 50–200 employees') and converts it into a structured set of filters for company search.
285 
286Parameters:
287- query* (string)
288 
289```bash
290curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
291 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
292 -H "Content-Type: application/json" \
293 -d '{"api":"fiber","path":"/v1/text-to-search-params/companies","body":{"query":"AI startups in healthcare"}}'
294```
295 
296### Convert text into profile search filters
297Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and converts it into a structured set of filters for profile search.
298 
299Parameters:
300- query* (string)
301 
302```bash
303curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
304 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
305 -H "Content-Type: application/json" \
306 -d '{"api":"fiber","path":"/v1/text-to-search-params/profiles","body":{"query":"Senior engineers at FAANG companies"}}'
307```
308 
309### Job postings search
310Search for job postings with flexible filtering capabilities
311 
312Parameters:
313- searchParams* (object) - Job search filter parameters
314- pageSize (integer) - Number of jobs to return per page (max 1000)
315- cursor (['string', 'null']) - Pagination cursor for fetching next page of results
316 
317```bash
318curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
319 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
320 -H "Content-Type: application/json" \
321 -d '{"api":"fiber","path":"/v1/job-search"}'
322 "searchParams": {
323 "job_titles": ["Software Engineer"],
324 "locations": ["Remote"]
325 }
326}'
327```
328 
329### Fetch LinkedIn post reactions
330Fetches paginated reactions of a specific type for a LinkedIn post. Each page contains up to 10 reactions.
331 
332Parameters:
333- contentId* (string) - You can get LinkedIn posts from the Profile or Company Posts endpoints. (e.g., 'urn:li:activity:7123456789012345678' or 'urn:li:ugcPost:7391650829398675456')
334- reactionType (['string', 'null']) - Type of reaction to fetch. If null, all reactions will be fetched.
335- cursor (['string', 'null']) - Pagination cursor for fetching additional pages of posts
336 
337```bash
338curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
339 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
340 -H "Content-Type: application/json" \
341 -d '{"api":"fiber","path":"/v1/linkedin-live-fetch/post-reactions","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'
342```
343 
344## Use Cases
345 
3461. **Recruiting**: Find candidates matching specific criteria
3472. **Sales Prospecting**: Build targeted lead lists
3483. **Fundraising**: Research investors in your space
3494. **Competitive Intel**: Track companies and their employees
3505. **Job Search**: Find relevant job opportunities
351 
352## Discover More
353 
354For full endpoint details and parameters:
355 
356```bash
357curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/search \
358 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
359 -H "Content-Type: application/json" \
360 -d '{"prompt":"fiber API endpoints"}' List all endpoints
361curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/details \
362 -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
363 -H "Content-Type: application/json" \
364 -d '{"api":"fiber","path":"/v1/natural-language-search/profiles"}' # Get endpoint details
365```
366 

Discussion

Alternatives

Also in Company & contact data