Apify Store README Optimizer
Pricing
from $1.70 / 1,000 readmes
Apify Store README Optimizer
Fetches public Apify Store Actor READMEs and generates cleaner, review-ready optimization drafts with stronger structure, use cases, examples, troubleshooting, and API-safe snippets.
Pricing
from $1.70 / 1,000 readmes
Rating
0.0
(0)
Developer
Trove Vault
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Share
Generate review-ready README drafts for public Apify Store Actors without publishing or modifying the source Actor. Use the deterministic optimizer for fast, free drafts, or optionally add your own LLM API key for a second editorial rewrite pass.
Enter one or more Actor identifiers, such as trovevault/shopify-products-scraper, trovevault~seo-fields-scraper, a Store URL, or a public Actor ID. The actor fetches the public Markdown version of the Store page, extracts the real README body, removes platform boilerplate, and writes an optimized draft to the dataset and key-value store.
Best for
- Auditing and improving Apify Store READMEs before launch.
- Creating shorter drafts under a fixed character budget.
- Adding clearer purpose, use cases, feature transparency, examples, limitations, troubleshooting, and support language.
- Reviewing drafts manually before copying them back into a source repository or Store listing.
Not designed for
- Publishing changes to Apify Store automatically.
- Editing the source Actor repository.
- Replacing manual review for high-value public listings.
- Producing fully bespoke brand copy without human approval.
How it works
- Resolves each Actor input to a public Store slug.
- Downloads
https://apify.com/<username>/<actor-name>.md. - Extracts the real README section and skips generated schema/API boilerplate.
- Rebuilds the README with a cleaner deterministic structure:
- purpose-focused introduction
Best forNot designed for- output/input/API examples where present
- limitations
- troubleshooting
- support path
- If an LLM provider and API key are provided, sends the original README and deterministic draft to that provider for a final rewrite.
- Saves the optimized Markdown to the default dataset and, optionally, the key-value store.
Input example
{"actorIds": ["trovevault/shopify-products-scraper","https://apify.com/trovevault/seo-fields-scraper"],"maxCharacters": 9900,"llmProvider": "none","llmApiKey": "","llmModel": "","llmTemperature": 0.2,"llmInstructions": "","includeOriginalReadme": false,"saveMarkdownFiles": true}
LLM mode example
{"actorIds": ["trovevault/shopify-products-scraper"],"maxCharacters": 9900,"llmProvider": "openai","llmApiKey": "YOUR_OPENAI_API_KEY","llmModel": "gpt-4o-mini","llmTemperature": 0.2,"llmInstructions": "Keep the tone direct and practical. Preserve all public output fields. Avoid hype."}
Input reference
| Field | Type | Description |
|---|---|---|
actorIds | array | Public Actor identifiers in username/name, username~name, Store URL, or public Actor ID format. |
maxCharacters | integer | Character budget for each optimized README. Defaults to 9900. |
llmProvider | string | Optional provider: none, openai, anthropic, or openrouter. |
llmApiKey | string | API key for the selected provider. It is used only for the LLM request and is not saved to output. |
llmModel | string | Optional model override. Defaults are provider-specific. |
llmTemperature | number | Creativity level for the optional LLM rewrite. |
llmInstructions | string | Extra style or business instructions for the LLM rewrite. |
includeOriginalReadme | boolean | Include the original README body in the dataset item. |
saveMarkdownFiles | boolean | Save original and optimized Markdown files to the key-value store. |
API usage
Run the actor from a script or pipeline with the Apify API. The result dataset will contain one row per optimized Actor README.
curl -X POST "https://api.apify.com/v2/acts/trovevault~apify-store-readme-optimizer/runs" \-H "Authorization: Bearer YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"actorIds": ["trovevault/shopify-products-scraper"],"maxCharacters": 9900,"llmProvider": "none","saveMarkdownFiles": true}'
When using LLM mode through the API, send llmApiKey in the request body. It is used only for the provider request and is not saved in the output dataset or key-value store.
Output
Each dataset item contains:
| Field | Description |
|---|---|
actorId | Resolved Store slug, such as trovevault/shopify-products-scraper. |
readmeUrl | Public Markdown URL used as the source. |
originalCharacters | Character count of the extracted source README. |
optimizedCharacters | Character count of the generated draft. |
optimizationMode | deterministic or llm. |
llmProvider | Provider used for the optional LLM rewrite, if any. |
llmModel | Model used for the optional LLM rewrite, if any. |
optimizedReadme | Full optimized Markdown draft. |
warnings | Review notes such as missing snippets or over-budget output. |
optimizedKey | Key-value store key for the optimized Markdown file. |
originalKey | Key-value store key for the original extracted Markdown file. |
Limitations
The deterministic mode is fast, cheap, and repeatable, but it may not produce fully bespoke editorial copy for every niche Actor. LLM mode can improve copy quality, but it sends the source README and deterministic draft to the selected provider and may require extra review for unsupported claims.
It only works with public Apify Store Actors whose Markdown page is available. Private Actors require authenticated API access, which this version intentionally does not use.
API keys are not written to the dataset or key-value store. They are used only in memory for the selected provider request.
Troubleshooting
The actor cannot resolve an ID
Use a Store slug such as username/actor-name or paste the full Store URL. Public Actor IDs are also supported when the Apify API can resolve them.
The optimized README feels too generic Lower-level sections are built from the source README. If the source lacks examples, use cases, or limitations, the output may need manual domain-specific editing.
The LLM rewrite fails The actor falls back to deterministic output and writes a warning in the dataset item. Check the provider, API key, model name, and account quota.
I do not want to send README content to an LLM
Set llmProvider to none. This is the default.
The output is too long
Lower maxCharacters. The actor removes FAQ and long tables first, then truncates as a last resort.
Support
Found a bug or a weak optimization pattern? Open an issue with the input Actor ID, run ID, and expected README style.
