# Writing instructions manually

While Custom Parser helps you automate data parsing with AI-powered features, you can also write parsing instructions manually using CSS and XPath expressions. This gives you the option to **handle edge cases** or **customize parsing logic** for specific scenarios.

Custom Parser requires these mandatory parameters when creating a job:

* `parse` set to `true`
* `parsing_instructions` containing a JSON object with your extraction rules

Once you're happy with your custom parsing logic, you can save the instructions as a reusable [parser preset](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/custom-parser/parser-presets).

Check out our comprehensive guides below, where you can find practical examples, best practices for XPath expressions, and a complete reference of all available parsing functions.

{% content-ref url="writing-instructions-manually/parsing-instruction-examples" %}
[parsing-instruction-examples](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/custom-parser/writing-instructions-manually/parsing-instruction-examples)
{% endcontent-ref %}

{% content-ref url="writing-instructions-manually/tips-for-writing-xpath-expressions" %}
[tips-for-writing-xpath-expressions](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/custom-parser/writing-instructions-manually/tips-for-writing-xpath-expressions)
{% endcontent-ref %}

{% content-ref url="writing-instructions-manually/list-of-functions" %}
[list-of-functions](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/custom-parser/writing-instructions-manually/list-of-functions)
{% endcontent-ref %}

{% content-ref url="writing-instructions-manually/list-of-functions/function-examples" %}
[function-examples](https://developers.oxylabs.io/scraping-solutions/web-scraper-api/features/custom-parser/writing-instructions-manually/list-of-functions/function-examples)
{% endcontent-ref %}
