skills/capabilities/orthogonal-fiber/SKILL.md
People, company, investor, and job search with LinkedIn data enrichment
npx skillsauth add athina-ai/goose-skills orthogonal-fiberInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
| 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.
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.
Takes free-form text (e.g., 'Software engineers in US with 5+ years of experience') and returns a list of matching profiles.
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/natural-language-search/profiles","body":{"query":"Software engineers in San Francisco with 5+ years experience"}}'
Takes free-form text (e.g., 'Series A startups in USA with 50–200 employees') and returns a list of matching companies.
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/natural-language-search/companies","body":{"query":"Series A startups in fintech with 50-200 employees"}}'
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:
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]"}}'
Returns an enriched profile with details for a given LinkedIn profile 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/profile/single","body":{"identifier":"https://linkedin.com/in/johndoe"}}'
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:
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]"}}'
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:
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"}}'
Search for a company using a variety of parameters such as LinkedIn slug, LinkedIn URL, name, etc. Returns complete company data if found.
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/kitchen-sink/company","body":{"domain":"openai.com"}}'
Search for investors with flexible filtering capabilities
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/investor-search"}'
"searchParams": {
"investment_stages": ["Seed", "Series A"],
"industries": ["AI", "SaaS"]
}
}'
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:
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"}}'
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"}}'
Search for people using filters
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/people-search"}'
"searchParams": {
"job_titles": ["CTO", "VP Engineering"],
"locations": ["San Francisco", "New York"]
}
}'
Fetches paginated comments for a LinkedIn post. Each page contains up to 10 comments.
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/post-comments","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'
Search for companies using filters
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/company-search"}'
"searchParams": {
"industries": ["Software", "AI"],
"employee_count_min": 50,
"employee_count_max": 500
}
}'
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:
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"}}'
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:
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"}}'
Search for job postings with flexible filtering capabilities
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/job-search"}'
"searchParams": {
"job_titles": ["Software Engineer"],
"locations": ["Remote"]
}
}'
Fetches paginated reactions of a specific type for a LinkedIn post. Each page contains up to 10 reactions.
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/post-reactions","body":{"identifier":"https://linkedin.com/feed/update/urn:li:activity:1234"}}'
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
content-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.