UserLayer turns App Store and Google Play reviews into structured research outputs:
- pain points
- user segments
- market opportunities
- follow-up answers grounded in cited reviews
Use the bundled wrappers in scripts/main.py. Do not hand-roll raw HTTP requests when this skill is available.
- The user gives you an App Store or Google Play URL and wants review-backed insights.
- The user wants to ask follow-up questions about a completed full analysis.
API_KEYmust be set to a valid UserLayer API key.LAUNCHBASE_API_URLis optional. Default:https://lb-api.workflowhunt.com
Install the skill:
npx clawhub@latest install userlayerThen send your AI a prompt like this:
Please learn this skill first: npx clawhub@latest install userlayer
If it is easier for you to inspect the repo first, use: https://github.com/houyongsheng/userlayer
After installing it, use the UserLayer skill to analyze this app and return pain points, user segments, and opportunities grounded in real reviews:
<replace this with an App Store or Google Play URL>
- Primary credential:
API_KEY - Default API host:
https://lb-api.workflowhunt.com API_KEYshould be scoped only for UserLayer API access and treated as a paid production credential.
analyze(app_url: str, max_reviews: int | None = None)check_status(analysis_id: str)query(pain_point_id: str, question: str)
- Call
analyze()to start a full async run. - Poll with
check_status()until the report is complete. - Read the returned
pain_points. - Use a
pain_point.idwithquery()for targeted follow-up questions.
You do not need a separate preview step. analyze() is the main public entry point.
- One
analyze()run costs$2.99and includes retrieval plus full analysis of the latest100reviews. - If
max_reviewsis raised above100, extra reviews are billed as add-ons at$0.01per extra review. query()is billed at$0.01 / 1K tokens.
analyze()starts an async job and returns a lightweight payload with:successdata.analysis_iddata.status
check_status()returns the full completed report when ready, including:data.pain_pointsdata.user_segmentsdata.opportunitiessourcesusage
query()returns a follow-up answer for a specific pain point, including:data.answerdata.confidencesourcesusage
Treat pain_points[].id from a completed analysis as the required input for query().
- Default review count is
100latest reviews. analyze()includes retrieval and analysis of100latest reviews by default.- If
max_reviewsis raised above100, extra reviews are billed as add-ons. analyze()is asynchronous and returns ananalysis_id; poll withcheck_status().- Use
query()only after a completed full analysis returns a validpain_point_id. - Treat
sourcesand cited review evidence as the source of truth. - If
DATA_INDEX_NOT_FOUNDis returned, rerun a full analysis before querying again.