How fixes are generated

Every Crawlmend fix is a code change in your repository. This page describes the pipeline from a crawl finding to a pull request, and where a human stays in the loop.

1. A finding with evidence

An opportunity starts from a crawl finding (for example a missing meta description), from Search Console data (for example a high-impression query with a weak click-through rate), or from an AI visibility check. The evidence is stored with it and shown next to the recommendation.

2. Finding the right file

Crawlmend reads your repository's file tree and detects the framework, then maps the page URL to the source file that renders it, using the framework's routing conventions. A page that cannot be mapped confidently is reported rather than guessed at.

3. Generating the change

For some issue types, such as missing, short or long meta descriptions, there are two modes: a mechanical fix built deterministically from the page's own content, and an AI-assisted fix. Title length issues use the AI-assisted mode. Other issue types use AI-assisted generation, guided by the framework's metadata conventions. AI-assisted fixes send the relevant page content and findings to OpenAI, and only when you trigger the action.

4. Verification

The change is applied to a throwaway clone and checked (see what compile-checked means). If the check finds an error the change introduced, Crawlmend feeds the error back and retries, up to five attempts. If it still cannot produce a change that passes, you get the reason, not a broken pull request.

5. You review, then Crawlmend opens the pull request

You see the diff first. On approval Crawlmend creates a new branch from your default branch, commits the change as a single commit, and opens a draft pull request titled "Crawlmend fixes — <page>". Several fixes for the same page are bundled into one pull request. The pull request is marked ready for review once your repository's CI passes (immediately if you have no CI). It never merges, and it does not push to your default branch. Edit the diff, request a different fix, or close the pull request, and nothing about your site changes.