The simplest way to use GitResolve is to pass a single URL or local file path as a positional argument. GitResolve automatically classifies the input, selects the right processing strategy, and prints a resolved candidate profile to your terminal.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.
Basic Usage
<url-or-path> argument accepts any of the input types documented below. You do not need to specify a mode flag — GitResolve infers what the input is and handles it accordingly.
URL Normalization
GitResolve normalizes bare domains before processing so you do not need to type the fullhttps:// prefix every time.
The following inputs are treated as-is and are not prefixed:
- Inputs that already start with
http://orhttps:// - Local file paths starting with
./,/, or~/ - File names ending in
.pdf,.doc,.docx, or.rtf
https:// prepended automatically:
Supported Input Types
| Input Type | Example | Processing Strategy |
|---|---|---|
| Portfolio website | https://janedoe.dev | Scrapes page for Git links |
| GitHub profile | https://github.com/janedoe | Scrapes profile, discovers repos |
| GitLab profile | https://gitlab.com/janedoe | Scrapes profile, handles /users/ routes |
| Bitbucket profile | https://bitbucket.org/janedoe | Scrapes profile page |
| Repository URL | https://github.com/janedoe/my-project | Scrapes repo page, resolves owner |
| Remote resume PDF | https://example.com/resume.pdf | Downloads PDF, extracts text and links |
| Local resume PDF | ./resumes/janedoe.pdf | Reads PDF from disk, extracts text and links |
Portfolio Website
GitHub Profile
github.com hostname, recognizes the path as a single-segment user profile, and scrapes the profile page to extract all linked repositories.
GitLab Profile
/janedoe) and the long-form /users/janedoe route are handled correctly.
Bitbucket Profile
Repository URL
Remote Resume PDF
Local Resume PDF
.pdf extension — or the leading ./, /, or ~/ — prevents URL normalization from prepending https://.
To process a directory of local PDF resumes, use
--resumes or --resumes-dir batch mode instead of the single-URL argument. See Batch Processing for details.The --type Flag
When GitResolve cannot determine the input type from the URL alone — for example, a resume hosted behind a redirect or a URL without a .pdf extension — use --type to provide a hint.
portfolio and resume. The --type flag overrides the classifier but only applies to the single-URL mode — it is ignored during batch processing.
Classification Pipeline
When you pass a URL, GitResolve runs through the following steps before any network request is made:Normalize input
The raw input string is checked for a protocol prefix, file extension, and local path markers. A
https:// prefix is prepended if needed.Classify input type
The classifier checks the hostname against known Git providers (
github.com, gitlab.com, bitbucket.org), runs a repo-URL parser to distinguish profile URLs from repo URLs, and flags URLs with document extensions as resume inputs. Any other valid URL is classified as a portfolio.Select processing strategy
Resume URLs are routed to the PDF fetcher and parser. Portfolio pages, Git profiles, and repo URLs are routed to the portfolio scraper with the appropriate browser provider.
Scrape or parse
For portfolio and Git URLs, the page is fetched (via
fetch, Puppeteer, or Browserless) and all Git URLs are extracted from the HTML. For remote resume PDFs, the file is downloaded to a temporary path and text content and hyperlink annotations are extracted.Disambiguate owner
All discovered links are analysed to determine which username appears most frequently as an owner. That username becomes the
ownerProfile, and links are sorted into ownedRepos, contributions, and externalRepos.JSON Output
Add--json to suppress the ANSI terminal UI and print a raw JSON array to stdout instead. The single-URL mode still returns an array — it will contain one AggregatedResult object.
Unresolvable Input Types
Some input types are recognized by the classifier but cannot be resolved to a Git profile. In these cases the result will always haveconfidence: "none", ownerProfile: null, and a human-readable explanation in the warnings array.
LinkedIn URLs
LinkedIn URLs are classified with anInputType of linkedin. GitResolve does not scrape LinkedIn pages — passing a LinkedIn URL returns a result with confidence: "none" and a warning explaining that LinkedIn cannot be resolved. Use a portfolio URL or a direct Git profile link instead.
LinkedIn classification exists to give you a clear warning rather than a silent failure. If a candidate’s only provided link is LinkedIn, you will see the URL echoed back with an explanatory message in
warnings.Unknown Input Types
If the classifier cannot determine a URL’s type — for example, a short-link redirect or an unrecognized hostname that is neither a known Git provider nor a portfolio-style domain — the input is classified asunknown. Like linkedin, an unknown input type cannot be resolved: the result will have confidence: "none" and a warning of the form "Input classified as 'unknown' — cannot resolve".