contact-finder-contactout — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited contact-finder-contactout (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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"
Sales and recruitment intelligence platform. Find anyone's email and phone number, enrich LinkedIn profiles, look up people from email or multiple signals, and get company info from domains.
Get full profile details (email, phone, work history, education, skills) from a LinkedIn URL.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'<details> <summary>curl equivalent</summary>
curl -X POST "https://api.orth.sh/v1/run" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'</details>
Parameters:
Returns: Full profile with emails, phones, work history, education, skills, company info, seniority, job function.
Get just contact details (emails, phones) for a LinkedIn profile. Lighter than full enrichment.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/linkedin","query":{"profile":"https://www.linkedin.com/in/williamhgates","include_phone":"true"}}'<details> <summary>curl equivalent</summary>
curl -X POST "https://api.orth.sh/v1/run" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/linkedin","query":{"profile":"https://www.linkedin.com/in/williamhgates","include_phone":"true"}}'</details>
Parameters:
personal, work, personal,work, or nonecurl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/linkedin/batch","body":{"profiles":["https://linkedin.com/in/person1","https://linkedin.com/in/person2"]}}'Parameters:
Get profile details from an email address. Personal emails have higher match rates.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/email/enrich","query":{"email":"[email protected]","include":"work_email"}}'Parameters:
work_email to include work email in responseEnrich a person using multiple data points. Needs at least one primary identifier (linkedin_url, email, or phone) or name + company.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/enrich"}'
"full_name": "Patrick Collison",
"company": ["Stripe"],
"company_domain": ["stripe.com"],
"include": ["work_email", "personal_email", "phone"]
}'Parameters:
work_email, personal_email, phoneNote: Name-only searches need at least one secondary param (company, domain, education, location, or job_title).
Get company information from domain names.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/domain/enrich","body":{"domains":["stripe.com","google.com"]}}'Parameters:
Returns: Company details including name, industry, size, revenue, funding, headquarters, LinkedIn URL, specialties.
Count matching profiles without returning data. Use to estimate results before searching.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/count","body":{"domain":["stripe.com"],"seniority":["VP","CXO","Director"]}}'Parameters: Same search filters as People Search (name, job_title, company, domain, location, industry, seniority). Returns only total_results.
Cost: Free, no credits consumed.
Owner / Founder, CXO, Partner, VP, Head, Director, Manager, Senior, Entry, Intern
Operations, Business Development, Sales, Education, Engineering, Healthcare Services, Information Technology, Administrative, Arts and Design, Customer Success and Support, Finance, Community and Social Services, Media and Communication, Accounting, Marketing, Human Resources, Research, Program and Project Management, Legal, Military and Protective Services, Consulting, Entrepreneurship, Real Estate, Quality Assurance, Purchasing, Product Management, Leadership
1_10, 11_50, 51_200, 201_500, 501_1000, 1001_5000, 5001_10000, 10001
Computer Software, Internet, Financial Services, Hospital & Health Care, Marketing and Advertising, Information Technology and Services, Telecommunications, Management Consulting, Real Estate, Retail, and many more. Full list: https://docs.google.com/spreadsheets/d/14drLUuDLgxPflIsPNgV_w05N6guY4GtCCCd36zT4vg0
"Get Bill Gates' email"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/linkedin/enrich","query":{"profile":"https://www.linkedin.com/in/williamhgates"}}'"Look up who this email belongs to"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/email/enrich","query":{"email":"[email protected]"}}'"Find Patrick Collison's contact info"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/enrich","body":{"full_name":"Patrick Collison","company":["Stripe"],"include":["work_email","personal_email","phone"]}}'"Get company info for stripe.com"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/domain/enrich","body":{"domains":["stripe.com"]}}'"How many CTOs are there at fintech companies in SF?"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/count","body":{"job_title":["CTO"],"industry":["Financial Services"],"location":["San Francisco"]}}'"Get contact details for these 3 LinkedIn profiles"
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"contactout","path":"/v1/people/linkedin/batch","body":{"profiles":["https://linkedin.com/in/person1","https://linkedin.com/in/person2","https://linkedin.com/in/person3"]}}'/v1/people/count first (free) to estimate results before committing to paid calls~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.