CV Engineer 数据 API:简历导入、职位与托管简历
《Resume Builder - CV Engineer》是 Matt Callery 的 Android 简历制作应用,对外品牌为 CV Engineer(cvengineer.com)。求职者选择模板、重排章节、设定简历语言与页面尺寸,填写联系方式、经历、教育、项目、技能、兴趣与推荐人;AI 助手可改写条目并提供示例,扫描器可导入 PDF、DOCX、DOC、RTF 或 TXT。登录(Google、Facebook 或邮箱,经 FirebaseUI)后可发布托管简历、按职位名/城市/半径搜索 Talent 空缺、起草辞职信,并通过 RevenueCat 解锁 Plus;免费用户会看到广告。它面向全球以英语为主的求职者,与 Resume.io、Kickresume、Rezi 以及 Indeed、LinkedIn 内的简历工具并列,而不是单一国家的招聘板。
导入简历会落成结构化的 resumeData:联系块上的 phone_number、career_sections 里的 employer 与 job_title,以及按 school 组织的 education_sections。
Talent 信息流卡片再给每条空缺附上 applyUrl、postedDate 与 brandfetchUrl;托管 PDF 保存 hosted_cv_file_name,印刷报价返回 order_price、delivery_price 与 total_price。
猎头 CRM、职位提醒路由和简历托管组件会消费这些记录;openData Studio 把它们变成可调用的开放数据。
应用截图
API 端点一览
以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。
导入简历并解析为结构化字段
POST
/v1/resumes/importopendata把粘贴或扫描的简历文本(PDF、DOCX、DOC、RTF、TXT)解析为 resumeData:联系字段、career_sections、education_sections、projects、key_skills、interests 与 references。
认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。
- status
- resumeData
- name
- phone_number
- address
- personal_statement
- career_sections
- employer
- job_title
- details
- start_date
- end_date
- education_sections
- school
- qualification
- grade
- key_skills
- projects
- project_title
- project_details
- interests
- references
- full_name
- cvLanguage
- resumeText
POST /v1/resumes/import HTTP/1.1 Authorization: Bearer <firebase-id-token> Content-Type: application/json { "resumeText": "Jane Doe\nProduct Manager\nAcme Corp 2020-2024", "cvLanguage": "ENGLISH" }{ "status": "success", "resumeData": { "name": "Jane Doe", "email": "[email protected]", "phone_number": "+1 415 555 0100", "address": "San Francisco, CA", "personal_statement": "Product manager focused on marketplace growth.", "career_sections": [{ "employer": "Acme Corp", "job_title": "Product Manager", "details": "Shipped the applicant tracking workflow.", "start_date": "2020-01", "end_date": "2024-06" }], "education_sections": [{ "school": "Example University", "qualification": "BSc Computer Science", "grade": "2:1", "details": "HCI elective", "start_date": "2016", "end_date": "2019" }], "key_skills": "Roadmapping, SQL, stakeholder comms", "projects": [{ "project_title": "Internal jobs board", "project_details": "Matched roles to CVs by title and city." }], "interests": "Trail running", "references": [{ "full_name": "Alex Rivera", "email": "[email protected]", "phone_number": "+1 415 555 0199", "job_title": "Engineering Manager", "employer": "Acme Corp" }] } }获取职位推荐
POST
/v1/cv/job-cardsopendata按 jobTitle、city、countryCode 返回职位卡。status 为 success、empty、error、disabled 或 missing_criteria;每条职位需有 id、title 与 applyUrl。
认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。
- status
- jobs
- id
- title
- applyUrl
- company
- source
- location
- description
- logoUrl
- salary
- postedDate
- cvEngLogoUrl
- brandfetchUrl
- jobTitle
- city
- countryCode
- language
- userAgent
- platform
- radius
POST /v1/cv/job-cards HTTP/1.1 Authorization: Bearer <firebase-id-token> Content-Type: application/json { "jobTitle": "Product Manager", "city": "San Francisco", "countryCode": "US", "language": "en", "userAgent": "CvEngineer/18.01.94 (Android)", "platform": "android", "radius": 25 }{ "status": "success", "jobs": [{ "id": "t-88421", "title": "Staff Product Manager", "applyUrl": "https://example.com/apply/t-88421", "company": "Example Labs", "source": "partner", "location": "San Francisco, CA", "description": "Own the candidate home feed.", "logoUrl": "https://example.com/logo.png", "salary": "$160k–$190k", "postedDate": "2026-09-18", "cvEngLogoUrl": "https://example.com/cveng-logo.png", "brandfetchUrl": "https://example.com/brand/example-labs" }] }用 AI 助手改写简历文本
POST
/v1/assistant/rewriteopendata把 prompt 与 appLanguage 发给改写助手,返回用于替换简历条目或 personal_statement 的 status 与 text。
认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。
- prompt
- appLanguage
- status
- text
POST /v1/assistant/rewrite HTTP/1.1 Authorization: Bearer <firebase-id-token> Content-Type: application/json { "prompt": "Rewrite this bullet for a product manager CV.", "appLanguage": "en" }{ "status": "success", "text": "Led a cross-functional squad that cut time-to-offer by 18%." }生成简历章节示例
POST
/v1/assistant/examplesopendata按 prompt 向示例助手索取简历范文,返回填入空白经历或教育章节的 status 与 text。
认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。
- prompt
- status
- text
POST /v1/assistant/examples HTTP/1.1 Authorization: Bearer <firebase-id-token> Content-Type: application/json { "prompt": "Example bullets for a product manager at a marketplace." }{ "status": "success", "text": "Owned discovery for the jobs feed; shipped ranking experiments." }把地址拆成城市与国家
POST
/v1/geo/address-componentsosint把自由文本地址归一成 components.city、components.country 与 components.countryCode,供职位搜索的城市/国家选择器使用。
认证方式: Google / Facebook / 邮箱登录(FirebaseUI)后签发的 Firebase Auth ID 令牌,以 Authorization: Bearer 携带。
- address
- status
- components
- city
- country
- countryCode
POST /v1/geo/address-components HTTP/1.1 Authorization: Bearer <firebase-id-token> Content-Type: application/json { "address": "500 Market St, San Francisco, CA" }{ "status": "success", "components": { "city": "San Francisco", "country": "United States", "countryCode": "US" } }把客户端 IP 解析到城市
GET
/v1/geo/lookup/{ip}osint按 IP 查询 country_code 与可选 city,供职位信息流预填国家与城市。
认证方式: 无鉴权。公开地理查询,用于预填职位搜索的城市与 country_code。
- country_code
- city
GET /v1/geo/lookup/8.8.8.8 HTTP/1.1 Accept: application/json{ "country_code": "US", "city": "Mountain View" }读取公网客户端 IP
GET
/v1/geo/client-iposint返回设备公网 ip,用作职位提醒登记的 ip 字段以及地理查询的入参。
认证方式: 无鉴权。公开 IP 查询,用作职位提醒登记的 ip 字段以及地理查询的入参。
- ip
GET /v1/geo/client-ip HTTP/1.1 Accept: application/json{ "ip": "203.0.113.10" }预检职位提醒线索
GET
/v1/alerts/leads/verifyopendata在 register 之前检查邮箱是否可订阅职位提醒。解析 response、warning、email_valid/emailValid、reason 与 ip。
认证方式: 无鉴权。查询参数为 email 与 source。
- source
- response
- warning
- email_valid
- emailValid
- reason
- ip
GET /v1/alerts/leads/verify?email=jane%40example.com&source=cvengineer HTTP/1.1 Accept: application/json{ "response": "ok", "warning": null, "email": "[email protected]", "email_valid": "true", "reason": null, "ip": "203.0.113.10" }登记职位提醒线索
POST
/v1/alerts/leadsopendata预检成功后登记职位提醒线索。response 为 registered、duplicate 或 invalid;emailValid 为 false 视为无效。
认证方式: 无鉴权。application/x-www-form-urlencoded 字段表。
- source
- ip
- country
- language
- search
- location
- subid
- firstname
- first_name
- response
- warning
- email_valid
- reason
POST /v1/alerts/leads HTTP/1.1 Content-Type: application/x-www-form-urlencoded email=jane%40example.com&source=cvengineer&ip=203.0.113.10&country=US&language=en&search=Product+Manager&location=San+Francisco&subid=android&firstname=Jane&first_name=Jane{ "response": "registered", "warning": null, "email": "[email protected]", "email_valid": "true", "reason": null, "ip": "203.0.113.10" }鉴权打印订单会话
POST
/v1/print/sessionopendata打开打印合作方会话。鉴权响应的线字段为 status 与 token。
认证方式: 返回 token,后续打印目录与下单以 Bearer 携带。请求体为 JSON RequestBody;请求字段名未恢复。
- status
- token
POST /v1/print/session HTTP/1.1 Content-Type: application/json {}{ "status": "ok", "token": "<session-token>" }列出打印纸张品类
GET
/v1/print/papersopendata列出打印合作方可生产的纸张:id、name、thickness 以及 runlists.paper_id 用到的正反面处理类型。
认证方式: 打印会话登录返回的 Bearer token。
- id
- name
- description
- thickness
- predefined_front_treatment_type
- predefined_back_treatment_type
GET /v1/print/papers HTTP/1.1 Authorization: Bearer <session-token> Accept: application/json[{ "id": 12, "name": "Silk 170 gsm", "description": "Coated silk for CVs", "thickness": 0.17, "predefined_front_treatment_type": 1, "predefined_back_treatment_type": 0 }]计算纸质简历订单价格
POST
/v1/print/orders/quoteopendata为纸质简历报价:配送地址加上 products/runlists(size_id、paper_id、sides),返回 order_price、delivery_price 与 total_price。
认证方式: 打印会话登录返回的 Bearer token。
- payment_type_id
- delivery
- courier
- iso_code
- name
- phone
- street
- city
- zip
- products
- product_type_id
- amount
- production_speed
- runlists
- sides
- size_id
- paper_id
- order_price
- delivery_price
- total_price
POST /v1/print/orders/quote HTTP/1.1 Authorization: Bearer <session-token> Content-Type: application/json { "payment_type_id": 1, "delivery": { "courier": "dhl", "iso_code": "US", "name": "Jane Doe", "phone": "+1 415 555 0100", "email": "[email protected]", "street": "500 Market St", "city": "San Francisco", "zip": "94105" }, "products": [{ "product_type_id": 4, "pdf": "<base64-cv>", "amount": 20, "production_speed": "standard", "runlists": [{ "sides": 2, "size_id": 3, "paper_id": 12 }] }] }{ "order_price": 24.5, "delivery_price": 6.0, "total_price": 30.5 }下载托管简历 PDF
GET
/v1/hosted-cvs/{slug}opendata按公开 slug 读取托管简历对象。存储保存 hosted_cv_file_name、hosted_cv_screen_type 以及按字段的联系可见性。
认证方式: 上传需要 Firebase Auth。已托管 slug 可公开下载;联系字段受 hosted_cv_contact_visibilities 控制。
- hosted_cv_file_name
- hosted_cv_screen_type
- hosted_cv_contact_visibilities
- hosted_cv_contact_visibilities_email
- hosted_cv_contact_visibilities_mobile
- hosted_cv_contact_visibilities_address
GET /v1/hosted-cvs/jane-doe HTTP/1.1 Accept: application/pdf{ "hosted_cv_file_name": "jane-doe", "contentType": "application/pdf", "hosted_cv_screen_type": "full", "hosted_cv_contact_visibilities": { "hosted_cv_contact_visibilities_email": true, "hosted_cv_contact_visibilities_mobile": false, "hosted_cv_contact_visibilities_address": false } }
数据类别
- 简历
- 职位列表
- 地理位置
- 打印订单
数据使用场景与案例
ATS 简历入库
猎头 CRM 拉取导入简历中的 career_sections 与 education_sections,免去重录 employer、job_title、school 与日期。
职位提醒匹配
提醒路由按 jobTitle、city、countryCode 匹配 Talent 卡片并打开 applyUrl,无需抓取 HTML 职位页。
公开简历托管
作品集站点嵌入托管 PDF 的 slug,并遵守 hosted_cv_contact_visibilities 对邮箱、手机与地址的开关。
印刷报价
印刷厂在求职者确认纸质简历订单前,用 order_price 与 delivery_price 给 paper_id、size_id 的印次报价。
常见问题
简历导入会返回哪些字段?
成功时返回 resumeData,含 name、email、phone_number、address、personal_statement、career_sections(employer、job_title、details、日期)、education_sections(school、qualification、grade)、key_skills、projects、interests 与 references。
推荐职位如何标识?
每张 Talent 卡片需要 id、title 与 applyUrl。可选字段包括 company、source、location、description、salary、postedDate、logoUrl、cvEngLogoUrl 与 brandfetchUrl。status 可能为 success、empty、error、disabled 或 missing_criteria。
托管简历存了什么?
托管 PDF 按公开 slug 读取。Firestore 保存 hosted_cv_file_name、hosted_cv_screen_type,以及邮箱、手机与地址的 hosted_cv_contact_visibilities。
如何登录?
Google、Facebook 或邮箱经 FirebaseUI 签发 ID 令牌,以 Bearer 调用简历、职位、改写、示例与地址函数。打印目录另用打印会话登录返回的 token。
与 Resume Builder - CV Engineer 相似的应用
- Resume.io — Resume.io 是在线简历制作工具,提供面向 ATS 的模板、AI 辅助撰写、PDF 与 DOCX 导出,以及可根据职位链接起草求职信的生成器。
- Kickresume — Kickresume 是在线简历与求职信工具,提供 AI 撰写、面向招聘方的模板、LinkedIn 导入,以及把简历做成个人网站的建站功能。
- Rezi — Rezi 是 AI 简历工具,按章节给 ATS 适配打分、根据职位描述补关键词,并生成求职信和辞职信。
- Novorésumé — Novorésumé 是浏览器端简历制作工具,提供面向 ATS 的模板、AI 助手、求职信生成器和免费 PDF 下载。
- Enhancv — Enhancv 是拖放式简历编辑器,可导入 LinkedIn 或已有文件,按粘贴的职位广告改写条目,并导出 PDF 或 TXT。
- Indeed Job Search — Indeed 是 Recruit Holdings 旗下的职位聚合平台,求职者可在关键词搜索之外发布并保存简历。
- LinkedIn: Community & Network — LinkedIn 是职业社交网络,会员资料(经历、教育与技能)当作数字简历使用,也可直接投递平台上的职位。
相关主题
- CV Engineer API
- 简历导入
- resumeData
- career_sections
- Talent 职位
- applyUrl
- 托管简历
- order_price
- phone_number
- Matt Callery
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业