Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/clyrisai/gitresolve/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through resolving your first candidate profile using GitResolve. You’ll run the CLI against a live GitHub profile URL, parse a local resume PDF, and then wire up the programmatic TypeScript API for use inside your own application — all with zero required configuration.
1
Install GitResolve
2
The fastest way to try GitResolve is with npx — no installation required:
3
npx @clyrisai/gitresolve --help
4
For repeated use, install it globally so the gitresolve command is always available:
5
npm install -g @clyrisai/gitresolve
6
Puppeteer is bundled as a direct dependency and is installed automatically alongside GitResolve. No manual Puppeteer setup is needed for local or project installs. For global installs, you may need to run npm install -g puppeteer separately if JavaScript rendering is required for SPA portfolio sites.
7
Resolve a GitHub Profile via the CLI
8
Pass any GitHub (or GitLab, Bitbucket) profile URL directly as the first argument:
9
gitresolve https://github.com/janedoe
10
GitResolve will classify the input as git_profile, scrape the page, extract all repository links, disambiguate ownership, and print a formatted summary to your terminal.
11
To get machine-readable output instead, add the --json flag:
12
gitresolve https://github.com/janedoe --json
13
This outputs the full ResolverResult as JSON, which you can pipe to jq or redirect to a file:
14
gitresolve https://github.com/janedoe --json | jq '.ownerProfile'
15
Example JSON output shape:
16
{
  "source": "https://github.com/janedoe",
  "sourceType": "git_profile",
  "ownerProfile": {
    "url": "https://github.com/janedoe",
    "provider": "github",
    "type": "profile",
    "username": "janedoe"
  },
  "confidence": "high",
  "ownedRepos": [
    {
      "url": "https://github.com/janedoe/my-project",
      "provider": "github",
      "type": "repo",
      "username": "janedoe",
      "repo": "my-project"
    }
  ],
  "contributions": [],
  "externalRepos": [],
  "allLinks": [],
  "warnings": []
}
17
Parse a Resume PDF via the CLI
18
Point GitResolve at a local PDF file path to extract git links from both the text content and embedded hyperlink annotations:
19
gitresolve ./resume.pdf
20
GitResolve detects the .pdf extension and automatically classifies the input as resume_file. For remote PDF URLs, provide the URL and pass --type resume to force resume parsing:
21
gitresolve https://example.com/candidate-resume.pdf --type resume
22
The --type resume flag is useful when a resume URL doesn’t end in .pdf — for example, a Google Drive export link or a CDN-hosted file with a generic path.
23
Use the Programmatic TypeScript API
24
Install GitResolve as a project dependency:
25
npm install @clyrisai/gitresolve
26
Then import and use the core functions directly in your TypeScript (or JavaScript) backend:
27
import { createProvider, scrapePortfolio, parseResume } from '@clyrisai/gitresolve';

// createProvider() auto-selects: puppeteer → browserless → fetch
const provider = await createProvider();

try {
  // Resolve a portfolio site or git profile URL
  const portfolioResult = await scrapePortfolio('https://janedoe.dev', provider);
  console.log('Owner profile:', portfolioResult.ownerProfile);
  console.log('Confidence:', portfolioResult.confidence);
  console.log('Owned repos:', portfolioResult.ownedRepos);
  console.log('Contributions:', portfolioResult.contributions);
  console.log('External repos:', portfolioResult.externalRepos);
  console.log('Warnings:', portfolioResult.warnings);

  // Parse a local resume PDF
  const resumeResult = await parseResume('./resumes/candidate.pdf');
  console.log('Links found in resume:', resumeResult.allLinks.length);
  console.log('Resolved owner:', resumeResult.ownerProfile);
} finally {
  // Always release browser resources
  await provider.cleanup();
}
28
Always call provider.cleanup() in a finally block. When using the Puppeteer or Browserless provider, failing to clean up will leave a browser process or connection open.

ResolverResult Shape

Every resolved input — whether a portfolio URL, a profile link, a repo URL, or a resume PDF — returns a ResolverResult object with this shape:
interface ResolverResult {
  source: string;
  sourceType: InputType;
  ownerProfile: ExtractedGitLink | null;
  confidence: "high" | "medium" | "low" | "none";
  ownedRepos: ExtractedGitLink[];
  contributions: ExtractedGitLink[];
  externalRepos: ExtractedGitLink[];
  allLinks: ExtractedGitLink[];
  warnings: string[];
  error?: string;
}

ResolverResult Fields

FieldTypeDescription
sourcestringThe original input — a URL or a file path
sourceTypeInputTypeClassified type: portfolio, git_profile, repo_url, resume_file, resume_url, linkedin, or unknown
ownerProfileExtractedGitLink | nullThe best resolved git profile for the candidate; null if unresolvable
confidence"high" | "medium" | "low" | "none"How confident GitResolve is in the ownerProfile resolution
ownedReposExtractedGitLink[]Repos where the username matches the resolved owner — the candidate’s own projects
contributionsExtractedGitLink[]Explicit PR and Issue links extracted — signals open-source activity
externalReposExtractedGitLink[]Repos owned by other users that the candidate has referenced
allLinksExtractedGitLink[]Every git link found, unfiltered and uncategorized
warningsstring[]Non-fatal issues encountered during resolution (e.g. skipped LinkedIn links)
errorstring | undefinedSet if a fatal error occurred during processing

What’s Next

CLI Guide

Explore all CLI flags including batch processing with —portfolios, —resumes, and —output-dir.

API Reference

Full reference for every exported function and type in the programmatic API.

Browser Providers

Learn how to configure Puppeteer, Browserless, and the fetch provider for different environments.

Installation

All install options, environment variables, and TypeScript setup details.

Build docs developers (and LLMs) love